3 Replies Latest reply on Oct 12, 2009 11:50 AM by DalePh

    PE8 fails to create iPhone stream compatible MP4 video

    DalePh Level 1

      Hello. I've isolated a potential issue with PE8. The MP4 files it creates for mobile streaming fail on iPhones and Androids due to the position of the MOOV and MDAT atoms in the MP4 file. The PE8 presents puts the MDAT at the beginning and MOOV at the end. This is illegal for iPhones and Android phones to stream over http.


      Repro

       

         1. Install Premier elements 8.0
         2. Make a movie
         3. Click the share tab
         4. Click mobile phones and players
         5. Click apple iPod and iPhone
         6. Choose preset= iPod and iPhone High Quality
         7. Click advanced
         8. On multiplexer tab, verify that multiplexing=mp4 and stream compatibility=iPod. It should be since this is the preset. Leave it as is.
         9. Cancel out of the advanced dialog
        10. Encode your movie
        11. Upload your MP4 to an http server
        12. Create an HTML file which has a link to the MP4 you uploaded
        13. Visit the HTML file with your iPhone or Android
        14. Click the link


      Result:

      The video doesn't stream, giving an error on your phone

       


      Expected:

      The video to stream

       

      PE8 is encoding the MP4 file with MDAT atoms before the MOOV atom. It is *required* for the MOOV atom to be before any MDAT atoms to enable http streaming on iPhones and Android phones.

       

      In the preset, advanced dialog, if you choose the PSP stream compatibility, the repro will also fail. Streaming does not work on iPhones or Android phones with this preset. I have a PSP, but I am not aware of any way to stream videos to a PSP. So this advanced preset naming is misleading to me.


      It is *only* if you choose the stream compatibility=standard in the advanced dialog that streaming works. With this advanced setting, the MOOV atom is before any MDAT atoms. Now streaming works on Android and iPhones.

       

      I suspect that there is an error in the definition in the stream compatibility settings or definitions.