准备工作
开通阿里云直播服务: 阿里云直播服务接收直播流, 并提供直播播放地址, 完成一场直播需要先开通阿里云直播服务, 在 视频直播产品主页 中单击 立即开通, 开通阿里云直播服务.
添加直播加速域名: 您需要做直播服务需要提供一个经过备案的域名, 并且在视频直播控制台中 添加直播加速域名.
开始直播
直播需要如下步骤:
获取推流地址: 假如我们的直播加速域名为 a.com, 那么推流地址为: rtmp://video-center.alivecdn.com/AppName/StreamName?vhost=a.com.
推流: 可以使用阿里云提供的直播 demo 工具进行推流测试: https:// promotion.aliyun.com/ntms/act/streamplay.html?spm=5176.137251.709409.4.MiBmaJ&wh_ttid=pc, 将第一步中的推流地址填入推流工具中的 推流地址 处, 并单击 开始直播 即可.
播放: 对于正在进行的推流, 可以使用如下几个地址进行播放, 将任一地址填入直播 demo 工具的拉流地址, 单击 开始点播 即可.
注: 需要把下面的 a.com 换成自己的直播域名.
- http://a.com/AppName/StreamName.flv
- rtmp://a.com/AppName/StreamName
- http://a.com/AppName/StreamNmae.m3u8
常见问题
1. 有没有其他工具可以进行推流?
示例中使用的是 Flash 进行推流, 还可以使用 OBS 进行推流, OBS 下载及使用教程.
2. 如果我需要同时进行多场直播怎么办?
阿里云直播设计逻辑为: 完成配置后, 可以自行管理推流地址, 无需创建直播地址, 相应的播放地址通过规则来映射. 假如用户的直播加速域名为 a.com, 那么推流地址为: rtmp://video-center.alivecdn.com/AppName/StreamName?vhost=a.com. 其中 AppName 和 StreamName 用户可以根据自己需求任意设置和管理.
例如, 如下的直播推流地址都是可以使用的 (相应的播放地址列在推流地址后面).
推流地址: rtmp://video-center.alivecdn.com/live/abc?vhost=a.com
rtmp 播放地址: rtmp://a.com/live/abc
httpflv 播放地址: http://a.com/live/abc.flv
hls 播放地址: http://a.com/live/abc.m3u8
推流地址: rtmp://video-center.alivecdn.com/app/s1?host=a.com
rtmp 播放地址: rtmp://a.com/app/s1
httpflv 播放地址: http://a.com/app/s1.flv
hls 播放地址: http://a.com/app/s1.m3u8
3. 上面提到的三种地址, 有什么区别?
三种播放地址的延迟不一样: httpflv 与 rtmp 延迟较小, 适合交互比较强的直播, hls 延迟较大, 适合交互比较弱的直播.
三种播放地址的兼容性不一样: httpflv 和 rtmp 需要 flash 播放器或则客户端播放器, hls 可以直接在浏览器中播放.
直播转码
直播常见一个问题是, 推流的码率设置得比较高, 很清晰, 但是网络差的观众无法观看, 我们可以使用直播转码功能, 将推上来的直播流转成多种码率, 满足不同网络的用户观看需求.
配置规则
阿里云直播转码的设计逻辑与录制类似, 对域名进行配置, 推流地址符合配置规则直播流将被转码.
转码模版
每个转码模版会有一个 ID, 内容为一组转码参数的集合, 制定了转码输出流的码率, 分辨率等参数.
阿里云提供 2 组转码模版: 高质量转码模版和低质量转码模版, 每组转码模版分别有四种分辨率, 码率的组合, 这些模版分别为:
高质量模版: ld,sd,hd,ud
低质量模版: lld,lsd,lhd,lud
转码配置规则
用户的推流地址形式如下:
rtmp://video-center.alivecdn.com/AppName/StreamName?vhost=a.com
这个推流地址中, 有三部分是由用户管理的: 域名 (a.com),AppName,StreamName. 用户可以配置对某个 域名 + AppName 使用某几个转码模版, 配置后, 当用户推流时, 符合该域名与 AppName 的直播流将被转码.
示例
配置: 域名为 a.com, AppName 为 live 进行转码, 如下直播流将被转码.
- rtmp://video-center.alivecdn.com/live/StreamName?vhost=a.com
- rtmp://video-center.alivecdn.com/live/xyz?vhost=a.com
用户可以在控制台上进行 直播转码配置.
转码流播放地址: 转码流播放地址由原始流播放地址 +_+ 转码 ID 构成. 例如, 在域名 a.com,AppName 为 live 的直播域名下配置了 ld,sd 的转码, 则相应的推流, 播放地址分别为:
推流地址: rtmp://video-center.alivecdn.com/live/abc?vhost=a.com
原始流播放地址:
- rtmp:rtmp://a.com/live/abc
- httpflv: http://a.com/live/abc.flv
- hls: http://a.com/live/abc.m3u8
转码流 ld 播放地址:
- rtmp:rtmp://a.com/live/abc_ld
- httpflv: http://a.com/live/abc_ld.flv
- hls: http://a.com/live/abc_ld.m3u8
转码流 sd 播放地址:
- rtmp:rtmp://a.com/live/abc_sd
- httpflv: http://a.com/live/abc_sd.flv
- hls: http://a.com/live/abc_sd.m3u8
参见 转码地址.
直播录制
保存直播内容, 即直播录制.
阿里云直播录制的设计逻辑为对域名进行配置, 推流地址符合配置规则直播流将被录制, 并写入用户的 OSS.
录制规则
用户的推流地址形式如下:
rtmp://video-center.alivecdn.com/AppName/StreamName?vhost=a.com
这个推流地址中有三部分是由用户管理的: 域名 (a.com),AppName,StreamName. 用户可以配置对某个 域名 + AppName 进行录制, 配置后, 当用户推流时, 符合该域名与 AppName 的直播流将被录制.
示例
配置域名为 a.com,AppName 为 live 进行录制, 如下直播流将被录制.
- rtmp://video-center.alivecdn.com/live/StreamName?vhost=a.com
- rtmp://video-center.alivecdn.com/live/xyz?vhost=a.com
同时可以在控制台上进行直播录制配置, 参见 用户指南 > 直播录制.
来源: https://yq.aliyun.com/articles/584481