我有一个时长为 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)