我使用 ffmpeg 连接很多很多剪辑 - 在 99% 的情况下都可以正常工作。也就是说,有时我会收到此错误: [mov @ 0x7fcc94004000] 致命错误,输入数据包不包含样本 av_interleaved_write_frame(): Not yet implemented in FFmpeg, patch welcome
输出仍然产生并且看起来很好——但我真的很想了解是什么引发了这个错误。我很确定这是音频的问题——所有剪辑都有相同格式的音频(PCM、little endian、48 kHz、16 位),但一个剪辑可能有立体声,另一个剪辑可能是单声道,而且只有在混合时才会发生这些。不过我一直都有这个,而且通常 ffmpeg 不会抱怨,所以它必须是其他的东西。有任何想法吗?
仅供参考(我认为这不是问题所在,但是……),这就是我所说的 ffmpeg (来自 Python):
subprocess.call(['ffmpeg', '-f', 'concat', '-safe', '0', '-i', path_concatlist, '-c:v', 'copy', '-c:a', 'copy', output])
所有输入必须具有相同的通道布局
输入必须全部为立体声,或全部为单声道,但不能混合。请参阅此属性列表,这些属性必须匹配才能与concat demuxer正确连接。
它只是偶然为你工作
您只是没有尝试过失败的播放器,在部分之间停止,为不匹配的部分播放一半/双倍速度,和/或失去 A/V 同步。尽管不方便,但您必须将它们全部设为立体声或单声道。
让它们都一样
另请参阅如何使用 ffmpeg 转换整个目录?
检查频道布局
ffprobe
如果没有音频,它将不输入任何内容,或者将输出每个音频流的通道数。如果涉及脚本,这很有用。