如何用FFmpeg为现有MP4视频追加2秒静音并保留最后一帧
如何用FFmpeg给MP4视频追加2秒静音并显示最后一帧
嘿,刚好处理过类似需求,用FFmpeg的两个专属滤镜就能轻松搞定,直接给你最简洁的命令和详细拆解:
核心命令
ffmpeg -i input.mp4 -filter_complex "tpad=stop_duration=2:stop_mode=clone,apad=pad_dur=2" -c:v libx264 -c:a aac output.mp4
命令细节解释
-i input.mp4:指定你要处理的源视频文件- 滤镜链部分(
-filter_complex):tpad=stop_duration=2:stop_mode=clone:专门处理视频的滤镜stop_duration=2:设置在视频末尾额外添加2秒时长stop_mode=clone:用原视频的最后一帧填充这2秒,完美避免黑屏问题
apad=pad_dur=2:处理音频的滤镜,在原音频末尾追加2秒静音
-c:v libx264和-c:a aac:指定输出的视频、音频编码器,保证跨设备兼容性和输出质量(因为我们修改了视频流,无法直接复制原编码,必须重新编码)
备选方案(针对特殊帧率场景)
如果你的视频帧率极低,需要更精准的帧控制,可以用帧循环+拼接的方式:
ffmpeg -i input.mp4 -filter_complex "[0:v]trim=end_frame=-1[v];[v]loop=loop=-1:size=1:start=-1,trim=end=2[v_last];[0:v][v_last]concat=n=2:v=1:a=0[out_v];[0:a]apad=pad_dur=2[out_a]" -map "[out_v]" -map "[out_a]" -c:v libx264 -c:a aac output.mp4
这个命令会先提取最后一帧并循环,再截取2秒和原视频拼接,效果和tpad一致,但对极端帧率适配性更好。
内容的提问来源于stack exchange,提问作者Meryan
相关产品推荐
相关产品推荐

