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

时间:2019-03-21 10:57:17

标签: android ios ffmpeg mp4

嗨,我有一些视频不能在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 (High 4:4:4 Predictive)Video: h264 (Main)yuv444pyuv420p(tv)以及元数据部分的区别。

我尝试用ffmpeg重新编码第一个视频,但没有成功。 有谁知道video1与Android和iOS不兼容的原因,以及如何重新ffmpeg使其播放? 谢谢!

1 个答案:

答案 0 :(得分:0)

根据对我上面的问题的评论,我对视频进行了重新编码,如下所示:

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

,现在它也可以在Android和iOS上播放。

按键开关是-vprofile main,最重要的开关是-pix_fmt yuv420p,因为aergistal指出,Android / iOS不支持Hi444PP配置文件