使用 ffmpeg concat 解复用器时音频会变得混乱

使用 ffmpeg concat 解复用器时音频会变得混乱

我正在使用 ffmpeg 的 concat demuxer 来合并不同的 mp4 视频。首先,我使用以下命令重新编码所有视频:

ffmpeg -i "${file}" -c:v libx264 -c:a aac "${out}"

为了连接视频,我遵循ffmpeg 维基。我连接 3 个视频的命令如下:

mkfifo temp1 temp2 temp3

ffmpeg -y -i "${file1}" -c copy -bsf:v h264_mp4toannexb -f mpegts temp1 2>/dev/null & \
ffmpeg -y -i "${file2}" -c copy -bsf:v h264_mp4toannexb -f mpegts temp2 2>/dev/null & \
ffmpeg -y -i "${file3}" -c copy -bsf:v h264_mp4toannexb -f mpegts temp3 2>/dev/null & \

ffmpeg -y -f mpegts -i "concat:temp1|temp2|temp3|" -c copy -bsf:a aac_adtstoasc "${out}"

输出文件的视频效果很好。但是音频被打乱了,在 mpv 等播放器中播放时,我遇到了很多错误,例如:

[ffmpeg/audio] aac:在找到 END 元素之前输入缓冲区已耗尽,音频解码时出错。[ffmpeg/audio] aac:组(15)中的比例因子带数超出限制(14)。音频解码时出错。[ffmpeg/audio] aac:TYPE_FIL:在找到 END 元素之前输入缓冲区已耗尽,音频解码时出错。

连接多个 mp4 视频时如何使音频正常工作?

相关内容