搭建在线视频流媒体服务
00 分钟
2024-11-5
2024-11-7
type
status
date
slug
summary
tags
category
icon
password
网址
📖
目前,视频无疑是内容传播的主流推荐,音视频的直播更是各大项目客户的需求重点,但是大部分的摄像监控厂家提供的云直播免费版本都有 3 路并发的要求,要想提升并发路数需要充值会员,客户很难接受啊。在这种背景之下,能够兼容各种 RTSP、RTMP、GB28181 的视频流媒体服务器软件是个刚需,本文选用了 SRS(Simple RTMP Server)与 Oryx 来应对

SRS / Oryx

简介

SRS(Simple RTMP Server)是一款开源的视频流媒体服务器软件,主要支持RTMP协议,也支持HLS、HDS等其他流媒体传输协议。
Oryx 是一个基于Go、Reactjs、SRS、FFmpeg、WebRTC等的轻量级、开源的视频云解决方案。

主要特点

  • 高性能:SRS设计上追求高并发性能,可以处理大量的并发连接。
  • 多功能性:除了基本的RTMP推拉流功能外,还支持转码、录制、转发、边缘节点等功能。
  • 易于使用:安装配置过程简单,文档齐全,适合快速上手。
  • 可扩展性强:支持插件化架构,可以根据需求定制功能。
  • 开源免费基于MIT许可发布,用户可以自由地修改和分发代码(博主选择的主要原因 😄)

支持的协议

  1. RTMP (Real Time Messaging Protocol):这是最常用的流媒体传输协议之一,特别适用于直播场景。RTMP协议可以实现实时音视频数据的传输,广泛应用于Flash播放器中。
  1. RTMPS:RTMP over SSL/TLS,用于加密RTMP数据流,提供更安全的数据传输。
  1. HTTP-FLV:通过HTTP协议传输FLV格式的视频流,适用于不支持RTMP协议的浏览器或移动设备。
  1. HLS (HTTP Live Streaming):Apple公司提出的一种基于HTTP的流媒体传输协议,支持按需和直播两种模式,适合iOS和大多数现代浏览器。
  1. DASH (Dynamic Adaptive Streaming over HTTP):一种自适应比特率流媒体技术,通过HTTP协议传输,能够根据网络状况动态调整视频质量。
  1. WebRTC (Web Real-Time Communication):虽然SRS本身不直接支持WebRTC,但可以通过插件或外部转码工具实现WebRTC的支持,提供低延迟的音视频通信。
  1. RTSP (Real Time Streaming Protocol):一种控制多媒体流的网络协议,常用于IP摄像头等设备的视频流传输。
  1. HDS (HTTP Dynamic Streaming):Adobe Systems推出的一种基于HTTP的流媒体技术,类似于HLS,主要用于Adobe Flash Player和Adobe AIR应用程序。
  1. SRT (Secure Reliable Transport):一种开放源代码的传输层协议,专为低延迟的实时视频传输设计,特别是在不可靠网络条件下表现良好。

安装

建议阅读 SRS 。在阅读完成后,我明白我想要的并不是一个简单的流媒体服务器,而是应该对外提供一个在线视频流媒体服务。Oryx(SRS Stack)是一个基于Go、Reactjs、SRS、FFmpeg、WebRTC等的轻量级、开源的视频云解决方案。下面介绍 Oryx 的安装过程。
比较Oryx和SRS时,两者都提供相似级别的媒体流功能。然而,Oryx为终端用户提供了更强大且功能丰富的体验, 无需编写任何代码。用户可以直接使用Oryx满足您的媒体服务需求。
比较
Oryx
SRS
说明
许可证
MIT
MIT
SRS是MIT,而Oryx是MIT。
直播流
Yes
Yes
两者都支持RTMP,HLS和HTTP-FLV协议。
WebRTC
Yes
Yes
两者都支持WebRTC。
Auto HTTPS
Yes
No
Oryx自动申请和更新HTTPS证书.
控制台
增强
HTTP API
Oryx提供了更强大的控制台。
身份验证
Yes
HTTP回调
Oryx具有内置身份验证,而SRS使用回调。
DVR
增强
基于文件
Oryx支持将DVR存储到文件和云存储。
转发
增强
基本
Oryx可以通过各种协议转发到多个平台。
虚拟直播
Yes
No
Oryx提供了先进的虚拟直播功能。
WordPress
Yes
No
Oryx提供了WordPress插件和操作指南。
转码
Yes
No
Oryx提供了直播转码的能力。
AI字幕
Yes
No
自动识别直播语音并转为字幕,叠加到视频
直播间
Yes
No
直播间的鉴权和业务功能
视频翻译
Yes
No
支持点播视频多语言翻译
官网推荐 Ubuntu 20 系统,我以 MacOS 作为测试。
推荐使用 Docker运行 Oryx
查看 http://localhost
首次登录调整文中文,需要设置密码
notion image
notion image
我已经安装了 FFmpeg,在推拉流中可以看到操作步骤,用它推流到 Oryx,然后我们再从网页查看
notion image
结果出现 no matches found: rtmp://localhost/live/livestream?secret=0e8e7261d118480195ea05ec48206add 首次尝试失败
 
后尝试
成功了,用 VLC 播放 flv 或者 m3u8
notion image
 
问题原来在 ? = 这些特殊字符,在 MacOS 中需要转义,茅塞顿开。
 
初步目标达成,接收 rtmp 推流转成 flv 或 m3u8 后续在具体项目中使用。
上一篇
OpenVPN 新增客户端
下一篇
CentOS 变更 SSH 端口

评论
Loading...