Android MP4 moov mdat problem
I am developing app where I have to play progressive steaming video of mp4 file. But I faced the PVMFErrContentInvalidForProgressivePlayback
error. I think that those videos are not satisfing any of those requirements - "For 3GPP and MPEG-4 containers, the moov
atom must precede any mdat
atoms." How can I convert those file w开发者_如何学Gohich will satsfy that format? Is there any converter for that?
Use MP4Box with the -hint
switch to fix this issue.
For GUI version, Under options menu i selected "hint for rtp/rtsp". Then in Mux tab, I added mp4 file with add button. After that pressed Mux button in the right bottom corner.
It creates the muxed version in the same directory path of your mp4 file. You can use save as for different location.
The newly created file worked for me and didnt give PVMFErrContentInvalidForProgressivePlayback error.
Adding the -hint just add interleaving at the end of the file (which is not enough).
You may use a program called Handbrake (here), where you can select "Web Optimize" option to switch/re-arrange moov and mdat atoms places for progressive download.
The idea is to switch places between the MP4 container headers and the actual movie data, so you may start streaming immediately
You can further read about the solution here: How to correctly encode .mp4 files for streaming
精彩评论