Skip to main content

Why does mp4 video plays fine on iPad, not on iPhone?


I'm quite stumped on this issue.



I have a large library of H.264 mp4 video files that I need to have play on iOS. Originally, I was targeting only iPad, but requirements have changed and now I need to include iPhone. But I've noticed that my iPod Touch, which has exactly the same OS version and build id as my iPad, won't play the same files that I've been successfully using on the iPad. I've confirmed this with a colleague who also has an iPhone and iPad with the same version & build. I've also seen the exact same behavior in the iPad simulator, but until now I figured it was a quirk of the simulator. Now I'm not so sure.



The mp4s are encoded with the following settings:




AVC Coding 640x360, Millions
AAC, Stereo (L R), 44.100 kHz
29.97 fps
693.35kb/s



I've tried loading the media off multiple servers and even locally and it doesn't seem to make a difference.



If I export these files from QuickTime as m4v files, they play fine on all devices and simulators, so my gut tells me this is an encoder setting I'm missing.



To eliminate all other possible factors, I've tried calling up the video files directly from the Mobile Safari address bar. I've confirmed this is happening on the following matching builds:



Devices:



  • 4.2.1 (8C148) - plays on iPad, not on iPhone.



Simulators:



  • 3.2 (7W367a) - plays okay on iPad (no iPhone version)

  • 4.0.2 (8A400) - doesn't play iPhone (no iPad version)

  • 4.1 (8B117) - doesn't play iPhone (no iPad version)

  • 4.2 (8C134) - doesn't play iPhone or iPad



I've gone through the iOS changelogs looking for anything that might explain why a video decompressor should work on one version and not another and I can't find anything that jumps out.



Anyone have any ideas what could be behind this and how I can fix it?


Source: Tips4all
Source: Tips4allSource: CCNA FINAL EXAM

Comments

  1. Be sure that your encoder isn't using H.264 features unavailable on iOS. I believe all iOS devices support 3.0 Baseline, everything but first generation supports 3.1 Baseline, and the most recent 3.1 Main. Wikipedia has a list of differences between the different profiles.

    Somewhat more detailed information on iOS devices' support is available here, but the official tech specs for each device lists its particular capabilities.

    ReplyDelete

Post a Comment

Popular posts from this blog

[韓日関係] 首相含む大幅な内閣改造の可能性…早ければ来月10日ごろ=韓国

div not scrolling properly with slimScroll plugin

I am using the slimScroll plugin for jQuery by Piotr Rochala Which is a great plugin for nice scrollbars on most browsers but I am stuck because I am using it for a chat box and whenever the user appends new text to the boxit does scroll using the .scrollTop() method however the plugin's scrollbar doesnt scroll with it and when the user wants to look though the chat history it will start scrolling from near the top. I have made a quick demo of my situation http://jsfiddle.net/DY9CT/2/ Does anyone know how to solve this problem?

Why does this javascript based printing cause Safari to refresh the page?

The page I am working on has a javascript function executed to print parts of the page. For some reason, printing in Safari, causes the window to somehow update. I say somehow, because it does not really refresh as in reload the page, but rather it starts the "rendering" of the page from start, i.e. scroll to top, flash animations start from 0, and so forth. The effect is reproduced by this fiddle: http://jsfiddle.net/fYmnB/ Clicking the print button and finishing or cancelling a print in Safari causes the screen to "go white" for a sec, which in my real website manifests itself as something "like" a reload. While running print button with, let's say, Firefox, just opens and closes the print dialogue without affecting the fiddle page in any way. Is there something with my way of calling the browsers print method that causes this, or how can it be explained - and preferably, avoided? P.S.: On my real site the same occurs with Chrome. In the ex