一般情况下并不需要, 但在某些特殊需求中, 例如视频合成时, 如果参与合成的文件有的有音视频流, 有的只有视频流而没有音频流, 此时在合成时会出现问题, 要么音画不同步, 要么干脆无法合成, 为决绝这个问题, 就需要统一参与合成的文件, 保证所有参与合成的文件都同时有视频流和音频流, 那么就需要给无音频流的视频文件添加一个可编解码的音频流, 且这个音频流应该是无声音的
使用FFmpeg提供的anullsrc创建空白的音频流, 然后编码加入到视频里即可
命令格式
ffmpeg \
-i <需要添加空白音频流的文件> \
-f lavfi \
-t <视频时长, 单位 秒> \
-i anullsrc=r=<目标音频采样率, 一般设置为44100即可> \
-c:a <音频编码器> \
-c:v copy \
-f <输出文件格式> \
<输出文件>
命令示例
ffmpeg \
-i mute.mp4 \
-f lavfi \
-t 5 \
-i anullsrc=r=44100 \
-c:a aac \
-c:v copy \
-f mp4 \
no_mute.mp4
经过此命令操作后, 文件会增加一个空白静默的音频流, 再用此文件参与合成便不会再出现音画不同步与合成失败的问题.