OvenMediaEngine 直播,LL-HLS 和 WebRTC选项以及 SRT 和 RTMP 采集测试

本文将重点介绍来自 AirenSoft 的开源流媒体服务器 OvenMediaEngine,并探讨其为直播流媒体提供毫秒级延迟的功能。文章还将介绍 OvenMediaEngine 的 LL-HLS 和 WebRTC 选项。最后,我们将深入测试 SRT 和 RTMP 采集选项。

关于 OvenMediaEngine(企业版)

OvenMediaEngine 是一款功能齐全的开源流媒体服务器,可通过 WebRTC 和 LL-HLS 提供豪秒级延迟的高清直播流。它能通过以下协议摄取直播流: WHIP、SRT、RTMP、RTSP 和 MPEG-2-TS。此外,用户还可以使用嵌入式直播转码器将流媒体编码为自适应比特率(ABR),并通过 LL-HLS 和 WebRTC 将流媒体传输给观众。

设置 OvenMediaEngine

访问和运行 Oven MediaEngine 有两种方法:下载 Oven MediaEngine 源代码并自行构建,或者使用 Docker 安装。

我使用 OME Docker Launcher 安装了 OvenMediaEngine 以进行本次评测。要做到这一点,你需要熟悉通过命令行界面编写 Bash 脚本,以及使用亚马逊网络服务(AWS)启动 EC2 实例。你还需要对 AWS 的使用有基本的了解。对于不熟悉 Docker 的用户来说,OME Docker Launcher 可以让一切变得轻而易举,因为 AirenSoft 提供了在命令行界面中运行所需的所有命令。

要开始使用 Oven MediaEngine,首先需要订阅 EC2。然后,您就可以在 AWS 上为 Oven MediaEngine 启动一个实例。以下步骤将指导你使用 OME Docker Launcher 完成设置过程。

首先,单击 “启动实例”(Launch Instance),并为实例命名。如图 1 所示,我将实例命名为 OMETEST。然后,选择亚马逊 Linux AMI。在本评论的测试中,我使用的是 Amazon Linux 2023。至于实例类型,你可以使用 T2.micro 来进行测试。接下来,设置要使用的密钥对,并为你的安全组配置网络设置。

OvenMediaEngine 直播,LL-HLS 和 WebRTC选项以及 SRT 和 RTMP 采集测试
图 1. 设置 OvenMediaEngine

表 1 显示了 OvenMedia Engine 使用的端口。这些是我在 EC2 实例的安全组中打开的端口。你需要在服务器上打开这些端口。

OvenMediaEngine 直播,LL-HLS 和 WebRTC选项以及 SRT 和 RTMP 采集测试
表 1.  OvenMediaEngine 端口

安装 Docker 和 OvenMediaEngine

以下是安装 OvenMedia Engine 的步骤:

1. 使用 SSH 连接到 EC2 实例

2. 通过 SSH 连接后,使用以下命令安装 Docker:

$ sudo yum install docker -y

3. 接下来,使用以下语句测试 Docker 以确认其安装正确:

$ sudo service docker start

4. 然后使用 Docker Launcher 安装 OvenMediaEngine,请在 Linux shell 中运行以下命令:

curl -OL 'https://raw.githubusercontent.com/ AirenSoft/OvenMediaEngine/master/misc/ome_docker_launcher.sh' && chmod +x ome_docker_launcher.sh

5. 运行以下命令以显示 Oven MediaEngine 仪表板屏幕:

./ome_docker_launcher.sh -h

6. 按照仪表板屏幕上显示的说明运行此命令:

sudo ./ome_docker_sh setup

开始启动流媒体服务器,可以使用以下命令启动 OvenMediaEngine(请务必包含 IP 地址):

$ OME_HOST_IP=1.2.3.4./ome_docker_launcher.sh start

图 2显示了 Oven MediaEngine 启动并运行后将看到的内容。从图中可以看出,这些是 OvenMediaEngine 使用的端口。

OvenMediaEngine 直播,LL-HLS 和 WebRTC选项以及 SRT 和 RTMP 采集测试
图 2.  OvenMediaEngine 启动后端口的详细信息

要使用 OME Docker Launcher 完成 OvenMediaEngine 的其余设置和其他高级项目,请转到OME Docker Launcher 入门视频教程。它还将引导您设置用于 OvenMediaEngine 的 TSL 证书。您可以在go2sm.com/docker找到使用 Docker 安装的文档。

使用 OvenMediaEngine 发送流

安装并启动 OvenMediaEngine 后,就可以开始向流媒体服务器发送流。要发送 RTMP 流,可以使用实时编码 RTMP 流的常用格式。需要注意的是,OvenMediaEngine 的默认应用程序名为 “app”。因此,在进行任何实时编码时,请务必将其包含在内。流名称可以随心所欲。

图 3 中使用 Open Broadcaster Software (OBS) 的示例中,rtmp 是协议,1935 是端口。两者都包含在服务器字段中。默认应用程序名称为 app,也包含在其中。最后,我选择的流名称是 sample,但你也可以根据自己的喜好来命名。

OvenMediaEngine 直播,LL-HLS 和 WebRTC选项以及 SRT 和 RTMP 采集测试
图3:发送流

