简介
最近在研究推流服务器,部署过 SRS、ZLMediaKit 等服务。从两者的使用来看,SRS 相对表现优异,支持众多媒体格式。然而,Go2RTC 作为新进开源服务,在跨平台部署、资源占用、配置简便性方面表现突出,堪称直播推流的神器。
功能特性
在 FFmpeg 的加持下,几乎任意媒体格式都可以作为源被推到 Go2RTC,然后通过浏览器形式输出。
- 适用于所有操作系统 (Windows, macOS, Linux, ARM),零依赖和零配置小应用程序
- 支持许多协议的零延迟(尽可能低的流延迟)
- 流可以来自 RTSP, RTMP, DVRIP, HTTP (FLV/MJPEG/JPEG/TS),USB 摄像头和其他来源
- 流转换到 RTSP, WebRTC, MSE/MP4, HLS 或 MJPEG
- 世界上第一个支持 HomeKit 相机的流媒体的项目
- 世界上第一个在浏览器中支持 H265 WebRTC 的项目 (仅限 Safari)
- 通过 FFmpeg 支持更多的编解码器
- 播放音频文件和直播流
- 多源双向编解码器协商
- 从不同的来源到单一的流(混合轨道)
- 自动匹配客户端支持的编解码器
- 一些相机的双向音频
- 通过 Ngrok 支持私人网络流媒体
- 可以集成到任何智能家居平台或作为独立的应用程序使用
WebRTC 支持
WebRTC (Web Real-Time Communications) 是一项实时通讯技术,允许网络应用或者站点,在不借助中间媒介的情况下,建立浏览器之间点对点(Peer-to-Peer)的连接,实现视频流和(或)音频流或者其他任意数据的传输。WebRTC 使用了很复杂的信令,因此基于 WebRTC 可能需要开发信令服务。
Go2RTC 已经增加了 WebRTC 的支持,减轻了很多编程压力,并且提供了优秀的延迟体验。在不同的网络带宽下模拟 websocket 方式的播放流畅度,其效果都是优于其他方案,因此如果你在选择类似方案,可以优先考虑该服务。
安装与运行
下载安装后执行以下命令:
go2rtc
打开浏览器查看 http://localhost:1984/。
配置文件
配置文件保存在 go2rtc.yaml。
- api 默认在 1984 端口 (TCP)
- rtsp 默认使用 8554 端口 (TCP)
- webrtc 启动 8555 (TCP/UDP) 端口
- ffmpeg 使用默认配置
一个简单的例子:
streams: hikvision1:
- rtsp://admin:[email protected]:554/Streaming/Channels/101
- isapi://admin:[email protected]:80/


