OSS存储的视频,安卓和PC端浏览器打开正常,苹果端打开不播放,什么原因?
今天遇到一个奇怪的问题。
在 OSS 存储的视频资源,客户通过扫描二维码,会自动加载服务,获取视频资源的预签名地址。
之前的视频,都好好的,没想到今天出了一个幺蛾子,有一个视频,获取的预签名链接,在安卓和PC 端都能好好播放,但在苹果端,Safri 浏览器中无法播放,如下图所示:
复制链接,在 PC 端加载视频,可以看到响应头的信息也很正常:
感觉有点莫名奇妙,网络、响应头都没问题,那只能是视频本身有问题。
用苹果手机访问以前其他的视频链接,都正常,那就只能是这一个视频的原因了。
回想之前,这个视频做了什么处理呢?
突然想起来,是用格式工厂,做了压缩,如下,视频编码默认是 HEVC(H265):
而视频编码如果是 H.265(HEVC)、VP9、AC3、DTS 等,安卓和PC都没问题的链接,但在 Safari 就直接拒播(连错误都不报),也就是出现我们之前那个情况。
查了一下,Safari 只支持视频格式为 H264
和 音频格式为 AAC 的流资源。
知道原因就简单了,重新选择 AVC(H264)的视频编码,重新导出压缩视频就可以了。
这个问题在视频处理的时候,会比较常见,做个记录,也希望能帮助遇到相同问题的朋友。