ffmpeg在AVI中快速但准确的搜索

时间:2019-03-21 13:48:45

标签: ffmpeg

我建立了一个小的管道来自动剪切和增强我录制的视频文件。

我通过使用ffmpeg的select='gt(scene,0.4)',showinfo过滤器来检测场景。解析这些信息后,我为每个场景运行ffmpeg,以为其生成单个视频文件,例如:

ffmpeg -y -i test.avi -ss 00:00:00.00 -to 00:00:54.61 -c copy test_1.avi
ffmpeg -y -i test.avi -ss 00:00:54.61 -to 00:01:38.21 -c copy test_2.avi
ffmpeg -y -i test.avi -ss 00:01:38.21 -to 00:01:59.45 -c copy test_3.avi
[...]

如您所见,我使用-ss-to参数指定输出文件的开始和结束位置。 效果很好,但是随着时间的流逝,它变得非常非常慢,因为我的原始文件大小约为50 GB。

我想-ss可以使ffmpeg从原始文件的开头到开始时间进行查找,因为我可以在查找时观察到磁盘操作。

-ss参数放置在-i输入文件之前更快。但是非常不准确(偏移了几秒钟)。

是否有任何技巧可以提高剪切/修剪性能而又不损失准确性?

我还尝试将输入文件转换为MP4,这会减小文件大小并明显缩短查找时间。但是后来我出现了关键帧错误,我想对原始文件进行操作。

谢谢!

0 个答案:

没有答案