Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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?

like image 876
Andrew Avatar asked Feb 12 '11 12:02

Andrew


People also ask

Why is MP4 not playing on iPhone?

(Local Issue) - Your mp4 video resolution is not supported by the "iDevice", so you will have to reduce the video resolution to 720p or convert the video (you can convert on HandBrake). Here is a very complete blog post about how to encode the video and what is supported by the phones.

Do MP4 files play on iPhone?

Your iPhone works only with . m4v, . mp4, and . mov file formats for videos.

Why are my videos not playing properly on my iPhone?

When the downloaded videos not playing on iPhone, it is because of the incompatibility of video formats. In this situation, you should convert your video to the iPhone-supported video formats or turn it to a compatible format of a certain video player. iPhone supports MP4, 3GP, AVI, MOV, MTS, MXF, H.

Does iPad support MP4 video files?

The iPad supports the MP4 video format, as long as it is encoded to Apple's specifications. To watch a video online or through an app, simply tap the Play button. To play MP4 videos stored on your computer, transfer them to iTunes and sync them to the iPad, so you can watch them in the device's Video app.


1 Answers

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.

like image 131
Andrew Marshall Avatar answered Sep 28 '22 05:09

Andrew Marshall