所有输入必须具有相同的通道布局

所有输入必须具有相同的通道布局

我使用 ffmpeg 连接大量剪辑 - 在 99% 的情况下,它都能完美运行。不过,有时我会收到此错误:[mov @ 0x7fcc94004000] 致命错误,输入数据包不包含样本 av_interleaved_write_frame():FFmpeg 中尚未实现,欢迎提供补丁

输出仍然正常,看起来也不错——但我真的想知道是什么引发了此错误。我很确定这是音频的问题——所有剪辑的音频格式相同(PCM、小端、48 kHz、16 位),但一个剪辑可能有立体声,另一个剪辑有单声道,并且只有在混合这些剪辑时才会发生这种情况。不过我一直都有这种情况,而且通常 ffmpeg 不会抱怨,所以一定是其他原因造成的。有什么想法吗?

仅供参考(我不认为这条线是问题所在,但是......),这是我调用 ffmpeg 的方式(来自 Python): subprocess.call(['ffmpeg', '-f', 'concat', '-safe', '0', '-i', path_concatlist, '-c:v', 'copy', '-c:a', 'copy', output])

答案1

所有输入必须具有相同的通道布局

输入必须全部为立体声,或全部为单声道,但不能混合。请参阅此正确连接所必须匹配的属性列表连接解复用器

它只是偶然对你有用

您只是还没有尝试过出现故障、在部分之间停止、以半速/双倍速度播放不匹配的部分和/或丢失 A/V 同步的播放器。尽管这很不方便,但您必须将它们全部设置为立体声或单声道。

让它们都一样

ffmpeg -i input.mov -map 0 -c copy -c:a pcm_s16le -ac 2 -ar 48000 output.mov

另请参阅如何使用 ffmpeg 转换整个目录?

检查通道布局ffprobe

ffprobe -loglevel error -select_streams a -show_entries stream=channels -of csv=p=0 input.mov

如果没有音频,它将不输入任何内容,或者它将输出每个音频流的声道数。如果涉及脚本,这将很有用。

相关内容