使用 ffmpeg 冻结视频的最后一帧

使用 ffmpeg 冻结视频的最后一帧

我有一个时长为 3 秒的视频。如何使用 ffmpeg 将视频时长延长到 10 秒:3 秒原始视频 + 7 秒原始视频最后一帧?

答案1

非常感谢。只是发布解决方案(我的视频没有声音):

# ffmpeg -f lavfi \
         -i nullsrc=s=3840x2160:d=10:r=30 \
         -i input_video.mp4 \
         -filter_complex "[0:v][1:v]overlay[video]" \
         -map "[video]" \
         -shortest \
         output_video.mp4 

答案2

该解决方案速度更快,因为它不需要重新编码。

如果已经存在音频流:

ffmpeg -i in.mp4 -vcodec copy -af apad -t 10 out.mp4

如果没有现有的音频流:

ffmpeg -i in.mp4 -f lavfi -i anullsrc -vcodec copy -af apad -t 10 out.mp4
  • 请注意,指-t 10的是最终输出的长度(以秒为单位),而不是延长的秒数。

  • 这样做的原因是,当视频和音频长度不同时,ffmpeg 会默认延长较短的流以匹配较长的流(除非您使用该-shortest选项)。

信用Gyan

相关内容