ffmpeg:av_interleaved_write_frame():协议错误

ffmpeg:av_interleaved_write_frame():协议错误

GoPro 相机将视频剪切成 4GB 的 MP4 文件。

尝试将它们与 ffmpeg 4.4.4 合并,如下所示:

ffmpeg -f concat -safe 0 -i <(for f in *.MP4; do echo "file '$PWD/$f'"; done) -c copy output.mp4

合并多个这样的文件以前是可行的(使用旧版本的 ffmpeg),但这次最终失败了:

[mov,mp4,m4a,3gp,3g2,mj2 @ 0x5606724781c0] Auto-inserting h264_mp4toannexb bitstream filter34x      
av_interleaved_write_frame(): Protocol errorime=00:09:29.42 bitrate=60189.7kbits/s speed=1.38x    
Error writing trailer of output.mp4: Protocol error
frame=34215 fps= 83 q=-1.0 Lsize= 4194048kB time=00:09:30.81 bitrate=60190.4kbits/s speed=1.38x    
video:4181248kB audio:13195kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown
Conversion failed!

在上面的块中,“av_interleaved_write_frame():协议错误”打印在状态行的顶部,似乎与该文本混合在一起。在整个输出中,此文本显示为红色:

Application provided duration: -9223372036854775808 / timestamp: -9223372036854775808 is out of range for mov/mp4 format
av_interleaved_write_frame(): Protocol error
Error writing trailer of output.mp4: Protocol error

输入文件看起来有效,在播放器中播放正常,但输出文件却不行。这是什么原因造成的?如何修复?

更新:失败时,输出文件为 4GB,并且是 FAT32 文件系统。看起来文件大小已达到限制,错误消息并不明显。

相关内容