我有许多视频文件对,这是与两个网络摄像头在一个房间。由于带宽的利用,视频文件具有可变的帧速率。据我所知,如果我们在一个时间线上标记框架,它是这样的:

我想同步这两个视频。通过同步,我指的是,填补空白,以便对于视频中的给定帧,在另一个视频中有一个相应的帧。最后,我想要两个像这样的视频:

我已经考虑过使用转换器工具将两个视频转换成25个fps,尽管我将有冗余的帧对,它们将被同步。然而,我有与所有视频的每一帧相关的信息,我将无法知道转换后的关联。
我认为我需要以编程的方式这样做,这样我就可以相应地保存与每个帧相关联的信息。
到目前为止,我已经尝试过OpenCV,VideoCapture property CV_CAP_PROP_POS_MSEC给出的是帧号,而不是帧的毫秒。即使它给了我正确的值,VideoWriter也不支持可变帧速率。MATLAB拒绝读取我的视频文件,因为它不支持编解码器,即MJPEG (运动jpeg)。我已经能够使用Python中的小矮人读取框架#和相应的毫秒。但它只是解码器,我仍然没有任何东西可以写到一个视频文件,如“这是第12帧,这应该是在1.76秒的视频”。
我正在寻找最简单的方法来实现这一点,语言,工具不重要。感谢基于Windows的解决方案。非常感谢你的回答。
PS. --我不介意输出格式,但我更喜欢无日志格式。
发布于 2012-07-18 08:27:58
最简单的方法是将两者转换为相同的fps (假设为25),然后匹配它们。对此,ffmpeg是一个很好的工具。查看这篇博文以获得更多详细信息http://www.hdslr-cinema.com/news/workflow/convert-between-framerates/
但是,它可能会重复帧以覆盖空槽。如果这不包括您的要求,您应该查看时间插值-插值像素之间的帧。但这是很多工作。ffmpeg解决方案是一项5分钟的任务,插值可能意味着阅读和实现一些学术论文.
请注意,可能有一些专用的内插工具,但我不知道它们。这是值得研究的。
https://stackoverflow.com/questions/11530818
复制相似问题