【问题标题】:iPhone "cannot play" .mp4 H.264 video fileiPhone“无法播放”.mp4 H.264 视频文件
【发布时间】:2010-07-19 22:16:02
【问题描述】:

我正在尝试为带有 .mp4 视频文件链接的客户设置一个简单的移动页面。像这样:

<a href="My_Video_File.mp4" target="_blank">Watch MP4 Video</a>

然后显然我的视频文件来源正确,.mp4 具有以下特征:

Dimension: 480 * 272
Codecs: AAC, H.264, MPEG-4 SDSM, MPEG-4 ODSM
Channel Count: 2
Total Bitrate: 991
Size: 11.4MB

但是,问题是当我单击 iPhone 显示“无法播放电影”的链接时。并没有告诉我为什么。

有什么帮助吗?

【问题讨论】:

  • 您是否尝试过通过 iTunes 将文件复制到您的 iphone 并查看它是否可以这样播放?
  • 并且..当您尝试 HTML5 视频标签时会发生什么:w3schools.com/html5/tag_video.asp

标签: iphone video h.264 mp4


【解决方案1】:

问题部分与编码有关,但更多与尺寸有关。

我发现如果您的 .mp4 文件的尺寸大于 640*360,那么 iPhone(iPad、iPod)甚至不会让用户选择尝试播放它。他们只是得到 X'd out 播放按钮图标。

此外,这些设备仅支持使用基线 H.264 配置文件编码的 .mp4,否则无法播放。

此外,iPhone 的比特率限制为 1.5Mb,但建议将比特率保持在 900kb 以下。

如果质量比尺寸更重要,那么您可以使用更大尺寸的 m4v,但我相信比特率规则仍然适用。

【讨论】:

  • iPhone 的比特率限制实际上是 2500kbps。 iPod 视频有 1500kbps 的限制。 iPhone 4 和 iPad(两代)及更新机型可以以几乎任何比特率播放最高 720p 的 Main Profile。
  • 您的回答与您在问题中的事实相矛盾,因此这是一个错误的回答
  • @francogrex 您可能想检查这个问题的日期。它现在已经有十年历史了。情况发生了变化。
【解决方案2】:

我遇到了类似的问题,我的猜测是编码。我曾尝试使用 Adob​​e Premiere CS4 (Adobe Media Encoder) 预设“iPhone”,但没有成功。

使用以下方法通过 ffmpeg 运行它就可以了:

ffmpeg -i INPUT -s 320x240 -r 30000/1001 -b 200k -bt 240k -vcodec libx264 -coder 0 -bf 0 -refs 1 -flags2 -wpred-dct8x8 -level 30 -maxrate 10M -bufsize 10M -acodec libfaac -ac 2 -ar 48000 -ab 192k OUTPUT.mp4

我在这里找到了上述内容(以及许多其他配置):http://rodrigopolo.com/ffmpeg/cheats.html(我更正了他们“iPod-iPhone 640 宽度,无压片”[原文如此]中的一些错字。)

其他搜索可能会获得有关在 iPhone 上播放电影的编码要求(h.264 基线 3.0)和大小要求的更多信息。

有关该主题的 Apple 官方参考资料:http://developer.apple.com/library/safari/#documentation/AppleApplications/Reference/SafariWebContent/CreatingVideoforSafarioniPhone/CreatingVideoforSafarioniPhone.html

【讨论】:

    【解决方案3】:

    您需要 h254 视频是渐进式的,而不是更低的。选择 H.264 预设并将视频从较低更改为渐进。

    【讨论】:

      【解决方案4】:

      这是为我做的:

      ffmpeg -an -i movie.mp4 -vcodec libx264 -codec:a libmp3lame -qscale:a 1 -pix_fmt yuv420p -profile:v baseline -level 3 output.mp4

      我在这里使用了 mp3 编解码器。这解决了我的 iPhone mp4 问题!

      【讨论】:

        【解决方案5】:

        我在生成的视频中遇到了类似的情况。它可以在我的本地机器上播放,或者通过支持 .mp4 的浏览器播放;但是,当我尝试在我的 iPhone 上查看它时,它总是会弹出划掉的播放按钮。阅读ffmpeg docs 后,我尝试使用以下内容,它在我的 iPhone 以及我能够尝试的其他设备上运行良好。

        ffmpeg -i input.mkv -c:v libx264 -crf 28 -preset veryslow -tune fastdecode \
          -profile:v baseline -level 3.0 -movflags +faststart -c:a libfdk_aac -ac 2 \
          -ar 44100 -ab 64k -threads 0 -f mp4 output.mp4
        

        我正在处理的视频是 1280x720,30fps,最终让它工作的选项是

        -profile:v baseline -level 3.0
        

        【讨论】:

        • 它对我不起作用,你有更新 FFMPEG 版本的更新吗?
        猜你喜欢
        • 2011-11-03
        • 1970-01-01
        • 2015-11-26
        • 2015-08-21
        • 2012-11-04
        • 1970-01-01
        • 2018-02-19
        • 2011-05-04
        • 1970-01-01
        相关资源
        最近更新 更多