news 2026/9/12 7:20:36

3 步在浏览器里直接播 RTSP 摄像头:go2rtc 新手指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
3 步在浏览器里直接播 RTSP 摄像头:go2rtc 新手指南

3 步在浏览器里直接播 RTSP 摄像头:go2rtc 新手指南

【免费下载链接】go2rtcUltimate camera streaming application项目地址: https://gitcode.com/GitHub_Trending/go/go2rtc

想用手机看一眼门口摄像头,得先装厂商 App、等广告、再等加载,最后还卡。go2rtc 是一个用 Go 写的轻量摄像头流应用,把摄像头的 RTSP 流转成低延迟 WebRTC,直接在浏览器里播,不用插件也不用等。这篇带你 3 步从装到出画面。

30 秒装好:零依赖单文件程序,跑起来就行

go2rtc 是一个零依赖的单文件可执行程序,不用装 FFmpeg、不用任何运行环境,下载对应系统的版本解压就能跑。Windows 直接解压双击;Linux 和 Mac 先给执行权限:

chmod +x go2rtc_linux_amd64 ./go2rtc_linux_amd64

习惯容器就一行:docker run -p 1984:1984 -p 8554:8554 -p 8555:8555 alexxit/go2rtc;Home Assistant 用户也能在 add-on 市场直接装。启动后记住三个默认端口:

端口跑什么
1984Web 管理界面和 HTTP API
8554RTSP 服务器,给 Home Assistant、Frigate 等程序取流
8555WebRTC 端口,浏览器播放和双向语音走这里

写一行配置,1 分钟出画面

装好之后浏览器打开http://localhost:1984/,内置配置编辑器带语法高亮和错误检查,不碰文件也能管配置。最小可用的配置是一个两行的go2rtc.yaml(放程序所在目录,启动自动读取):

streams: hall-camera: rtsp://admin:password@192.168.1.123/cam/stream1

回到网页,在左侧点hall-camera就能播。WebRTC 输出时 go2rtc 会自动匹配你浏览器支持的编码组合,不用手动挑格式。

三个真实用法

1. 浏览器放不了 H265?加一个转码源——不少摄像头默认输出 H265,而大多数浏览器播不了。给同一个流加一个 FFmpeg 源转成 H264:

streams: cam1: - rtsp://admin:password@192.168.1.123/stream1 - ffmpeg:rtsp://admin:password@192.168.1.123/stream1#video=h264

go2rtc 会按源和客户端协商,哪个源在当前浏览器里播得好就用哪个,手机和电脑各取所需。

2. 门铃双向语音——摄像头支持双向音频时,把协议前缀换成厂商私有协议即可。以海康为例:

streams: doorbell: isapi://admin:password@192.168.1.123:80/

在浏览器里打开这个流,就能直接和门口的人对话;注意浏览器要用 HTTPS 才能给你麦克风权限。

3. 把流推到外面——想在外面用手机看,或者推给直播平台,加一行 publish 直接走 RTMP 推出去:

streams: live: - rtsp://admin:password@192.168.1.123/stream1 - publish: rtmp://a.rtmp.youtube.com/live2/YOUR_KEY

而"让别的程序来取流"的场景,把它 8554 端口当普通 RTSP 源指过去就行。

踩坑速查:4 个常见现象怎么解

现象可能原因处理办法
连不上、没画面地址或账号错、防火墙拦截先用本地播放器验证地址能播,再改配置
视频黑屏浏览器不支持摄像头编码(H265 常见)流里加ffmpeg:...#video=h264转码
听不到声、说不了话摄像头 PCMA/PCMU 编码与浏览器不匹配;麦克风需 HTTPS加第二个源#audio=opus;页面改走 HTTPS
多看一路 CPU 飙高软件转码吃 CPU#hardware#hardware=vaapi走 GPU

进阶:两个值得知道的开关

硬件加速转码:默认关闭。用 FFmpeg 做视频转码时加一个参数就能把活交给 GPU,引擎可选 vaapi、cuda、dxva2、videotoolbox,各平台支持情况见 internal/ffmpeg/hardware/README.md:

streams: cam_hw: ffmpeg:rtsp://admin:password@192.168.1.123/stream1#video=h264#hardware=vaapi

编码过滤:不想转码、只想挑编码时,在 RTSP 地址上加查询参数,比如rtsp://host:8554/cam1?video=h264&audio=aac,只从源里选匹配的轨。

FFmpeg 源完整参数见 internal/ffmpeg/README.md,WebRTC 协商细节见 internal/webrtc/README.md。

go2rtc 现在跑起来了,接下来可以试试:

  • 打开 Net 页面,看看手机看流时连接统计长什么样
  • 用 publish 推一路流出去,在外网用手机收
  • 把一台摄像头换成 tapo:// 或 xiaomi:// 协议,体验双向语音

【免费下载链接】go2rtcUltimate camera streaming application项目地址: https://gitcode.com/GitHub_Trending/go/go2rtc

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/12 7:18:40

Vibe Coding:LLM时代编程范式变革与实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/12 7:18:09

AI动态元素定位技术在自动化测试中的应用实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/12 7:16:10

车载Android USB开发实战:Host/串口/CAN/HID系统级集成

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/12 7:14:17

.NET开发利器:ESBasic类库核心功能与应用实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华