Go2RTC:一站式流媒体解决方案
Go2RTC是一个功能强大而灵活的流媒体应用程序,支持多种常见的流媒体协议,可以轻松实现摄像头直播、音视频转码、双向音频等功能。它是一个全面的流媒体服务器解决方案,适用于各种场景下的音视频流处理需求。
主要特性
Go2RTC具有以下几个突出的特点:
-
零依赖、零配置:Go2RTC是一个小巧的可执行文件,无需复杂的安装和配置过程,支持Windows、macOS、Linux等多种操作系统。
-
低延迟:对许多支持的协议实现了零延迟的流媒体传输,提供最低的流媒体延迟。
-
多协议支持:支持从RTSP、RTMP、HTTP等多种来源获取流媒体,也可以将流媒体推送到RTSP、WebRTC、MSE/MP4、HomeKit等多种目标。
-
FFmpeg集成:可以利用FFmpeg强大的功能对不支持的编解码器进行实时转码。
-
双向音频:支持部分摄像头的双向音频功能,可以实现语音对讲。
-
多源编解码协商:可以混合来自不同源的音视频轨道,自动匹配客户端支持的编解码器。
-
Ngrok集成:可以通过Ngrok实现从外网访问私有网络中的流媒体。
-
可扩展性:可以集成到任何智能家居平台,也可以作为独立应用程序使用。
快速开始
要开始使用Go2RTC,可以按照以下步骤操作:
-
下载适合你操作系统的二进制文件,或者使用Docker镜像,或者安装Home Assistant插件。
-
打开Web界面:
http://localhost:1984/
-
可选:在配置文件中添加你的流媒体源。
-
可选:设置WebRTC的外部访问。
对于开发者来说,还可以:
- 编写自己的Web界面
- 将Web API集成到你的智能家居平台
配置选项
Go2RTC提供了丰富的配置选项,主要包括:
- streams:配置流媒体源
- api:HTTP API服务器
- rtsp:RTSP服务器
- webrtc:WebRTC服务器
- mp4:MSE、MP4流和MP4快照服务器
- hls:HLS流服务器
- mjpeg:MJPEG服务器
- ffmpeg:FFmpeg集成
- ngrok:ngrok集成
- hass:Home Assistant集成
- log:日志配置
流媒体源
Go2RTC支持多种类型的流媒体源,包括:
- RTSP:支持RTSP和RTSPS摄像头,支持双向音频
- RTMP:支持RTMP流
- HTTP:支持HTTP-FLV、MPEG-TS、JPEG、MJPEG流
- ONVIF:使用ONVIF协议获取摄像头RTSP链接和快照链接
- FFmpeg:通过FFmpeg获取任何流、文件或设备
- FFmpeg设备:获取USB摄像头或网络摄像头的视频
- Exec:运行外部应用程序并获取数据
- Echo:使用bash或python脚本获取动态链接
- HomeKit:支持HomeKit摄像头
- Bubble:支持ESeeCloud/dvr163 NVR
- DVRIP:支持DVR-IP NVR
- Tapo:支持TP-Link Tapo摄像头,支持双向音频
- 等等
双向音频
Go2RTC支持以下源的双向音频:
- 支持ONVIF Profile T的RTSP摄像头
- DVRIP摄像头
- TP-Link Tapo摄像头
- Hikvision ISAPI摄像头
- 带摄像头的Roborock扫地机器人
- 服务器上的Exec音频
- 任何浏览器作为IP摄像头
双向音频可以在浏览器中通过WebRTC技术使用。Go2RTC还支持在这些摄像头上播放音频文件和实时流。
RTSP源
对于RTSP源,Go2RTC提供了一些建议:
- Amcrest门铃用户可能需要禁用双向音频
- Dahua门铃用户可能需要更改回传音频编解码器
- Reolink用户最好不要使用RTSP协议
- Ubiquiti UniFi用户可能需要禁用HTTPS验证
- TP-Link Tapo用户可以跳过登录和密码
- 如果摄像头有两个RTSP链接,可以同时添加两个作为源
- 如果流有问题,可以尝试使用FFmpeg源
- 如果流非常有问题,可以尝试使用FFmpeg源进行转码
RTSP源还支持一些附加选项,如自定义超时、忽略音频或视频、禁用双向音频API等。
FFmpeg源
FFmpeg源可以获取任何流、文件或设备,并将其推送到Go2RTC。当有人开始观看流时,应用程序会自动以适当的参数启动FFmpeg。
FFmpeg源支持多种输入格式,如文件、HLS、MJPEG等。它还支持视频旋转、调整大小、添加时间戳等功能。用户可以自定义FFmpeg参数和模板来满足特定需求。
执行源
执行源可以运行任何外部应用程序并从中获取数据。它支持管道和RTSP两种传输方式。这个源可以与FFmpeg、FFplay、GStreamer等工具配合使用,也可以用于Raspberry Pi摄像头或任何自定义软件。
HomeKit源
Go2RTC支持HomeKit摄像头,无需Apple设备即可使用。用户可以在HomeKit页面上配对设备。HomeKit音频使用非标准的AAC-ELD编解码器,需要进行转码才能与MSE、WebRTC等一起使用。
安全性
Go2RTC提供了一些安全选项:
- 可以为API和RTSP服务器设置基本身份验证
- 可以为某些流设置单独的密码
- 可以限制允许访问的IP地址
编解码器协商
Go2RTC支持多源2路编解码器协商:
- 可以混合来自不同源的轨道到单个流
- 自动匹配客户端支持的编解码器
- 支持某些摄像头的双向音频
总结
Go2RTC是一个功能强大而灵活的流媒体解决方案,支持多种协议和功能。它可以轻松集成到智能家居平台中,也可以作为独立的流媒体服务器使用。无论是家庭安防还是直播应用,Go2RTC都能满足各种流媒体需求。
Go2RTC的架构设计使其能够灵活地处理各种音视频流,实现低延迟的实时流媒体传输。无论你是开发者还是普通用户,Go2RTC都值得一试。它开源免费,社区活跃,是一个非常有前景的流媒体项目。