为应用快速集成安全、稳定的音视频播放能力,视频点播提供从播放凭证、URL鉴权到视频加密的全套安全机制,以及跨平台播放器SDK,能够快速实现视频播放,降低开发成本。本文介绍音视频播放的工作原理、播放地址、播放方式和播放安全。
工作原理
音视频文件能否播放,取决于其状态 Status。只有状态为正常(Status字段值为Normal)的视频才能正常播放,即通过点播API/SDK能获取到播放地址。
审核中(Checking)或屏蔽(Blocked)状态的视频,仅能在点播控制台预览,或通过已设置的审核安全IP进行访问。
视频从上传到可播放的状态流转路径如下:
有转码
不转码
因此,在获取播放地址前,必须确认视频状态已变为Normal。
判断方式
用户上传视频完成后,并不代表视频已准备就绪,还需点播服务端确认接收完成,可根据事件通知来确定上传的视频何时能播放。
前提条件
配置加速域名:请确保启用的点播域名进行过域名备案。更多信息,请参见域名准入标准。视频点播不强制要求配置加速域名(是否必须配置CDN,取决于访问方式):如果未配置加速域名,可通过获取视频播放地址接口(
GetPlayInfo)获取带时效性鉴权参数的 OSS URL 进行播放(不配置加速域名也能播放);配置加速域名后,则可使用 CDN 域名进行匿名访问,或通过 URL 鉴权实现更灵活的缓存控制。两种方式均可正常播放,配置加速域名并非播放视频的必须步骤。域名CNAME解析:请确保域名完成了CNAME绑定,否则无法播放。CNAME绑定请参见 阿里云(原万网)解析配置CNAME流程,同时也支持DNSPod的域名接入。
确认转码配置:视频点播支持对上传至点播的媒体文件做转码和不转码处理,请参见音视频转码。
确认安全配置:视频点播支持多种对视频内容的保护机制,包括访问限制、URL鉴权、远程鉴权、视频加密及安全下载,视频是否可播放受限制于以上几种安全配置,请参见视频安全。
配置 Web 播放器 SDK License:自 Web 播放器 SDK 2.37.8 版本起,必须配置 License 方可使用,包括 localhost 本地测试环境也需要配置有效 License,不存在临时 License。需要在点播控制台创建 Web 应用并免费购买绑定 License,获取 License Key 和绑定域名后接入代码。老版本 SDK 存在数据合规问题,海外地区使用必须升级至新版本 SDK 并绑定 License。License 的申请与配置详细步骤,请参见 Web 播放器常见问题中的License 相关问题。
播放地址
配置加速域名
在点播控制台配置加速域名后,视频播放地址为CDN文件地址,可在点播控制台的音/视频>管理>视频地址页面查看,分为固定和动态两种,取决于是否在域名管理里开启了URL鉴权开关,开启和配置,请参见URL鉴权。
固定地址
适用于安全性要求低的场景,地址永久有效,即关闭鉴权开关后不含鉴权信息的地址(URL中的
auth_key参数值即为鉴权信息)。目前控制台添加域名后鉴权开关默认为关闭。动态地址
适用于安全性要求高的场景,地址动态生成,一定时间后过期。动态地址的默认有效时间为您在URL鉴权里配置的
默认有效时长,同时您也可以在生成播放地址或获取视频播放地址时设置过期时间;若地址过期则访问时CDN会返回HTTP 403。动态地址示例:
http://example.aliyundoc.com/video/aliyun-sample.mp4?auth_key=1500523200-0-0-80cd3862d699b7118eed99103f2a****说明示例中的auth_key参数值前缀1500523200(时间为2017-07-20 12:00:00),且默认有效时长设置为60分钟,则表示该地址会在2017-07-20 13:00:00过期。
未配置加速域名
未配置加速域名时,返回的播放地址为OSS文件地址,此时无法使用URL鉴权,但会默认生成OSS鉴权信息,请参见OSS-在URL中包含签名。此时,通过播放调用获取视频播放地址接口获取播放地址时,仍可使用
AuthTimeout参数指定视频OSS地址的过期时间,但无法根据AccessKey自定义鉴权信息。如您在控制台的存储管理页面设置了存储
Bucket为公共读,则可忽略OSS鉴权信息(具体操作,请参见存储管理),此时地址为永久有效,但有被盗链、非法下载的风险,故存储Bucket应尽量设置为私有。
更多播放地址的常见设置,请参见播放常见设置。
可以通过以下两种方式获取播放地址:
播放方式
点播控制台预览
视频点播预览播放器,为您提供快进、音量、字幕、音轨、清晰度、弹幕等功能。让您预览视频更加便捷。

