FFmpeg报错解决:如何将带9秒偏移的音频合并到无音视频?
无音频视频与延迟音频合并的正确FFmpeg命令
你推测的原因完全正确——报错是因为第一个输入(无音频视频)没有音频流,[s0:a]找不到对应的音频流,而你原本的命令试图混合两个音频流,这显然不成立。
直接使用以下命令即可完成需求:
ffmpeg -i video_without_sound.mp4 -i audio_file.mp3 -c:v copy -filter_complex "[1:a]adelay=9000|9000[a]" -map 0:v -map "[a]" -c:a aac output.mp4
命令说明:
-c:v copy:直接复制视频流,不重新编码,大幅提升处理速度-filter_complex "[1:a]adelay=9000|9000[a]":对第二个输入(音频文件)的音频流应用延迟滤镜,9000|9000表示左右声道均延迟9000毫秒(9秒);如果是单声道音频,只需写9000即可-map 0:v -map "[a]":分别映射原视频的视频流和处理后的延迟音频流到输出文件-c:a aac:将音频编码为AAC格式,保证输出视频的兼容性
如果追求更简洁的写法,也可以用音频滤镜参数-af替代-filter_complex:
ffmpeg -i video_without_sound.mp4 -i audio_file.mp3 -c:v copy -af "adelay=9000|9000" -c:a aac output.mp4
内容的提问来源于stack exchange,提问作者Stratocaster
相关产品推荐
相关产品推荐

