本文主要介绍视频直播的推流、拉流和播流,及其实现步骤。

基本概念

视频直播的基础服务是直播流的接入和分发服务。您可以使用推流地址通过推流工具将视频流推送至阿里云平台进行视频的内容处理及分发,观众可以通过播放地址和播放器观看直播内容。推送至阿里云中心的视频可以根据您的需求进行设置,从而适用于不同的应用场景。

  • 推流

    推流是把采集阶段封装好的音视频直播流推送到阿里云直播服务中心的过程。

  • 拉流

    拉流是将第三方直播流地址拉取到阿里直播中心进行CDN内容分发,推流至需要的节点的过程。

  • 播流

    播流是将直播服务中心已有直播内容,分发到播放器进行播放过程。

直播流程

使用直播基础服务,其实就是通过在推流工具中指定直播地址的方式,将直播流推送至直播中心进行内容分发,再由观众通过播放工具指定播放地址从而观看直播的过程。

若要完成视频直播,步骤如下:

  1. 准备工具和环境
  2. 拉取直播流(按需)
  3. 获取推流与播放地址
  4. 推流设置与操作
  5. 播放设置与查看

准备工具和环境

根据需求下载合适的端侧工具。

推流工具 下载地址

PC端推流

以PC端OBS推流插件Demo为例。

移动端推流

以阿里云直播为例。

扫码安装Demo应用阿里云直播。Demo安装包
播流工具 下载地址

PC端播流

以第三方工具VLC为例。

VLC media player官方下载地址

移动端播流

以阿里云直播为例。

扫码上方二维码安装Demo。(若已安装可跳过)。
网络环境类型比较见下表:
网络类型 优势 劣势
有线网 稳定 不够便捷
Wi-Fi 便捷 不稳定
  • 有线网络相对Wi-Fi来说比较稳定,信号不易受干扰。因此,如果条件允许,建议您使用有线网络。
  • Wi-Fi相对有线网络来说比较便捷。因此,如果是活动直播,建议您使用 Wi-Fi。

上行带宽检测

视频直播对网络环境要求较高,良好的网络环境可以保证直播观看时的流畅度。上行带宽,决定视频质量、分辨率。视频质量越好,分辨率越高,对上行带宽的要求就越高。建议您使用网速测试工具Speedtest测试您当前网络的上行带宽情况。
说明 建议您的上行带宽不低于1 Mbps。

拉取直播流

如果您使用的是第三方的直播流地址,您可以使用拉流直播的功能,将直播流拉取到阿里云视频直播的直播中心,再进行分发。您只需准备完成拉流配置即可,支持固定拉流和触发拉流两种方式。
  • 固定拉流:指定拉流的起始时间和结束时间,在指定时间进行拉流直播。
  • 触发拉流:当需要拉取的源站开始播放直播流时,自动触发阿里云视频直播服务进行拉流直播。

准备需要拉取的源站的拉流地址,在直播控制台域名管理 > 域名配置 > 拉流配置页面中,添加拉流配置信息。具体操作,请参见拉流配置

说明
  • 阿里云拉流服务器IP为动态IP,若您的直播流源站设置了IP白名单的访问限制,可能导致视频直播服务无法拉取到您的第三方的直播流地址。
  • 固定拉流和触发拉流目前均暂不支持IPv6。

获取推流与播放地址

获取推流地址,您需要按照以下步骤完成操作:

  1. 添加推流域名。

    添加推流域名后,要对域名进行CNAME解析。参见 添加域名解析CNAME

    添加推流域名后,默认开启鉴权功能,您也可以根据需求自定义鉴权,参见 配置鉴权

  2. 添加播流域名。

    添加播流域名后,要对域名进行CNAME解析。参见 添加域名解析CNAME

    添加播流域名后,默认开启鉴权功能,您也可以根据需求自定义鉴权,参见 配置鉴权

  3. 对域名做关联映射。

    在添加推流域名和播流域名后,您需要将推流域名和播流域名进行关联,参见 关联域名

  4. 根据推流规则拼接推流地址。
    • 推流地址规则

      直播只支持RTMP格式推流。

      推流地址格式为RTMP://推流域名/APPName/StreamName?鉴权串

    • 示例

      例如,推流域名是push.aliyunlive.com,鉴权key是123,则推流地址为RTMP://推流域名/APPName/StreamName?auth_key=timestamp-rand-uid-md5hash

