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

问题描述

上传到阿里云对象存储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浏览器将识别该文件为二进制文件并直接下载,详情请参见访问存储在OSS中的资源时资源被强制下载。参考如下步骤进行排查。

  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,详情请参见添加转码配置
  • 将该视频文件下载到本地,通过第三方播放器(OBS推流工具或者VLC播放器)播放。
  • 在页面中嵌入支持该视频的播放器插件,通过该插件播放视频。

适用于

  • 对象存储 OSS

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