如何通过流畅的播放将网络摄像头录制到flv

时间:2020-03-05 18:54:41  来源:igfitidea点击:

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

我尝试了许多不同的服务器来处理flv录制。例如,生成的flv在Wimpy FLV Player中播放正常,除了进度指示器不能平稳或者以常规方式移动之外。这表明存在问题,如果我尝试使用" ffmpeg -i input.flv output.avi"(带或者不带帧率选项" -r 15")对它们进行转码,我将无法获得正确的avi。

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

  • 使用red5(在OS X 10.5.4和Ubuntu 8.04上均为0.6.3和0.7.0版)及其包含的Publisher.html示例。这就是生成的flv。指示器非常快地跳到终点。
  • 仍在使用red5,但发布"实时"并在几秒钟后开始录制。我使用了这些示例文件。这就是生成的flv。指示器仍然非常快地跳到终点,用这种方法根本没有声音...
  • 使用Wowza Media Server Pro(在我的Mac上为1.5.3版)。进度指示器不会跳到尽头,但在开始时它会更快地移动。这足以使使用ffmpeg转换为其他格式时,视觉效果无法与音频正确同步。只是为了确保我尝试了它随附的录像机,以及使用red5的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。这是一个例子。

因此,我可以在恒定帧率下获得高质量的视频吗?

PS:服务器必须可以在Linux上安装,也可以在价格合理的托管服务提供商处使用。

编辑:如前所述,也许问题不是每说话的帧率,而是其他。我不懂视频,也不知道如何检查示例。也许有人可以对此有所了解。

解决方案

回答

问题可能不是帧速率,而是关键帧和标记。

回答

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

Facebook示例flv几乎没有任何关键帧(这意味着我们将无法很好地在其中进行"搜索"),但是元数据持续时间是正确的。

我将研究flvtool2和flvtool ++(这是长文件的内存效率更高的替代方案),以插入正确的元数据捕获后的内容。