在局域网上搭建亚秒级(超低延迟)直播平台
本教程介绍了,如何使用开源直播平台 OvenMediaEngine (OME) 在局域网上搭建亚秒级(理论上延迟小于 1 秒)直播平台,并使用 OBS 开播。
OME 官网 和 GitHub
OvenMediaEngine(OME)是一个开源的流媒体服务器,可以通过低延迟HLS(LLHLS)和WebRTC向数十万观众提供亚秒级延迟的高清晰直播流。OME可以通过WebRTC、SRT、RTMP、RTSP和MPEG2-TS协议摄取直播流,用内嵌的直播转码器将其编码为ABR,并通过LLHLS和WebRTC流向观众。使用OvenMediaEngine,您可以非常容易地建立您强大的和亚秒级延迟的媒体服务。
先决条件
- 已安装 Docker
- 已安装 OBS
第一步:使用 Docker 安装 OME 并运行
如果您想使用 OME 的默认配置,您可以使用在终端运行以下代码:
docker run -d
-p 1935:1935
-p 3333:3333
-p 3334:3334
-p 3478:3478
-p 9000:9000
-p 9999:9999/udp
-p 4000:4000/udp
--name ovenmediaengine
airensoft/ovenmediaengine:latest
注意:代码中的换行目的是使其显得更加整洁,可读性更好,在使用时,请务必先取消换行,再复制到终端运行。
如果您想要将 OME 的配置文件放在本地文件夹中,您可以运行以下代码:
docker run -d
-p 1935:1935
-p 3333:3333
-p 3334:3334
-p 3478:3478
-p 9000:9000
-p 9999:9999/udp
-p 4000:4000/udp
-v ome-origin-conf:/opt/ovenmediaengine/bin/origin_conf
-v ome-edge-conf:/opt/ovenmediaengine/bin/edge_conf
--name ovenmediaengine
airensoft/ovenmediaengine:latest
注意:
- 代码中的换行目的是使其显得更加整洁,可读性更好,在使用时,请务必先取消换行,再复制到终端运行。
ome-origin-conf
和ome-edge-conf
需要替换成您需要保存其配置文件的文件夹路径。- 需要提前在您设置的文件夹中,放好配置文件,否则此容器无法启动。
第二步:配置 OBS 并进行推流
- 打开 OBS。
- 配置 OBS 为极低延迟模式。 文件 -> 输出 -> 高级 -> 直播,设置 “关键帧间隔” 为 "1 s" (不要设置为 0 ),设置 “CPU 使用预设” 为 ultrafast (极快),设置 “配置” 为 baseline (基线),设置 “微调” 为 zerolatency (零延迟)。
- 打开 文件 -> 设置 -> 直播 , “服务” 选择 “自定义” , “服务器” 填写
rtmp://[您的 OME 所在计算机的 IP 地址]:[您为 Docker 容器的 1935 端口设置的映射端口]/app/
, “推流码” 填写 “stream” 。点击 “确定” 。 - 设置您想要直播的场景。
- 点击 “开始推流” 。
推流码用于区分不同的直播
第三步:使用 OvenPlayer 观看直播
官方介绍:OvenPlayer是一个基于JavaScript的开源播放器,可以播放为OvenMediaEngine优化的WebRTC和LLHLS流。它提供各种API,所以你可以更容易地建立和操作你的媒体服务。
也就是说, OvenPlayer 实际上是一个 JavaScript 程序,您可以在任意 HTML 网页中,去嵌入这个播放器。这使得您可以极其自由地对其进行个性化改造。但无疑,这对没有网页编程知识的用户来说,它非常难用。
这里,我们仅使用它的 Demo (示例网页)来展示,如何观看直播。
- 在您想要用于观看直播的电脑(或手机等设备)上,安装 OvenPlayer 。首先从 OvenPlayer 的 GitHub 页面 下载 OvenPlayer 。
- 在任意位置解压下载到的压缩包。
- 打开解压后的文件夹。
- 找到其中的 demo 文件夹。
- 使用浏览器打开 demo.html 。
- 在 “ADD SOURCE” 左侧的输入框中,输入
ws://[您的 OME 所在计算机的 IP 地址]:[您为 Docker 容器的 3333 端口设置的映射端口]/app/stream
。 - 点击 “ADD SOURCE” 。
- 点击视频框下的蓝色按钮。
推流码用于区分不同的直播,观看直播时,
/app/stream
中的stream
要换成你的直播设置中的推流码。
大功告成
不出意外的话,您已经在网页中看到了您的直播画面。