MP4浏览器内的视频播放在iOS设备上间歇性中断

问题描述 投票:0回答:1

这确实令人困惑,我们怀疑是iOS错误。

情况:

[我们有一个视频内容网站,我们将视频托管为mp4,用户可以播放它们。这些视频在浏览器的HTML5播放器中内联显示。通常,用户会在同一页面上显示多个视频。

问题

[我们开始在iOS设备上从某些用户那里收到报告,其中一小部分视频显示为无法播放,如下所示:

enter image description here

现在,在屏幕上的所有视频中,只有少数几个不会发生这种情况。在非iOS设备上观看视频时,一切都很好;所有视频均可播放。对于这些用户,无论在该设备上使用什么浏览器都没有关系,也会发生同样的问题。

我们研究的内容

首先,我们研究了与Safari(和iOS)相关的常见HTML5视频播放问题。诸如确保服务器正在响应Range请求并包括playsinline之类的事情。请求和响应看起来不错,这是有道理的,因为这些视频都被转码成相同的格式并托管在同一台服务器(数字海洋空间)上。

一旦我们能够在iOS上重现此问题,我们就会发现它不是视频标签;甚至在浏览器中直接访问mp4(没有HTML)(与哪一个无关)都将不起作用:

enter image description here

这将支持在任何浏览器上均不起作用的想法。这是我们在测试中发现的一些令人困惑的细节(我们正在使用在线服务进行测试,该服务可让我们访问iOS模拟器):

  • 这仅在某些(仅占我们的一小部分)视频中发生,大多数视频将总是起作用
  • 对于不起作用的视频,对于每次simulator重新启动,是否起作用都大约有50/50的机会。如果有效(或无效),它将保持该状态,直到再次重新启动
  • 在同一模拟器会话中,没有任何数量的**设备*重启将状态从不工作变为工作
  • [似乎在iOS 12.4及更高版本,iPad和iPhone(已通过模拟器测试)上发生

[当您搜索Apple论坛时,有很多关于视频播放的近期问题,更多是围绕13.4更新。

示例

我们能够用股票视频重新创建它。仅就上下文而言,我们花了大约16部视频才获得1项失败。

Working

Not working

[当我们访问iOS模拟器(iPhone XS,iOS 12.4)中的“不工作”链接时,每次都会失败。

无论如何,我们对于如何解决此问题已无足够的想法,也许只是想确认一下这可能是iOS的已知问题。有人经历过吗?

html ios video mp4
1个回答
2
投票

非工作文件是yuv422色彩空间(请参见下面的Chroma subsampling : 4:2:2)。大多数硬件(因此是移动设备)解码器只能播放yuv420。必须将文件转码为支持的色彩空间。

Video
ID                                       : 1
Format                                   : AVC
Format/Info                              : Advanced Video Codec
Format profile                           : High 4:2:[email protected]
Format settings                          : CABAC / 4 Ref Frames
Format settings, CABAC                   : Yes
Format settings, Reference frames        : 4 frames
Codec ID                                 : avc1
Codec ID/Info                            : Advanced Video Coding
Duration                                 : 16 s 984 ms
Bit rate                                 : 2 760 kb/s
Width                                    : 720 pixels
Height                                   : 496 pixels
Display aspect ratio                     : 4:3
Frame rate mode                          : Constant
Frame rate                               : 29.970 (30000/1001) FPS
Color space                              : YUV
Chroma subsampling                       : 4:2:2
Bit depth                                : 8 bits
Scan type                                : Progressive
Bits/(Pixel*Frame)                       : 0.258
Stream size                              : 5.59 MiB (100%)
Writing library                          : x264 core 157 r2969 d4099dd
Encoding settings                        : cabac=1 / ref=1 / deblock=1:0:0 / analyse=0x3:0x113 / me=hex / subme=2 / psy=1 / psy_rd=1.00:0.00 / mixed_ref=0 / me_range=16 / chroma_me=1 / trellis=0 / 8x8dct=1 / cqm=0 / deadzone=21,11 / fast_pskip=1 / chroma_qp_offset=0 / threads=15 / lookahead_threads=3 / sliced_threads=0 / nr=0 / decimate=1 / interlaced=0 / bluray_compat=0 / constrained_intra=0 / bframes=3 / b_pyramid=2 / b_adapt=1 / b_bias=0 / direct=1 / weightb=1 / open_gop=0 / weightp=1 / keyint=250 / keyint_min=25 / scenecut=40 / intra_refresh=0 / rc_lookahead=10 / rc=crf / mbtree=1 / crf=23.0 / qcomp=0.60 / qpmin=0 / qpmax=69 / qpstep=4 / ip_ratio=1.40 / aq=1:1.00
Color range                              : Full
Codec configuration box                  : avcC

模拟器有时可以工作,因为它们在软件中模拟解码器。许多软件解码器都支持4:2:2

© www.soinside.com 2019 - 2024. All rights reserved.