OBS 推流

最后更新时间:2021-07-21 18:30:50

    方案背景

    Open Broadcaster Software(简称 OBS)是一款好用的第三方开源程序直播流媒体内容制作软件,为用户提供免费使用,它可支持 OS X、Windows、Linux 操作系统,适用多种直播场景,满足大部分直播行为的操作需求,您可以到 OBS 官网下载 最新版本软件。
    准备工作

    获取推流地址

    1. 登录云直播控制台,进入【地址生成器】,进行如下配置:
      1. 选择生成类型为推流域名播放域名
      2. 选择您已添加到域名管理里对应的域名。
      3. AppName 为区分同一个域名下多个 App 的地址路径,默认为 live。
      4. 填写自定义的流名称 StreamName,例如:`live。
      5. 选择地址过期时间,例如:2020-06-09 23:59:59。
    2. 单击【生成地址】即可获取 OBS 推流地址。

    OBS 在线推流

    步骤一:设置推流地址

    1. 打开 OBS,您可通过底部工具栏的【控件】>【设置】按钮进入设置界面。
    2. 单击【推流】进入流设置页签,选择服务类型为自定义流媒体服务器。
    3. 将获取所得的 推流地址 填写到服务器和串流密码中。
      • 服务器:对应"OBS 推流地址",即rtmp://domain/AppName/
      • 串流密码:对应“OBS 推流名称”,即StreamName?txSecret=xxxxx&txTime=5C1E5F7F
    4. 单击【确定】保存设置信息。

    步骤二:推流引导设置

    说明:

    若您需进行码率、录像等配置,可单击顶部工具栏,选择【工具】>【自动配置向导】,按 OBS 的引导进行推流设置。

    1. 查看底部工具栏的【来源】标签。
    2. 单击【+】按钮,按需选择输入源,例如:显示器捕获。

    常用直播来源输入介绍

    输入源说明
    图像 适用于单张图像直播。
    图像幻灯片放映 可循环或者顺序多张播放图片。
    场景 实现各种强大的直播效果。此时,另一个场景是作为来源被添加进当前场景的,可以实现整个场景的插入。
    媒体源 可上传本地视频,并本地点播视频文件进行直播化处理。
    文本 实时添加文字在直播窗口中。
    显示捕获 可实时动态捕捉您电脑桌面的操作,电脑桌面中所有的操作均执行直播。
    游戏捕获 允许对指定来源的游戏进行直播。适用于大小游戏的实况直播。
    窗口捕获 可根据您选择的窗口进行实时捕获,直播仅显示您当前窗口内容,其他窗口不会进行直播捕获。
    色源 使用这个来源可以添加一个色块到您的场景中,作为一个背景色。该色块可以调节透明度,成为全屏透明色彩。
    视频捕获设备 实时动态捕捉摄像设备,可将摄像后的画面进行直播。
    音频输入捕获 用于音频直播活动(音频输入设备)。
    音频输出捕获 用于音频直播活动(音频输出设备)。

    步骤三:开启工作室模式

    工作室模式下可以对当前直播的内容进行实时编辑,并在编辑过程中进行过渡动画的场景切换,从而实现在对用户体验影响最低的程度下进行直播内容的编辑。

    1. 查看底部工具栏的【控件】标签,单击【工作室模式】。
    2. 单击【转场特效】即可将预览窗的直播画面过渡到输出窗口。

    步骤四:直播推流

    1. 查看底部工具栏的【控件】。
    2. 单击【开始推流】,即可将视频流推送到设置的推流地址。
    说明:

    • 底部出现绿灯,表示推流成功。
    • 若需停止推流,单击【停止推流】>【停止推流】即可。

    其他推流相关配置

    影响直播延迟相关设置

    1. 通过【控件】>【设置】>【输出】。
    2. 选择【输出模式】为【高级】,即可对【关键帧间隔】等进行配置,设置方法如下图:
    3. 同时在左侧导航栏,选择【高级】,即可对【串流延迟】进行设置:

    本地直播录制相关设置

    若您有直播时进行本地录制的需求,可以选择直播时在本地进行录制备份,设置方法如下:

    1. 单击【控件】>【设置】>【输出】进入输出设置页签。
    2. 在【录像】设置栏中进行对应的配置,单击【确定】即可将录制文件进行本地保存。
    3. 单击【视频】设置视频分辨率与帧率信息,如下图所示:
      说明:

      分辨率决定了观众看到的画面清晰程度,分辨率越高画面越清晰。FPS 是视频帧率,它控制观看视频的流畅,普通视频帧率有24帧 - 30帧,低于16帧画面看起来有卡顿感,而游戏对帧率要求比较高,一般小于30帧游戏会显得不连贯。

    推流转码相关设置

    若您在推流过程中需要修改视频的码率,具体操作如下:

    1. 通过底部的【控件】>【设置】按钮进入设置界面。
    2. 单击【输出】页签,选择输出模式为“简单”。
    3. 填写视频比特率。单击【确定】即可。

    更多操作说明

    纯音频推流

    根据 OBS 官方论坛的解答,当前 OBS Studio 23.2.1 以及之前版本不支持纯音频推流。
    为实现近似音频推流,您可以参考下面的步骤进行设置。此方法的主要思路是采用静态画布(黑屏或者图片)替代视频。如果您需要降低带宽,可以降低视频的帧率和码率,以此来靠近纯音频推流,但直播流中仍会有视频数据。

    1. 参照 推流引导设置,添加【音频输入捕获】输入源作为输入源,不能添加视频输入源或者添加图片作为视频输入源。

    2. 进入【控件】>【设置】>【视频】页面。

    3. 将【输出(缩放)分辨率】选到最小,同时将【常用 FPS 值(帧率)】选到最小,单击【确定】保存配置。

      1. 单击【输出】进入输入设置页面,按下图配置,此处需将【比特率】设置到最低。单击【确定】保存配置。
    4. 参照 OBS 推流在线推流 中的步骤实现直播推流,这样能听到音频,视频的内容是黑屏或者一张图片。于此同时,视频的码率最低,占用的带宽显著降低。

    视频轮播

    • 单个文件循环播放设置方法

      1. 在底部工具栏的【来源】标签中,单击【+】添加【媒体源】,在弹出框中的【本地文件】选择要轮播的视频文件,勾选【循环】,然后单击【确定】即可。
      2. 按照 OBS 推流设置 步骤,设置【推流】页面中的【服务器】和【串流密钥】项,开始推流即可实现单个文件轮播。

    推流完成后,您可通过以下方式拉流播放来验证流是否推成功:

    • PC 端:支持使用 VLC 播放器 进行拉流。
    • 移动端:支持通过集成 移动直播 SDK 来实现播放。
      说明:

      移动直播 SDK 是云直播服务(LVB)在移动场景的延伸。相比于主要面向云对接的直播(LVB) 服务,移动直播既提供了基于 RTMP SDK 的“快速集成方案”,也提供了集标准直播(LVB)、快直播(LEB)、云点播(VOD)、即时通信(IM) 和对象存储(COS) 等多云端服务的“一体化解决方案”。
      其中, 快直播 (Live Event Broadcasting,LEB)(超低延迟直播)是标准直播在超低延迟播放场景下的延伸,比传统直播协议延迟更低,为观众提供毫秒级的直播观看体验。 能够满足一些对延迟性能要求更高的特定场景需求,例如在线教育、体育赛事直播、在线答题等。