关于flash:如何将网络摄像头录制到flv并流畅播放

关于flash:如何将网络摄像头录制到flv并流畅播放

How to record webcam to flv with smooth playback

我希望我的网站使用网络摄像头录制 flv。这些 flv 需要流畅播放,以便我之后可以使用它们,例如将它们转码为 avis。

我尝试了许多不同的服务器来处理 flv 记录。例如,生成的 flv 在 Wimpy FLV 播放器中可以正常播放,只是进度指示器移动不顺畅或不规律。这表明有问题,如果我尝试使用 "ffmpeg -i input.flv output.avi"(有或没有帧率选项 "-r 15")对它们进行转码,我不会获取正确的 avi。

这是我尝试过的以及遇到的问题:

  • 使用 red5(v 0.6.3 和 0.7.0,
    在 OS X 10.5.4 和 Ubuntu 8.04 上)
    和 publisher.html 的例子
    包括。这是结果
    佛罗里达state指标跳向
    很快就结束了。

  • 仍在使用 red5,但发布"live"并在几秒钟后开始录制。我使用了这些示例文件。这是生成的flv。指标还是跳的很快,用这个方法完全没有声音...

  • 使用 Wowza Media Server Pro(v 1.5.3,在我的 Mac 上)。进度指示器不会跳到末尾,但在一开始移动得更快。这足以使使用 ffmpeg 转换为其他格式会使视觉与音频不正确同步。只是为了确保我尝试了它附带的录像机,以及使用 red5\\'s publisher.html (结果相同)。

  • 通过在 www.influxis.com 上托管的帐户使用 Flash Media Server 3。我得到了另一种进展模式。进度指示器在开始时有点跳跃,然后变得有规律。这是一个例子。

  • 我知道可以录制"完美无缺"的 flv,因为 facebook\\ 的视频应用程序可以做到(使用 red5?)确实,查看 facebook 视频的 HTML 源代码并获得http URL 来下载他们制作的 flv。在 Wimpy 中播放时,进度指示器很流畅,使用"ffmpeg -i facebook.flv -r 15 facebook.avi"进行转码会产生良好的 avi。这是一个例子。

    那么,我能设法获得一个帧率恒定的好flv吗?

    PS:服务器必须可以安装在 Linux 上,或者可以在价格合理的托管服务提供商处获得。

    编辑:正如所指出的,问题可能不在于帧速率,而在于其他问题。我对视频不了解,也不知道如何检查我提供的示例以进行检查;也许有人可以对此有所了解。


    查看您在richflv(非常方便的flv 编辑工具)中的red5 示例flv,我们可以看到您有常规关键帧,但未设置持续时间元数据。

    facebook 示例 flv 几乎没有任何关键帧(这意味着您不能很好地在其中"搜索")但是元数据持续时间是正确的。

    我会研究 flvtool2 和 flvtool(对于长文件而言,它是一种内存效率更高的替代方案),以便在捕获后插入正确的元数据。


    您的问题可能不在于帧速率,而在于关键帧和标记。


    推荐阅读