本文主要介绍 Web 端视频播放的几类常见问题及相应解决方案。
视频播放失败
视频播放失败有多种原因,定位问题的基本思路是:
- 配置网络抓包,查看网络请求情况。
- 查看浏览器控制台报错情况。
- 检查视频格式,使用的浏览器是否支持播放。
以下是视频播放失败的几种原因,以及对应的解决方案:
网络
跨协议拦截
问题表现: 在 HTTPS 协议的页面播放 HTTP 协议的视频时,浏览器会处于安全考虑进行拦截。
解决方案: HTTP 协议的页面播放 HTTP 的视频,HTTPS 协议的页面播放 HTTPS 的视频。
CDN 无视频
问题表现: 访问视频地址返回404。
解决方案: 定位并修复 CDN 资源。
CDN 鉴权失败
问题表现: 访问视频地址返回403,无法加载视频。
解决方案: 需确认是否开启 referer 防盗链或者 key 防盗链,视频播放时是否具备校验参数。
微信浏览器拦截
问题表现: 在微信无法播放视频,非微信情况下可以播放。
解决方案: 需要通过微信申诉解除拦截。
跨域问题
问题表现: 在 PC 端无法播放视频,浏览器控制台报跨域相关的错误。
问题背景: 在 PC 端使用 Flash 播放视频需要检查视频服务器的crossdomain.xml
文件。
crossdomain.xml 的作用
- 位于
www.a.com
域中的 SWF 文件要访问www.b.com
的文件时,SWF 首先会检查www.b.com
服务器根目录下是否有crossdomain.xml
文件,如果没有,则访问不成功;如果crossdomain.xml
文件存在,且文件内设置了允许www.a.com
域访问,则通信正常。 crossdomain.xml
中配置的是 SWF 文件的域名。
在 PC 端的现代浏览器使用 HTML5 播放 HLS 和 FLV 时,视频服务器需要配置跨域资源共享 CORS。
正常情况下,腾讯云服务会自动配置这两项跨域策略,如遇到异常情况请 联系我们。
解决方案: 视频存储服务器需要部署crossdomain.xml
文件并配置正确的访问策略,以及开启 CORS 支持。
视频未转码
问题表现: 在腾讯云控制台上传视频后,播放器提示视频未转码。
解决方案: 对视频进行转码操作,具体操作请参见 处理视频,确保视频编码格式为 H.264,视频封装格式为 MP4 或者 HLS。
异常视频
问题表现: 转码后的视频出现花屏、黑屏、卡顿和无法播放等现象,可能是原始视频有问题或者视频转码失败。
解决方案: 需要定位原始视频是否有问题,如果是转码问题请 联系我们。
浏览器环境不支持播放
通常情况下在 Web 端播放视频依赖浏览器自带的解码器,或者 Flash 解码器,不支持播放会出现 error code 为3或4的错误。浏览器不支持播放的常见问题如下:
浏览器不支持 Flash
问题表现: 无法播放 RTMP 和 FLV 格式的视频,或者无法在 IE 浏览器中播放视频。<