# 播放音视频 为应用快速集成安全、稳定的音视频播放能力,视频点播提供从播放凭证、URL鉴权到视频加密的全套安全机制,以及跨平台播放器SDK,能够快速实现视频播放,降低开发成本。本文介绍音视频播放的工作原理、播放地址、播放方式和播放安全。 ## 工作原理 音视频文件能否播放,取决于其[状态 Status](../API参考/基本数据类型.md)。只有状态为 **正常** (`Status`字段值为 **Normal** )的视频才能正常播放,即通过点播API/SDK能获取到播放地址。 > **说明** > **审核中(Checking)** 或 **屏蔽(Blocked)** 状态的视频,仅能在点播控制台预览,或通过已设置的[审核安全IP](../媒体审核/审核安全IP.md)进行访问。 > > 视频从上传到可播放的状态流转路径如下: > > * 有转码 > > ![image](../images/CAEQWhiBgIDAkJ6evBkiIDUxM2UxOGY4YTY0YzQ4OTc5NjZjZjdhY2FmOTRlYWM05272297_20250611112143.407.svg) > > * 不转码 > > ![image](../images/CAEQWhiBgMCi0KGevBkiIDVkYTRhYWIzMDkzZDRlZThhMWExYmRkODdiODYwMzE35272297_20250611112143.407.svg) > > 因此,在获取播放地址前,必须确认视频状态已变为`Normal`。 > > **判断方式** > > 用户上传视频完成后,并不代表视频已准备就绪,还需点播服务端确认接收完成,可根据 **事件通知** 来确定上传的视频何时能播放。 > > * 对于不转码的视频(或音频)接收到[视频上传完成](../事件通知/视频上传完成.md)事件通知后即可进行播放,此时可通过调用[获取视频播放地址](../API参考/获取音视频播放地址.md)接口获取到播放地址,目前 **仅以下格式支持不转码直接播放** :MP4、FLV、M3U8、MP3、WEBM。 > > * 对于转码的视频,接收到[单个清晰度转码完成](../事件通知/单个清晰度转码完成.md)事件通知后即可进行播放,若要确保所有清晰度都能获取到,可接收到[视频转码完成](../事件通知/全部清晰度转码完成.md)再处理。 > > ## 前提条件 > > * 配置加速域名:请确保启用的点播域名进行过域名备案。更多信息,请参见[域名准入标准](../CDN分发加速/域名准入标准.md)。 > > * 域名CNAME解析:请确保域名完成了CNAME绑定,否则无法播放。CNAME绑定请参见 [阿里云(原万网)解析配置CNAME流程](../API参考/通过阿里云云解析配置CNAME.md),同时也支持[DNSPod](../API参考/通过腾讯云DNSPod配置CNAME.md)的域名接入。 > > * 确认转码配置:视频点播支持对上传至点播的媒体文件做 **转码** 和 **不转码** 处理,请参见[音视频转码](../媒体处理/音视频转码.md)。 > > * 确认安全配置:视频点播支持多种对视频内容的保护机制,包括 **访问限制、URL鉴权** 、 **远程鉴权** 、 **视频加密** 及 **安全下载** ,视频是否可播放受限制于以上几种安全配置,请参见[视频安全](../API参考/媒体安全_2.md)。 > > ## 播放地址 > > * 配置加速域名 > > 在点播控制台配置加速域名后,视频播放地址为CDN文件地址,可在点播控制台的 **音/视频\>管理\>视频地址** 页面查看,分为固定和动态两种,取决于是否在域名管理里开启了URL鉴权开关,开启和配置,请参见[URL鉴权](../安全与访问控制/配置URL鉴权.md)。 > * 固定地址 > > 适用于安全性要求低的场景,地址永久有效,即关闭鉴权开关后不含鉴权信息的地址(URL中的`auth_key`参数值即为鉴权信息)。目前控制台添加域名后鉴权开关默认为关闭。 > > * 动态地址 > > 适用于安全性要求高的场景,地址动态生成,一定时间后过期。动态地址的默认有效时间为您在URL鉴权里配置的`默认有效时长`,同时您也可以在[生成播放地址](../安全与访问控制/配置URL鉴权.md)或[获取视频播放地址](../API参考/获取音视频播放地址.md)时设置过期时间;若地址过期则访问时CDN会返回`HTTP 403`。 > > 动态地址示例: > > ```javascript > 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中包含签名。此时,通过播放调用[获取视频播放地址](../API参考/获取音视频播放地址.md)接口获取播放地址时,仍可使用`AuthTimeout`参数指定视频OSS地址的过期时间,但无法根据AccessKey自定义鉴权信息。 > > * 如您在控制台的[**存储管理**](https://vod.console.aliyun.com/#/storage/list)页面设置了存储`Bucket`为 **公共读** ,则可忽略OSS鉴权信息(具体操作,请参见[存储管理](../媒资管理/管理存储Bucket.md)),此时地址为永久有效,但有被盗链、非法下载的风险,故存储`Bucket`应尽量设置为 **私有** 。 > > 更多播放地址的常见设置,请参见[播放常见设置](./播放常见设置.md)。 > > 可以通过以下两种方式获取播放地址: > > * 直接获取:通过查看转码完成后的事件通知,或调用[获取视频播放地址](../API参考/获取音视频播放地址.md)接口。 > > * 通过播放凭证自动换取:使用阿里云播放器SDK,可调用[获取视频播放凭证](../API参考/获取音视频播放凭证.md)接口来获取播放凭证,阿里云播放器SDK通过播放凭证自动获取播放地址进行播放。 > > ## 播放方式 > > * 点播控制台预览 > > 视频点播预览播放器,为您提供快进、音量、字幕、音轨、清晰度、弹幕等功能。让您预览视频更加便捷。![预览视频](../images/p184532.png) > * 在控制台的[**音**]页面选择视频进行预览,优先播放加密流。 > > * 在控制台的 **音/视频\>管理\>视频地址** 页面选择某路流进行预览。为了保障您的视频安全,目前仅支持非加密流预览。 > > * 集成阿里云播放器SDK > > * 您可以从服务端获取播放凭证,回传给客户端进行播放,好处在于安全性较高。更多信息,请参见[获取播放凭证](./获取播放凭证.md)。 > > * 目前阿里云播放器支持直接使用播放地址进行播放,可以将获取到的播放地址直接传递给播放器进行播放。更多信息,请参见[获取播放地址播放](./获取播放地址.md)。 > > * 集成第三方播放器 > > * 您可以集成第三方播放器[获取播放地址播放](./获取播放地址.md)。 > > * 获取到播放地址后,传递给自主播放器进行播放,方式比较灵活,但需要自己实现清晰度切换、异常处理等开发工作。 > > ## 播放安全(限制播放和下载) > > * 视频安全 > > 为了保护您的视频内容,视频点播提供了多种安全保障方式,包括:[黑白名单](../API参考/黑白名单.md)、[URL鉴权](../安全与访问控制/配置URL鉴权.md) 、视频加密([阿里云视频加密](../安全与访问控制/阿里云视频加密(私有加密).md)和[HLS标准加密](../安全与访问控制/HLS标准加密.md))。更多信息,请参见[视频安全概述](../API参考/媒体安全_2.md)。 > > * 账号安全 > > 为了保证安全,请不要将主账号或RAM用户AK放在客户端(特别是Web端)来访问点播服务。更多信息,请参见[账号和授权概述](../安全与访问控制/账号和授权_2.md)。 > > ## 计费说明 > > * 配置加速域名后,音视频播放产生 **加速服务计费。** > > * 未配置加速域名,音视频播放产生 **存储流出流量计费。** > > **详情请参见** [基础服务计费](../计费/基础服务计费.md)。 > > ## 常见问题 ### **视频播放失败,如何排查** 1. 检查网络:确认客户端网络连接正常。 2. 检查视频状态:调用[获取音视频播放地址](./GetPlayInfo%20-%20获取音视频播放地址.md)接口或在控制台查看视频状态是否为`Normal`。 3. 检查播放地址/凭证:检查`auth_key`是否过期或签名是否正确。 4. 检查播放器:确认使用的播放器是否支持该视频格式,阿里云播放器支持格式请参见播放器SDK功能详情。 更多异常请参考[播放异常自主排查](./播放异常自主排查.md)。 ### **如何实现视频加密播放** 视频点播提供多种加密方案,如阿里云视频加密和HLS标准加密,需要配置加密转码模板组进行转码,并在播放时使用阿里云播放器SDK解密播放。详情请参见[视频加密](../安全与访问控制/视频加密.md)。