FFmpeg 创建与原文件格式一致的空白音频文件,最后将这个两个音频文件合并
要使用FFmpeg创建与原文件格式一致的空白音频文件,并将两个音频文件合并,可以按照以下步骤进行:
获取原文件的音频参数: 首先,我们需要获取原文件的音频参数(如采样率、声道数、编码格式等)。可以使用以下命令:
ffprobe -v error -show_entries stream=codec_name,channels,sample_rate -of default=noprint_wrappers=1:nokey=1 input_audio_file
这将输出类似以下内容:
pcm_s16le
2
44100
其中,pcm_s16le
是编码格式,2
是声道数,44100
是采样率。
创建空白音频文件:
使用FFmpeg的anullsrc
滤镜创建一个空白音频文件。假设我们需要创建一个10秒的空白音频文件:
ffmpeg -f lavfi -t 10 -i anullsrc=r=44100:cl=stereo -c:a pcm_s16le silent_audio.wav
这里,r=44100
设置采样率为44100 Hz,cl=stereo
设置声道为立体声,-c:a pcm_s16le
设置编码格式为 pcm_s16le
。
合并两个音频文件:
使用FFmpeg的concat
协议将两个音频文件合并。首先,创建一个包含两个音频文件路径的文本文件 filelist.txt
:
echo "file 'input_audio_file'" > filelist.txt
echo "file 'silent_audio.wav'" >> filelist.txt
然后,使用以下命令合并音频文件:
ffmpeg -f concat -safe 0 -i filelist.txt -c copy output_audio_file
这将生成一个包含原音频和空白音频的合并文件 output_audio_file
。
完整的流程如下:
# 获取原文件的音频参数
ffprobe -v error -show_entries stream=codec_name,channels,sample_rate -of default=noprint_wrappers=1:nokey=1 input_audio_file
# 创建空白音频文件(假设采样率为44100 Hz,声道为立体声,编码格式为pcm_s16le)
ffmpeg -f lavfi -t 10 -i anullsrc=r=44100:cl=stereo -c:a pcm_s16le silent_audio.wav
# 创建文件列表
echo "file 'input_audio_file'" > filelist.txt
echo "file 'silent_audio.wav'" >> filelist.txt
# 合并音频文件
ffmpeg -f concat -safe 0 -i filelist.txt -c copy output_audio_file