为了测试播放,您可以选择使用安全 TLS 演示播放器 ( https://demo.ovenplayer.com ) 或非安全、非 TLS 演示播放器 ( http://demo.ovenplayer.com )。我在撰写本文时使用非 TLS 播放器进行测试,并使用以下格式访问播放器:http://my.ip.address:8090。使用 LL-HLS 和 Web 的格式

播放的RTC如下:

  • http://你的 IP 地址: 3333/app/sample/llhls.m3u8
  • ws://myipaddress:3333/app/sample

图 4显示了 OvenMediaPlayer 在测试播放时的样子。

OvenMediaEngine 直播,LL-HLS 和 WebRTC选项以及 SRT 和 RTMP 采集测试
图 4. 流式播放视图

测试 OvenMediaEngine

以下是我测试 OvenMediaEngine 的过程。

首先,我对能否使用 Docker 设置和配置流媒体服务器很感兴趣。免费开源版本的 OvenMediaEngine 拥有更多功能,为了让该版本正常运行,我需要使用 Docker。

其次,我想了解 OvenMediaEngine 在使用 Videon 的 LiveEdge Max 和 OBS 摄取 SRT 和 RTMP 实时编码时的工作情况。

第三,我想了解 WebRTC 和 LL-HLS 流媒体播放对新手来说是否简单易行。最后,我还想测试延迟。

流媒体服务器设置

使用 OME Docker 启动器设置 OvenMediaEngine 非常快速简单。因为 AirenSoft 提供了脚本和其他命令,所以设置过程简单明了。此外,由于我对 Bash 脚本和 AWS 非常熟悉,使用 Docker 也毫不费力。

测试直播流的采集

使用 OvenMediaEngine 接收 SRT 和 RTMP 实时编码也是一个简单的过程。唯一棘手的部分是如何格式化 streamID,以便为 SRT 流进行百分比编码。Videon 就如何为 LiveEdge Max 格式化 streamID 提供了很好的指导,并指导我使用 LiveEdge Max 在 OvenMediaEngine 上配置 SRT 设置的所有要素。在确保我的EC2上9999的UDP端口开放后,设置就变得简单了。Videon 的帮助还指导我使用 OBS 配置 SRT 流。

以下是我进行的采集测试:

  • LiveEdge Max-RTMP 采集
  • OBS-RTMP 采集
  • LiveEdge Max-SRT 采集
  • OBS-SRT 采集

使用 OvenMedia Engine 设置 RTMP 采集并不难。图 5 显示了在 LiveEdge Max 中配置的主要设置。

OvenMediaEngine 直播,LL-HLS 和 WebRTC选项以及 SRT 和 RTMP 采集测试
图 5.  LiveEdge Max 中的 RTMP 设置

配置 SRT 采集需要更多的工作,因为 OBS 和 LiveEdge Max 都需要 streamID。

图6显示了OBS所需的stream ID的格式。用户只需在Service下选择Custom,然后输入自己的streamID即可。

OBS中添加的StreamID
图6.  OBS中添加的StreamID

图 7 显示了 LiveEdge Max 所需的 streamID 格式。

OvenMediaEngine 直播,LL-HLS 和 WebRTC选项以及 SRT 和 RTMP 采集测试
图 7.  LiveEdge Max 中添加的 StreamID

用户必须在 “输出 “中创建 SRT 设置,并输入以下内容:

Call Mode: Caller

URL: srt://ipaddressofserver:9999

Stream ID: srt%3A%2F%2Fmyipaddress%3A9999%2Fapp%2Fsample 

总的来说,在 OBS 或 LiveEdge Max 上使用 SRT 收取数据流的效果很好,没有任何问题。我唯一的问题是用户失误,忽略了在 AWS 安全组中打开 9999 的 UDP 端口。

测试流播放

WebRTC 和 LLHLS 的流媒体播放对我来说非常顺利。我使用非 TLS 播放器进行测试,这两种类型的流播放都很顺利。我没有在 OvenMedia Engine 上安装 TLS 证书来测试通过 TLS 传输的流媒体。

延迟测试

在延迟测试中,我使用 LiveEdge Max 和 OBS 的预设中的大部分默认设置进行了测试。图 8 和图 9 显示了我对两个编码器使用的设置。

OvenMediaEngine 直播,LL-HLS 和 WebRTC选项以及 SRT 和 RTMP 采集测试
图 8. 用于测试 LiveEdge Max 的编码设置
OvenMediaEngine 直播,LL-HLS 和 WebRTC选项以及 SRT 和 RTMP 采集测试
图 9. 用于测试 OBS 的编码设置

表 2表 3 显示了我的测试结果。

OvenMediaEngine 直播,LL-HLS 和 WebRTC选项以及 SRT 和 RTMP 采集测试
表 2. 使用 RTMP 采集进行延迟测试
OvenMediaEngine 直播,LL-HLS 和 WebRTC选项以及 SRT 和 RTMP 采集测试
表 3. 使用 SRT 采集进行延迟测试

结束语

总的来说,我对安装和配置 Oven MediaEngine 的能力很满意,尽管我以前没有使用 Docker 的经验。AirenSoft 为我提供的帮助资源和视频以及公司对我在使用过程中提出的许多问题的回复都非常棒。Docker 启动并运行后,我发现自己在命令行界面上运行命令非常自如。

此外,我还了解到,使用 LiveEdge Max 和 OBS 将 RTMP 和 SRT 实时编码采集到 OvenMediaEngine 效果非常好,而且只要正确格式化数据流就能轻松实现。使用 OvenMedia Engine 通过 WebRTC 和 LL-HLS 配置流媒体播放对我来说非常简单。新手也能轻松完成。即使使用较小的免费层实例进行测试,我的测试结果也很好,完全在预期范围内。

作者:Derrick Freeman
源自:streamingmedia.

本文来自作者投稿,版权归原作者所有。如需转载,请注明出处:https://www.nxrte.com/jishu/51471.html

(0)

相关推荐

发表回复

登录后才能评论