如何使用ffmpeg裁剪大型视频?

5

我想要剪辑一段时长为1小时28分钟、大小为75GB的视频

我只想从中截取7秒钟的内容

当我尝试这样做时

ffmpeg -i Replay.mp4 -ss 01:21:24.0000 -to 01:21:32.0000 -acodec copy -vcodec copy ShortReplay2.mp4

我明白了

Stream mapping:
  Stream #0:1 -> #0:0 (copy)
  Stream #0:0 -> #0:1 (copy)
Press [q] to stop, [?] for help
frame=    0 fps=0.0 q=-1.0 size=       0kB time=00:00:00.00 bitrate=N/A

它卡住了,什么也没发生,等了大约30分钟还是卡住了。

然而当我尝试从视频开头修剪它时...

ffmpeg -i Replay.mp4 -ss 00:00:00.000 -to 00:20:00.000 -acodec copy -vcodec copy ShortReplay2.mp4

它能够正常运行,没有问题。

是因为文件太大,程序读取时间太长导致的吗?我该怎么办?

1个回答

9

选项放置的位置很重要

您可以尝试在-i之前使用-ss作为输入选项。这将立即寻找到声明的-ss位置之前最近的寻找点。请注意,当-ss用作输入选项时,-to选项的行为与-t选项相同。

如果您发现这不够准确,则可能需要将-ss用作输出选项和/或重新编码,而不是使用流复制。作为输出选项,它会更慢,因此可能您只是没有等待足够长的时间使其完全解码到您的位置。

示例

ffmpeg -ss 01:21:24 -i input.mp4 -t 7 -c copy output.mp4

另请参阅


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接