GoPro 相机将视频剪切成 4GB 的 MP4 文件。
尝试将它们与 ffmpeg 4.4.1 合并,如下所示:
ls GH017642.MP4 GH027642.MP4 | while read line; do echo "file '$line'"; done | ffmpeg -protocol_whitelist file,pipe -f concat -i - -c copy out.mp4
失败:
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x5573df8c9ec0] moov atom not found
[concat @ 0x5573df8b7ec0] Impossible to open 'pipe:GH017642.MP4'
pipe:: Invalid data found when processing input
不过,“moov”似乎确实存在于该文件中:
> ffmpeg -v trace -i GH017642.MP4 2>&1 | grep -e type:\'mdat\' -e type:\'moov\'
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x55a71e111dc0] type:'mdat' parent:'root' sz: 3999992669 28 4001343671
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x55a71e111dc0] type:'moov' parent:'root' sz: 1350982 3999992697 4001343671
此外,Quicktime 和 VLC 都可以正常播放该文件。
什么可能导致 ffmpeg 错误,如何修复它?