免责声明: 本文档可能包含第三方产品信息,该信息仅供参考。阿里云对第三方产品的性能、可靠性以及操作可能带来的潜在影响,不做任何暗示或其他形式的承诺。

 

问题描述

上传到OSS的视频在线播放时出现异常,一般有如下两种情况。

  • 情况一:有的视频无法在线播放。
  • 情况二:有的视频在线播放时只有声音没有画面。

 

问题原因

针对不同的情况,问题原因不同,具体如下。

 

情况一:有的视频无法在线播放

问题原因:浏览器无法正常识别该视频文件的类型。

 

情况二:有的视频在线播放时只有声音没有画面

问题原因:OSS作为存储服务,不对音视频文件进行任何处理,但Web浏览器支持解码常见的音视频文件。通过Web浏览器访问OSS中的音视频资源时,Web浏览器对该音视频资源进行解码并播放。如果该视频文件为MPEG4或HEVC等格式(H.265编码),常见的Web浏览器暂不兼容该编码的视频文件,导致浏览器只解码了音频,没有解码视频。

 

解决方案

对于上述两种情况,其解决方案不同,请根据现场实际情况选择对应的解决方案。

 

情况一:无法在线播放视频文件

Web浏览器通过文件对应的Content-Type来识别文件类型,在OSS的控制台或者使用OSS的SDK上传文件时,通常会自动匹配常见文件的Content-Type。但是使用API上传时,需要用户自定义文件的Content-Type,否则OSS会默认设置文件的Content-Type为application/octet-stream,Web浏览器将识别该文件为二进制文件并直接下载。参考如下步骤进行排查。

  1. 参考如下两种方式,检查播放异常文件的Content-Type值。
    • Web浏览器工具:在播放异常的Web浏览器页面,打开Web浏览器的 开发者工具(F12),切换到 Network 标签,找到播放的视频文件资源并单击其名称,然后单击其右侧的 Headers 标签,查看 Content-Type 值。
    • OSS控制台:登录OSS控制台并进入对应的Bucket,找到目标Object资源,单击 详情。在详情页面,单击 设置HTTP头,查看 Content-Type 值。
  2. 确认播放异常文件的文件格式与Content-Type值相匹配。比如MP4文件的Content-Type为video/mp4。如果不匹配,请参考上述步骤中的OSS控制台方式,修改该文件的Content-Type为正确的值。
  3. 如果播放异常文件的Content-Type正确,但是在Web浏览器中播放时仅有音频,没有视频,则可能是由于该视频文件需要使用特殊的解码器才可以正确播放,而浏览器不支持此解码器。您可参阅 情况二:在线播放时只有声音没有画面 进行解决。

 

情况二:在线播放时只有声音没有画面

查看该视频文件的编码格式,如果该视频为MPEG4或HEVC等H.265编码,请根据实际情况选择如下任一解决方案。

注:您可以通过第三方工具,如MediaInfo,来确认视频文件的编码格式。

  • 将该视频文件转码为H.264编码后重新上传至OSS。
  • 将该视频文件下载到本地,通过第三方播放器播放。
  • 在页面中嵌入支持该视频的播放器插件,通过该插件播放视频。

 

适用于

  • 对象存储 OSS

 

如果您的问题仍未解决,您可以在阿里云社区免费咨询,或提交工单联系阿里云技术支持。