You need to enable JavaScript to run this app.
视频直播

视频直播

Copy page
Download PDF
最佳实践
使用 OBS 推流
Copy page
Download PDF
使用 OBS 推流

Open Broadcaster Software(简称 OBS)是一款强大的免费开源直播流媒体内容制作软件,兼容 macOS、Windows 和 Linux 操作系统,本文以在 macOS 上的使用操作为例为您介绍如何使用 OBS 进行推流。

前提条件

操作步骤

获取推流地址

直播支持多种推流地址生成方式,包括手动拼接地址生成器生成使用 API 生成。您可以根据业务需要选择合适的方式生成直播推流地址,详细说明请参见生成直播地址最佳实践

设置推流地址

视频直播当前提供 RTMP、TS over SRT、RTMP over SRT、RTM 和 WebTransport 协议的推流地址。您可以使用 OBS 进行 RTMP 和 TS over SRT 协议的推流。

  1. 在 OBS 软件控制按钮功能区,单击设置进入设置界面。

  2. 设置模块的左侧目录中单击直播配置直播推流地址,RTMP 和 SRT 的推流地址配置如下。

    • RTMP 推流

      配置项说明
      服务自定义
      服务器RTMP://{推流域名}/{ AppName}/

      推流码

      {StreamName}?{鉴权参数}

      tip

      配置示例:

      • RTMP 推流地址:rtmp://push.example.com/live/stream001?volcTime=1735625507&volcSecret=ce7***e0b
      • OBS 推流时服务器配置:rtmp://push.example.com/live/
      • OBS 推流时推流码配置:stream001?volcTime=1735625507&volcSecret=ce7***e0b

    • TS over SRT 推流

      配置项说明
      服务自定义
      服务器srt://{推流域名}:9000?streamid=#!::h={推流域名},r={AppName}/{StreamName},m=publish,{鉴权参数}
      推流码SRT 推流时,推流码不生效无需配置。

  3. 单击确定,保存设置。

设置推流画面

  1. 在 OBS 软件的来源功能区,您可以通过各种素材源编排推流画面,单击添加源” 按钮,根据实际需求选择输入源。您可以参考 OBS Source Guide 了解各种源类型的说明介绍。

  2. 添加来源后,右键单击来源中已添加的源,在弹出的菜单中对单个源进行配置,包括重命名排序变换等常见操作。

开始直播推流

  1. 在 OBS 软件的控制按钮功能区,单击开始直播,开始直播推流。

  2. 推流请求连接成功后,会在 OBS 软件最下方展示推流帧率和码率等信息。

常见配置说明

在直播开始前,您可以提前修改以下常见直播配置,直播过程中不支持修改配置。

  1. 在 OBS 软件的控制按钮功能区,单击设置进入设置对话框。

  2. 输出音频视频高级模块修改以下常见配置。

    模块参数说明

    输出

    视频码率

    视频码率指的是视频数据在单位时间内传输的数据量,码率越高画质越清晰,但同时下行播放时容易卡顿,如使用过大的码率时需要更大的带宽支持,您可以参考以下场景进行配置。

    • 画面变化较小(如秀场),视频比特率推荐配置 2000kbps;
    • 画面变化较多(如晚会),视频比特率推荐配置 4000kbps;
    • 画质要求较高(如游戏),视频比特率推荐配置 6000kbps 或更高。

    关键帧间隔

    GOP 设置过大会导致观众观看延迟变大,一般设置为 2-4。设置为 0 是表示自动,表示视频编码算法会根据视频内容的复杂度和变化情况自动决定关键帧的插入位置和间隔。

    tip

    • 输出模式高级时支持设置关键帧间隔。
    • 使用 RTMP 推流,RTM 拉流时,关键帧间隔建议设置为 1-2。

    CPU 使用预设

    用于控制 OBS 编码时对 CPU 资源的利用程度。

    tip

    • 输出模式高级时支持设置 CPU 使用预设。
    • 使用 RTMP 推流,RTM 拉流时,CPU 使用预设建议设置为 veryfast

    配置(Profile)

    Profile 指的是图像的压缩率,baseline、main、high 的压缩率依次增加,但对 CPU 计算能力的要求也依次增加。

    tip

    • 输出模式高级时支持设置配置(Profile)。
    • 使用 RTMP 推流,RTM 拉流时,配置建议设置为 baseline

    微调(Tune)

    Tune 是一个用于优化视频编码的参数选项。它主要是在已经确定的编码配置文件(Profile)基础上,进一步对视频编码进行微调,以适应特定的视频内容类型或传输环境。可以把 Tune 看作是一种精细调整工具,让编码更加贴合实际的直播场景需求。

    tip

    • 输出模式高级时支持设置微调(Tune)。
    • 使用 RTMP 推流,RTM 拉流时,微调建议设置为 zerolantency
    音频码率音频码率指的是音频数据在单位时间内传输的数据量,使用 OBS 推流时建议使用默认配置 160 kbps。
    音频采样率音频采样率则是指每秒对声音信号采样的次数。常见的采样率有 44100Hz(44.1kHz)、48000Hz 等。采样率越高,所能捕捉到的声音频率范围就越广,声音的还原度就越精确和真实。但高采样率也会增加数据量。
    视频基础(画布)分辨率直播的原始分辨率,一般使用 1920x1080。

    输出(缩放)分辨率

    指最后编码发送给外部的分辨率,输出分辨率总是小于等于基础分辨率。

    tip

    输出分辨率小于基础分辨率时,画面会被缩小至输出分辨率。

    帧率帧率越大画面越流畅,直播场景帧率不宜设置过大,保证 20fps 以上即可,设置过大,同样码率下会有损直播清晰度。
    高级自动重连支持开启自动重连,并设置重试延迟和重试次数。
    网络支持开启动态码率,用来应对网络拥堵。
Last updated: 2024.12.26 13:45:08