
go2rtc把 RTSP 摄像头变成浏览器亚秒级视频流【免费下载链接】go2rtcUltimate camera streaming application项目地址: https://gitcode.com/GitHub_Trending/go/go2rtc浏览器播不了摄像头的 RTSP 流多数人第一反应是打开 VLC。可 VLC 装不到手机上也放不进客厅的大屏。go2rtc 是一个视频流转发工具把 RTSP 等来源的摄像头画面转成 WebRTC、RTSP、HLS 等格式浏览器直接打开就是亚秒级延迟的实时画面。下面用一个真实场景带你 5 分钟跑通第一路视频流再完成一组多摄像头接入。go2rtc 的输入、输出协议全景从 RTSP 输入到 WebRTC、HomeKit、FFmpeg 等多种出口5 分钟跑通第一路视频流路径只有三步拿到程序、启动、加一路流。第一步拿到可执行程序。官方二进制、Docker、源码编译三种方式按需选一种就行官方二进制适合大多数人按系统下载Linux/macOS 记得chmod xDocker适合已经在用容器的人源码编译适合想改代码的开发者两种常用启动方式如下# 方式一Docker 一键启动端口 1984 是 WebUI docker run -p 1984:1984 -p 8554:8554 -p 8555:8555 -it alexxit/go2rtc # 方式二源码编译 git clone https://gitcode.com/GitHub_Trending/go/go2rtc cd go2rtc go build -o go2rtc . ./go2rtc预期结果终端持续滚动日志说明服务已启动。第二步打开 WebUI。浏览器访问http://localhost:1984/。预期结果看到管理界面左侧是流列表配置编辑器可直接改写 YAML。默认端口分工1984 是 WebUI 和 API8554 是 RTSP 服务端8555 是 WebRTC完整默认值见配置模块文档。第三步加第一路摄像头。最省事的方式是在 go2rtc.yaml 里写一行streams: cam1: rtsp://admin:password192.168.1.123/cam/main # ← 改成你的摄像头也可以点 WebUI 里的 Add粘贴 RTSP 地址工具会自动探测流信息。改完配置重启 go2rtc。预期结果列表里出现 cam1点播放按钮浏览器里出画面默认优先走 WebRTC延迟最低。它和简单转发的三个区别多数转发工具是一进一出的管道。go2rtc 有三处设计是管道型工具很少做的。一路流挂多个源编解码自动协商。摄像头视频是 H264音频却只有 AAC而浏览器音频只认 Opus。简单转发在这里会有画无声。go2rtc 允许一路流挂多个源一路 RTSP 原始流一路 FFmpeg 转码streams: cam1: - rtsp://admin:password192.168.1.123/cam/main # 视频走原始流 - ffmpeg:rtsp://admin:password192.168.1.123/cam/main#audioopus # 音频走转码go2rtc 探测每个客户端支持的编解码器从所有源里挑最优组合而不是简单换容器。转码参数细节在FFmpeg 转码模块里。双向音频。不只是看浏览器麦克风的声音能推到摄像头扬声器。支持 ONVIF Profile T、ISAPI、WebRTC 等协议门铃和对讲场景靠这个才完整。内置轻量转封装。项目明确不做重转码那是 FFmpeg 的活。但几个轻量转换是自动开启的PCMA/PCMU/PCM 会被打包成 FLAC让 MSE/MP4/HLS 都能播WebRTC 音频会自动重采样到标准 8000Hz。你不需要配置只需知道音频突然能播了是它干的。一组多品牌摄像头接入走查现在接入两台不同协议的摄像头走完整流程写配置、看画面、查状态。完整配置如下改完重启streams: hall: rtsp://admin:123456192.168.1.123/cam/main # ← 海康/大华风格地址 door: onvif://192.168.1.103:80 # ← ONVIF 设备地址预期结果WebUI 列表出现两路流各自带播放按钮。WebUI 内置配置编辑器改 YAML 时有语法高亮和校验提示想看画面打开内置播放器页面http://localhost:1984/stream.html?srchallsrcdoormodewebrtc,modemse它支持同屏挂多路流、多技术对比播放方便你直观感受 WebRTC 和 MSE 的延迟差。参数用法见内置 Web 播放器文档。预期结果浏览器并排出两路画面右上角能切播放技术。最后看状态。切到 WebUI 的 Net 页签每条连接的 IP、协议、编解码器、包数和字节数都在这里也能通过HTTP API以 json 或 dot 格式导出画成拓扑图。Net 页签实时展示所有活跃连接的状态与拓扑高频踩坑 Top 3 及解法外网连不上 WebRTC。媒体流走 8555 端口TCP 和 UDP路由器两个方向都要放行。浏览器麦克风只在 HTTPS 站点可用没配 HTTPS 就开不了双向音频。有画无音。先看 Net 页签里协商到的音频编解码器。摄像头只出 PCMA/PCMU 时内置 FLAC 转封装和 8000Hz 重采样会自动兜底还不行就给它加一路ffmpeg:...#audioopus源。局域网里谁都能看。默认三个端口都对局域网开放。不放心就收紧监听地址api: listen: 127.0.0.1:1984 # ← WebUI 仅本机可访问 rtsp: listen: 127.0.0.1:8554 webrtc: listen: :8555 # 媒体端口仍保持对外预期结果局域网其他机器直接访问 1984 和 8554 会失败WebRTC 观看不受影响。接下来去哪先按 5 分钟路径跑通再看一眼 Net 页签的连接地图它比任何文档都直观。想深入某个协议直接翻internal/下对应目录的 README每个模块都写了自己的用法和坑。【免费下载链接】go2rtcUltimate camera streaming application项目地址: https://gitcode.com/GitHub_Trending/go/go2rtc创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考