OvenMediaEngine部署全攻略:打造你的实时媒体服务器
一、WebRTC技术简介
WebRTC
是“网络实时通信”(Web Real Time Communication)的缩写,它主要用来让浏览器实时获取和交换视频、音频和数据。
WebRTC
共分三个API:
1、MediaStream
(又称getUserMedia)
2、RTCPeerConnection
3、RTCDataChannel
getUserMedia
主要用于获取视频和音频信息,后两个 API
用于浏览器之间的数据交换。
RTCPeerConnection
用于浏览器之间点对点的连接,RTCDataChannel
用于点对点的数据通信。
二、OvenMediaEngine流媒体服务器
OvenMediaEngine
(OME) 是一个亚秒级延迟流媒体服务器,可以通过低延迟 HLS
(LLHLS) 和 WebRTC
向数十万观众流式传输大规模和高清的直播。
OME
可以通过 WebRTC
、SRT
、RTMP
、RTSP
和 MPEG2-TS
协议引入直播流,使用嵌入式直播转码器将其编码为 ABR
,并通过 LLHLS
和 WebRTC
将其流式传输给观众。
使用 OvenMediaEngine
,您可以非常轻松地构建强大的亚秒级延迟媒体服务。
1、推送:WebRTC
、WHIP
、SRT
、RTMP
、MPEG-2 TS
2、拉取:RTSP
3、预定频道(预先录制的现场直播)
4、多路复用通道(重复流/多路复用轨道)
5、适用于 LLHLS
和 WebRTC
的自适应比特率流 (ABR
)
6、使用 WebRTC
的亚秒级延迟流
a、基于 `TCP` 的 `WebRTC`(带嵌入式 `TURN` 服务器)
b、嵌入式 `WebRTC` 信令服务器(基于 `WebSocket`)
c、使用 `NACK` 进行重传
d、`ULPFEC`(不均匀电平保护前向纠错)
e、`VP8`,`H.264`
7、嵌入式实时转码器
8、视频:VP8
、H.264
、H.265
(仅限硬件)、直通
9、音频:Opus
、AAC
、直通
三、OvenPlayer播放器
OvenPlayer
是一个基于 JavaScript
的播放器,可以播放针对 OvenMediaEngine
优化的低延迟 HLS
(LLHLS) 和 WebRTC
流。
它提供了各种 API
,因此您可以更轻松地构建和操作媒体服务。
1、HTML5
标准视频播放器
2、使用各种协议进行直播
a、亚秒级延迟:`WebRTC`(信令协议符合 `OME` 规范)
b、低延迟:`LLHLS`、`LLDASH`(分块 `CMAF`)
c、旧版:`HLS`、`MPEG-DASH`
3、自动回退流式处理
4、完全可定制的 UI
和 SDK
5、插入各种格式的广告
6、VAST4
、VAST3
、VAST2
、VPAID2
(HTML5)、VMAP1.0.1
7、支持多种字幕格式: SMI
、VTT
、SRT
四、OvenMediaEngine部署
1、官方文档
airensoft.gitbook.io/ovenmediaen…
2、运行脚本(如果使用编译包部署,此步骤省略,编译包ovenmediaengine.tar.gz)
#方法一:
tar xvfz OvenMediaEngine-0.10.6.tar.gz
OvenMediaEngine-0.10.6/misc/prerequisites.sh
#方法二:
tar xvfz ovenmediaengine.tar.gz
3、编译部署
sudo apt-get update
cd OvenMediaEngine-0.10.6/src
make release
sudo make install
4、证书部署(如需启用TLS)
证书位置:/usr/share/ovenmediaengine/conf
将证书pem
文件后缀名更改为 .crt
将 Server.xml
替换为部署文件中的 Server.xml
(步骤7)
5、开放端口
6、启动服务
systemctl start ovenmediaengine
systemctl enable ovenmediaengine.service (开机自启)
7、Server.xml修改位置
8、OBS studio 推流测试
– 欢迎点赞、关注、转发、收藏【我码玄黄】,gonghao同名
转载自:https://juejin.cn/post/7399663396358029322