iPad MP4播放问题

时间:2010-11-28 19:08:39

标签: ipad video safari stream mp4

我想知道天气这是iOS设备或iPad的问题(我实际上只有iPad可以播放)。

如果我要编写链接到服务器上的MP4(通过HTTP)的HTML链接,iPad会在Safari中启动它,但不会识别它是MP4而只是提供空白页。

我已经看过其他设备,例如Android,这会正常启动媒体播放器和流媒体。

是否有特定的方法让它在iPad / iOS上的默认媒体播放器中播放?

3 个答案:

答案 0 :(得分:1)

问题很可能是MP4的特定编码特性。 h264和MPEG-4有 加载 的小选项和可调参数。 iOS设备对于他们做什么和不喜欢什么都非常具体。 (公平地说,这不是iOS设备特有的问题。)

查看Brightcove的encoding recommendations并重新编码您的媒体。

失败了,假设您安装了FFmpeg,请发布ffmpeg -i problemfile.mp4的结果并在下面发表评论,以便我查看。

答案 1 :(得分:1)

在播放mp4文件时,我遇到了与iPad非常相似的问题,实际上这是由Brightcove编码的。

视频不会在使用iPad的html5视频标签内启动,而是在Chrome,Safari和IE9中完美运行。

您可以在此处抓取视频:http://tinyurl.com/796c5ub这是$ffmpeg -i video1.mp4的输出:

ffmpeg version 0.7.1, Copyright (c) 2000-2011 the FFmpeg developers
  built on Jul 31 2011 18:31:40 with clang 2.1 (tags/Apple/clang-163.7.1)
  configuration: --prefix=/opt/local --enable-gpl --enable-postproc --enable-swscale --enable-avfilter --enable-libmp3lame --enable-libvorbis --enable-libtheora --enable-libdirac --enable-libschroedinger --enable-libfaac --enable-libxvid --enable-libx264 --enable-libvpx --enable-libspeex --enable-nonfree --mandir=/opt/local/share/man --enable-shared --enable-pthreads --disable-indevs --cc=/Developer/usr/bin/clang --arch=x86_64
  libavutil    50. 43. 0 / 50. 43. 0
  libavcodec   52.122. 0 / 52.122. 0
  libavformat  52.110. 0 / 52.110. 0
  libavdevice  52.  5. 0 / 52.  5. 0
  libavfilter   1. 80. 0 /  1. 80. 0
  libswscale    0. 14. 1 /  0. 14. 1
  libpostproc  51.  2. 0 / 51.  2. 0
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'video1.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    creation_time   : 2011-12-06 08:00:00
    encoder         : Lavf53.17.0
  Duration: 00:00:45.60, start: 0.000000, bitrate: 1818 kb/s
    Stream #0.0(eng): Video: h264 (High), yuv420p, 1280x852, 1687 kb/s, 25 fps, 25 tbr, 25 tbn, 50 tbc
    Metadata:
      creation_time   : 2011-12-06 08:00:00
    Stream #0.1(eng): Audio: aac, 44100 Hz, stereo, s16, 128 kb/s
    Metadata:
      creation_time   : 2011-12-06 08:00:00
At least one output file must be specified

答案 2 :(得分:0)

在寻找与iOS相关的MP4音频问题的解决方案时发现这一点:我的一些MP4音频文件将开始播放,但在文件中的某个点,iOS上的播放会挂起,而非iOS播放器完美播放相同的MP4文件直到最后。

MP4是一种容器格式。据说还包含描述音频/视频的非音频/非视频流和元数据头。 iOS似乎不喜欢某些流类型,如果某些标头位于文件中的意外位置。

mp4box和ffmpeg可以修复这些标头并删除不需要的流。 我只是摆弄了mp4box,这样我就可以解决音频问题:

mp4box -single 1 input.mp4 -out outputfixed.mp4

“1”是包含我的音频的流号码(可能会有所不同,mp4box也可以列出包含的流)。

后来我发现主要用于编辑标签的GUI工具“MP4tag”有一个名为“MP4 optimize”的菜单功能,据说可以解决同样的问题。

mp4box还应该能够通过从输入文件中检索多个流来修复视频+音频组合。