获取播流地址,您需要按照以下步骤完成操作:

  1. 添加推流域名。

    添加推流域名后,要对域名进行CNAME解析。参见 添加域名解析CNAME

    添加推流域名后,默认开启鉴权功能,您也可以根据需求自定义鉴权,参见 配置鉴权

  2. 添加播流域名。

    添加播流域名后,要对域名进行CNAME解析。参见 添加域名解析CNAME

    添加播流域名后,默认开启鉴权功能,您也可以根据需求自定义鉴权,参见 配置鉴权

  3. 对域名做关联映射。

    在添加推流域名和播流域名后,您需要将推流域名和播流域名进行关联,参见 关联域名

  4. 根据播流地址规则拼接播流地址。
    • 播流地址规则

      播流地址支持RMTP、FLV、HLS格式。格式如下所示:

      • RTMP://播流域名/AppName/StreamName?鉴权串
      • FLV://播流域名/AppName/StreamName.flv?鉴权串
      • HLS://播流域名/AppName/StreamName.m3u8?鉴权串
    • 示例

      例如,播流域名是play.aliyunlive.com,鉴权key是 456,则播流地址为:

      • RTMP://play.aliyunlive.com/AppName/StreamName?auth_key=timestamp-rand-uid-md5hash
      • FLV://play.aliyunlive.com/AppName/StreamName.flv?auth_key=timestamp-rand-uid-md5hash
      • HLS://play.aliyunlive.com/AppName/StreamName.m3u8?auth_key=timestamp-rand-uid-md5hash

推流设置与操作

根据实际使用的推流工具按下表操作指引完成推流。

端侧 操作指引

PC端

以PC端OBS推流插件Demo为例。

  1. 运行OBS推流插件Demo。
    说明 首次在Mac端打开OBS推流插件Demo,可能收到以下错误提示:

    macOS无法验证此App不包含恶意软件。

    您可以通过Mac端的安全性与隐私设置,允许打开此App。

  2. 单击设置打开设置页面。
  3. 在设置页面单击推流打开串流页面,然后填写服务器信息。

    在服务器编辑框填入已经生成的鉴权推流地址。推流地址示例为:rtmp://push.aliyunlive.com/app/stream?auth_key=1543302081-0-0-9c6e7c8190c10bdfb3c0************

    obs
    说明
    • 以上推流地址示例由推流域名、AppName、StreamName和鉴权串组成,您需要根据实际情况,替换成您自己的AppName、StreamName和相应的鉴权串。
    • 服务器输入框中需填写完整的推流地址。
    • 关于OBS推流插件Demo配置及使用,请参见OBS推流工具
  4. 在主界面的来源区域添加视频源,然后单击开始推流

移动端

以阿里云直播为例。

  1. 在移动端打开阿里云直播,选择摄像头推流录屏推流进入开始推流界面。
    说明 摄像头推流为手机摄像头采集画面进行推流,录屏推流为手机屏幕画面进行推流。
  2. 开始推流界面顶端输入已经生成的带鉴权信息的推流地址,如rtmp://push.aliyunlive.com/app/stream?auth_key=1543302081-0-0-9c6e7c8190c10bdfb3c0************
  3. 完成分辨率设置等推流设置,然后界面最下方的开始推流,完成移动端推流。

推流后您可前往控制台,点击流管理,查看在线流列表,列表中已有您的视频信息则表示推流成功。

播放设置与查看

根据实际使用的播放工具按下表操作指引完成播放。

端侧 操作指引

PC端

以VLC为例。

  1. 运行VLC播放器,单击媒体 > 打开网络串流(N)
  2. 请输入网络URL对话框中,输入播放地址(如rtmp://play.aliyunlive.com/app/stream?auth_key=1543300311-0-0-d47ce016332bf280cf275********),并单击播放
说明 以上播放地址示例由播流域名、AppName、StreamName和鉴权串组成,您需要根据实际情况,替换成您自己的AppName、StreamName和相应的鉴权串。

关于VLC播放器的配置及使用,请参见VLC播放器

如果遇到跨域问题无法播放,请参见提示跨域错误

移动端

以阿里云直播为例。

  1. 打开移动端播流工具阿里云直播,选择直播播放进入拉流界面。
  2. 拉流界面编辑框填入已经生成的播流地址。如rtmp://play.aliyunlive.com/app/stream?auth_key=1543300311-0-0-d47ce016332bf280cf275********
  3. 点击拉流,完成移动端播放。

Web端

以阿里云Web播放器为例。

  1. 为本文创建的播流域名配置跨域访问。配置项为HTTP消息头中的Access-Control-Allow-Origin。操作步骤请参考配置HTTP消息头
    说明 选择本文创建的播流域名进入配置页面,Access-Control-Allow-Origin的取值可以填写*表示全部域名,也可以填写阿里云Web播放器的域名,例如http://player.alicdn.com
  2. 单击基础配置,在视频类型选择项中单击直播,将已生成的播流地址输入或拷贝至Web播放器中。
  3. 单击播放预览进行观看。
注意
  • 因为目前主流浏览器不再支持Flash,会导致使用RTMP协议的播放地址在Web播放器无法进行播放预览。