集成阿里云播放器SDK
您可以从服务端获取播放凭证,回传给客户端进行播放,好处在于安全性较高。更多信息,请参见获取播放凭证。使用 Web 播放器 SDK 时,需注意配置 License,具体要求请参见"前提条件"章节。
目前阿里云播放器支持直接使用播放地址进行播放,可以将获取到的播放地址直接传递给播放器进行播放。更多信息,请参见获取播放地址播放。阿里云播放器 SDK 提供标准版与专业版两种版本:专业版额外支持 H.266 编码、DASH 协议、外挂字幕、预加载、预渲染、高级 ABR 策略等高级功能,标准版不包含上述功能。如果仅需基础播控功能(点播/直播播放、倍速、清晰度切换等),标准版已足够;如需上述专业功能,建议购买专业版。
集成第三方播放器
您可以集成第三方播放器获取播放地址播放。
获取到播放地址后,传递给自主播放器进行播放,方式比较灵活,但需要自己实现清晰度切换、异常处理等开发工作。
播放安全(限制播放和下载)
计费说明
配置加速域名后,音视频播放产生加速服务计费。
未配置加速域名,音视频播放产生存储流出流量计费。
详情请参见基础服务计费。
常见问题
视频播放失败,如何排查
检查网络:确认客户端网络连接正常。
检查视频状态:调用获取音视频播放地址接口或在控制台查看视频状态是否为
Normal。检查播放地址/凭证:检查
auth_key是否过期或签名是否正确。检查播放器:确认使用的播放器是否支持该视频格式,阿里云播放器支持格式请参见播放器SDK功能详情。
手机浏览器直接复制播放地址,播放卡顿或加载失败:原因是播放地址缺少 URL 鉴权签名,或域名开启了 Referer 防盗链校验并拦截了该请求。解决方法:确认播放地址是否开启了 URL 鉴权并携带有效的
auth_key签名;检查域名的 Referer 防盗链白名单配置;建议使用带签名的播放链接,或通过播放器 SDK 访问,避免直接暴露原始播放地址。微信小程序
video组件倍速播放时音画不同步:原因是微信小程序原生video组件底层对 edit list 支持不完善,音频初始偏移在倍速播放或 Seek 操作时会累积放大。解决方法:建议使用阿里云 Web 播放器 SDK 替代原生video组件,或对视频进行转码处理以提升兼容性。Chrome 浏览器升级后 Web 播放器无法使用(涉及 HLS 兼容性问题):建议将 Web 播放器 SDK 升级至 2.37.8 及以上版本以解决该兼容性问题,并按需申请配置免费的 License(License 申请方式参见"前提条件"中的说明)。
更多异常请参考播放异常自主排查。
如何实现视频加密播放
视频点播提供多种加密方案,如阿里云视频加密和HLS标准加密,需要配置加密转码模板组进行转码,并在播放时使用阿里云播放器SDK解密播放。详情请参见视频加密。
加密播放报错 InvalidParameter,提示 Rand 参数无效
播放加密视频时,如果报错 InvalidParameter 且提示 Rand 参数无效,需要在播放配置中设置对应的 encryptType 参数。具体配置方式请参见加密视频播放说明。