ffmpeg 将不足一秒的音频,用空白在后面补全至一秒?
要使用 ffmpeg
将不足一秒的音频文件用空白音频补全至一秒,可以按照以下步骤操作:
假设你的原始音频文件名为 input.wav
,你可以使用以下命令来实现这个目标:
# 获取原始音频的时长
duration=$(ffmpeg -i input.wav 2>&1 | grep "Duration" | awk '{print $2}' | tr -d , | awk -F: '{ print ($1 * 3600) + ($2 * 60) + $3 }')
# 计算需要补充的空白音频的时长
padding=$(echo "1 - $duration" | bc)
# 生成空白音频
ffmpeg -f lavfi -t $padding -i anullsrc=r=44100:cl=stereo silence.wav
# 合并原始音频和空白音频
ffmpeg -i "concat:input.wav|silence.wav" -c copy output.wav
解释:
ffmpeg
获取原始音频的时长,并将其转换为秒数。silence.wav
。output.wav
。请注意,这些命令假设你的音频采样率为 44100 Hz,立体声。如果你的音频