视频在Android(Chrome)和iOS(Safari)上无法播放。

4

您好,我有几段视频在Android(直接在Chrome上)和iOS(直接在Safari上)无法播放,但是它们可以在Windows、Mac和Linux的任何浏览器上播放。

以下是ffprobe输出:

Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'intro_sequence_01.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    date            : 2018-10-08T08:15:57.948731
    encoder         : Lavf58.18.104
  Duration: 00:00:08.00, start: 0.000000, bitrate: 259 kb/s
    Stream #0:0(und): Video: h264 (High 4:4:4 Predictive) (avc1 / 0x31637661), yuv444p, 1920x1080, 257 kb/s, 25 fps, 25 tbr, 12800 tbn, 50 tbc (default)
    Metadata:
      handler_name    : VideoHandler

以下是另一个可以在Android和Chrome上播放的视频的ffprobe输出:

Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'Torcia_960x540.mp4':
  Metadata:
    major_brand     : mp42
    minor_version   : 0
    compatible_brands: mp42mp41
    creation_time   : 2017-02-10T16:14:10.000000Z
  Duration: 00:00:11.52, start: 0.000000, bitrate: 10585 kb/s
    Stream #0:0(eng): Video: h264 (Main) (avc1 / 0x31637661), yuv420p(tv), 960x540 [SAR 1:1 DAR 16:9], 10576 kb/s, 25 fps, 25 tbr, 25k tbn, 50 tbc (default)
    Metadata:
      creation_time   : 2017-02-10T16:14:10.000000Z
      handler_name    : Mainconcept MP4 Video Media Handler
      encoder         : AVC Coding

两个视频都是 .mp4 格式,使用的是 h264 编解码器。据我所见,我注意到一个不同之处在于编解码器配置文件 h264(高级 4:4:4 预测)与视频:h264(主要),以及 yuv444p 和 yuv420p(tv) 在元数据部分的区别。
我尝试使用 ffmpeg 对第一个视频进行重新编码,但没有成功。有人知道为什么 video1 与 Android 和 iOS 不兼容以及如何重新编码它以使其播放吗?谢谢!

2
这些设备不支持 Hi444PP 配置文件。你用的是什么 ffmpeg 命令重新编码的? - aergistal
@aergistal:谢谢!我已经像这样重新编码了 ffmpeg -i original.mp4 -vcodec libx264 -acodec copy -vprofile main -pix_fmt yuv420p reencoded.mp4,现在可以播放了!再次感谢!如果你把你的评论变成答案,我会投票并接受它。 - lviggiani
在 OS X 的 Safari 浏览器中,编解码器真的能正常工作吗? - Anthony
有一次我不得不将视频编解码器从libx264更改为mpeg4,使用-vcodec mpeg4,因为一些Android设备不支持H.264。 - Zenul_Abidin
1个回答

2
根据aeristal在我上面的问题中的评论,我已经重新编码了我的视频,像这样:

根据aeristal在我上方问题的评论,我已将我的视频重新编码如下:

ffmpeg -i original.mp4 -vcodec libx264 -acodec copy -vprofile main -pix_fmt yuv420p reencoded.mp4

最初的回答:
现在它也可以在Android和iOS上播放。关键开关是“-vprofile main”,最重要的是“-pix_fmt yuv420p”,因为Android / iOS不支持Hi444PP配置文件,如aergistal所述。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接