代码之家  ›  专栏  ›  技术社区  ›  AJB

iPhone“无法播放”.mp4 H.264视频文件

  •  11
  • AJB  · 技术社区  · 14 年前

    我正在尝试为客户端设置一个简单的移动页面,其中包含指向.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说“电影不能播放”,却没有告诉我原因。

    有什么帮助吗?

    5 回复  |  直到 3 年前
        1
  •  21
  •   TylerH Ash Burlaczenko    3 年前

    问题部分与编码有关,但更多与维度有关。

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

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

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

        2
  •  10
  •   jeffreypriebe    14 年前

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

    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宽度,无按键”[sic]中的一些拼写错误。)

    苹果公司关于这个问题的官方参考: http://developer.apple.com/library/safari/#documentation/AppleApplications/Reference/SafariWebContent/CreatingVideoforSafarioniPhone/CreatingVideoforSafarioniPhone.html

        3
  •  5
  •   Robert Randy    12 年前

        4
  •  2
  •   TylerH Ash Burlaczenko    3 年前

    这是为了我:

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

    我用的是mp3编解码器。这解决了我的iphonemp4问题!

        5
  •  0
  •   TylerH Ash Burlaczenko    3 年前

    我在制作视频时遇到了类似的情况。它可以在我的本地机器上播放,或者通过支持.mp4的浏览器播放;然而,当我试着在iPhone上查看它时,它总是会弹出划掉的play按钮。读后 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
    

    我正在处理的视频是每秒30帧的1280x720,而最终使其工作的选项是

    -profile:v baseline -level 3.0