为了最大限度地减少应用程序中的读/写流量,我们制定了一项策略,可以恢复存储在AWS S3中的ftyp
,uuid
和moov
个mp4框,写入将它们转换为本地文件,然后ffprobe
该数据以恢复电影持续时间。
长期以来一直没有问题,但自2016年6月1日起,我注意到在这个过程中有更多文件遇到ffprobe错误。起初我以为是因为提供了ftyp
这些文件。虽然它们确实不是我们要接受的任何ftyps,但我发现ffprobe 确实在原始(未删节)mp4文件上工作。
错误与此类似:
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x228c020] stream 0, offset 0x6b8: partial file
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x228c020] Could not find codec parameters for stream 0 (Video: h264 (avc1 / 0x31637661), 1504x1504, 678 kb/s): unspecified pixel format
Consider increasing the value for the 'analyzeduration' and 'probesize' options
tmp_9NdLYBkm8sNw5TBNGAz24g_0.mp4: Invalid data found when processing input
我读了几个提及analyzeduration
和probesize
选项的问题,我尝试了极值,但没有影响结果。
我还进行了三次检查,检出的ftyp
,moov
和uuid
框实际上与原始文件中的尺寸相同,所以我不知道不相信他们因为不完整而有过错。
所以,我们相信我们没有从mp4中恢复所需的一切。实际上,我们希望不必恢复整个mdat
框。有没有理由认为在某些情况下这是不可或缺的?