【发布时间】:2012-12-09 22:01:09
【问题描述】:
我们需要将大型实时 WMV 视频馈送分成大小相同的小块。我们制作了一个可以正常工作的脚本,除了一件事:视频块不以关键帧开头,因此在播放大多数视频块时,它们不会显示任何图像,直到最终来自原始视频的关键帧到达。
有没有办法告诉 ffmpeg 让输出视频从关键帧开始?
下面是我们的命令行现在的样子:
ffmpeg.exe -i "C:\test.wmv" -ss 00:00:00 -t 00:00:05 -acodec copy -vcodec copy -async 1 -y "0000.wmv"
ffmpeg.exe -i "C:\test.wmv" -ss 00:00:05 -t 00:00:05 -acodec copy -vcodec copy -async 1 -y "0001.wmv"
等等……
【问题讨论】:
-
您使用的是最新的 ffmpeg 版本吗?
-
是最新的:ffmpeg 版本 N-47062-g26c531c。我们还尝试使用 -force_key_frames:v 00:00:00 或 -force_key_frames:v 00:00:05,但对输出没有影响。我相信使用 -vcodec copy 实际上意味着它只是在新文件中复制图片组,但不会进行任何类型的重新编码来添加关键帧。是这样吗?
-
-vcodec copy不重新编码:它只执行解复用和复用。 -
有没有办法让我将文件分成多个块,以便每个块都以关键帧开始?它们不必具有相同的持续时间。但它们必须是完全连续的。如果我在输入文件上指定 -ss,它会在关键帧处剪切,但随后我会通过在 2 个连续的块中重新包含相同的 GOP 来看到我的视频重叠。
标签: video ffmpeg split keyframe