代码之家  ›  专栏  ›  技术社区  ›  Ahmed Nuaman

iPad MP4播放问题

  •  2
  • Ahmed Nuaman  · 技术社区  · 14 年前

    我想知道这是iOS设备的问题还是iPad的问题(实际上我只有一个iPad可以玩)。

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

    我看过其他设备,比如Android for EG,这会正确地激发媒体播放器和流媒体。

    有没有具体的方法让它在iPad/iOS上的默认媒体播放器中播放?

    3 回复  |  直到 10 年前
        1
  •  1
  •   Stu Thompson Helter Scelter    13 年前

    问题很可能是MP4的特殊编码特性。H264和MPEG-4具有 小选项和可调整参数。iOS设备对它们喜欢和不喜欢的东西相当具体。(公平地说,这不是iOS设备特有的问题。)

    看看布莱特考夫的 encoding recommendations 重新编码你的媒体。

    如果失败,并且假设您安装了ffmpeg,则将 ffmpeg -i problemfile.mp4 下面的评论,我可以看看。

        2
  •  1
  •   Luca Lenardi    13 年前

    在播放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
    
        3
  •  0
  •   Alex    10 年前

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

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

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

    MP4box-单1 input.mp4-输出fixed.mp4

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

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

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