使用PC端进行媒体直播的推流与播放
媒体直播是广播级直播服务,支持频道管理、内容加密等特性,适用于媒资,广电等场景。下面以一个简单的基础样例,介绍如何在PC端借助第三方软件实现媒体直播推流与播放。
前提条件
注意事项
- 检查推流工具OBS的输出分辨率。
需要关注OBS配置的输入输出分辨率和频道的直播转码模板中设置的分辨率,防止出现播放效果不达预期的场景。
查看OBS输入输出分辨率的方法如下所示:
- 本地打开OBS视频采集工具。
- 在界面上方的导航栏中,选择“文件 > 设置”。
- 在左侧导航栏中,选择“视频”,查看基础分辨率和输出分辨率。
图1 视频设置
- 检查推流工具OBS的GOP时长,检查方法详见3。
OBS推流可以设置GOP大小,建议设置为1~2秒。如果GOP时长设置过大,在源流I帧间隔波动较大的情况下,会影响用户体验。
添加媒体直播域名
您需要将自有的推流域名、播放域名分别添加到视频直播服务中。下面以添加推流域名为例,播放域名的添加步骤与此相同。
- 登录视频直播控制台。
- 在左侧导航栏中,选择,进入域名管理页面。
- 单击“添加域名”,界面右侧弹出“添加域名”对话框,如图1所示。
参数配置说明,如表1所示。图2 添加推流域名
表1 域名参数说明 参数
示例
说明
域名
test-push.example.com
输入二级推流域名。
企业项目
-
无需配置,或保持默认值“default”。
域名类型
推流域名
选择域名类型。
子服务类型
媒体直播
直播服务的子服务类型。
直播源站
华北-北京四
直播源站所在地域,推流域名必须和播放域名选择相同的直播源站。
加速区域
推流域名无需设置,播放域名选择“中国大陆”。
播放域名可执行加速的地域。
推流协议
RTMP
媒体直播的推流协议。
- 单击“确定”,在“域名管理”页面列表中新增一条域名记录。
等待大概3-5分钟时间,当“状态”为“正常”时,域名添加成功。
- 执行步骤1-步骤4,完成对播放域名的添加。
配置CNAME
域名添加成功后,推流域名和播放域名会各自分配一个CNAME域名。可登录视频直播控制台,在页面查看,如图3所示。
然后在域名DNS服务商处,配置CNAME解析,添加CNAME记录,操作方法请参见配置CNAME域名解析。CNAME解析生效后,推流域名和播放域名的请求都会转向直播CDN和内容分发网络CDN节点,从而实现直播推流和播放加速。
推流
- 获取推流地址。
- 登录视频直播控制台。
- 在左侧导航树中,选择“媒体直播 > 频道管理”,进入“频道管理”页面。
- 找到对应的频道,单击右侧的“管理”,进入“修改频道”页面。
“输入类型”为“RTMP_PUSH”或“SRT_PUSH”时,才需要获取推流地址,进行推流操作。“FLV_PULL”、“HLS_PULL”或“SRT_PULL”类型无需执行推流操作,直接获取用户提供的音视频流URL,媒体直播服务会直接从URL拉流推到源站。
推流地址为如图4所示URL的值。
同一个域名,不支持同时创建“SRT_PUSH”和“RTMP_PUSH”类型的频道。
- “RTMP_PUSH”类型URL示例:rtmp://live-push.example.com/live/huaweitest?request_source=ott&channel_id=huaweitest。
- “SRT_PUSH”类型URL示例:srt://live-srt-push.example.com:5000?streamid=#!::h=push.bj4.srt.transcodeonline.com,r=live/srtpush,request_source=ott,channel_id=srtpush,m=publish
- 运行OBS工具,单击右下角的“设置”。
图5 设置
- 在左侧菜单栏选择“输出”,将“输出模式”配置为“高级”,“关键帧间隔”配置为“2”。
图6 输出设置
- 在左侧菜单栏选择“直播”,输入步骤1获取的直播推流URL。
图7 直播设置
推流地址分两部分输入“服务器”和“推流码”中。
由于使用的OBS工具版本不同,界面参数的名称可能会不同,但填写规则是相同的。
“RTMP_PUSH”类型的具体填写规则如下:- 服务器:填写包含AppName前的地址,如"rtmp://live-push.example.com/live/"。
- 推流码:填写包含“StreamName”后的地址,如“huaweitest?request_source=ott&channel_id=huaweitest”。
“SRT_PUSH”类型的具体填写规则如下:
- 方式一:
- 服务器:填写服务器地址,如"srt://live-srt-push.example.com:5000"。
- 推流码:填写“streamid=”后的地址,如“#!::h=push.bj4.srt.transcodeonline.com,r=live/srtpush,request_source=ott,channel_id=srtpush,m=publish”。
- 方式二:
- 服务器:填写完整URL地址,如"srt://live-srt-push.example.com:5000?streamid=#!::h=push.bj4.srt.transcodeonline.com,r=live/srtpush,request_source=ott,channel_id=srtpush,m=publish"。
- 推流码:置空即可。
- 单击“确定”,完成直播推流地址的配置。
- 在“来源”区域单击左下角的“+”,选择直播流来源。
图8 来源设置
- 媒体源:表示本地媒体文件。
- 视频采集设备:表示摄像头,若PC有配套摄像头,会直接启用摄像头。
- 单击右下角的“开始直播”,开始推送直播流。
播放
- 获取播放地址。
- 登录视频直播控制台。
- 在左侧导航树中,选择“媒体直播 > 频道管理”,进入“频道管理”页面。
- 找到对应的频道,单击右侧的“管理”,进入“修改频道”页面。
查看播放地址,如图9所示。支持拼接输出协议为HLS、DASH或MSS的播放地址,示例如下所示:
- HLS协议:https://live-play.example.com/{channelld}/hls/{unique_string}/index.m3u8
- DASH协议:https://live-play.example.com/{channelId}/dash/{unique_string}/index.mpd
- MSS协议:https://live-play.example.com/{channelId}/mss/{unique_string}.ism/Manifest
播放地址支持HTTPS协议,需参考HTTPS证书配置,配置HTTPS证书。
- 运行VLC工具。
- 在菜单栏选择。
- 在弹出的对话框中输入步骤1获取的直播播放URL,并单击“播放”即可。



