【问题标题】:iPad MP4 playback issuesiPad MP4 播放问题
【发布时间】:2010-11-28 19:08:38
【问题描述】:

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

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

我查看了其他设备,例如 Android,这会启动媒体播放器并正确流式传输。

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

【问题讨论】:

    标签: ipad video safari stream mp4


    【解决方案1】:

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

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

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

    【讨论】:

    • 原来如此,该死的实习生!
    【解决方案2】:

    我在使用 iPad 播放 mp4 文件时遇到了非常相似的问题,该文件实际上是由 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】:

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

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

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

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

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

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-04-23
        • 1970-01-01
        • 2012-02-12
        • 2014-01-04
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多