史上最详细的OvSyunLive超低延时免插件web播放rtsp/rtmp和访问桌面投屏和主机摄像机教程
前言
最近公司在搞流媒体rtsp低延时web播放,桌面分享,和直取摄像头,我推荐了OvSyunLive进行搭建,使用了一段时间后,出现新的需求,需要将内网的摄像机进行公网访问,我查询了几乎所有的帖子和github 的问题回复,都没有给我一个准确的答案,经过不断尝试和摸索,我终于成功了,我希望将我的过程记录下来,让更多的中国开发者可以少走弯路。
一,下载并搭建OvSyunLive下载地址:
![OF~NGJAZQ0}AZ~`X]HG(H98](https://img2024.cnblogs.com/blog/1294270/202610/1294270-20261027133517801-30844917.png)
二,解压配置启动:
Windows系统,1.解压 2.配ovmeetmcu.ini上IP 3.运行 双击start.bat 4.停止:stop.bat
Linux-debian12系统, 1.解压 2.配ovmeetmcu.ini上IP 3.授权 chmod -R 777 ./ovsyunlive/* 4.运行 ./start.sh 5.停止:./stop.sh

Android要授权麦和摄像,还要打开桌面分享的授权和防锁屏和电源

三,web打开测试:

三,web十秒sdk接入
<video id="v" autoplay muted playsinline style="width:100%;background:#000"></video>
<script src="ovplayer.js"></script>
<script>
const player = new OvPlayer('#v', {
server: 'http://' + location.hostname + ':7703',
password: '', // 服务端设了 admin_password 才需要
muted: true, // 浏览器自动播放策略要求静音起播
});
player.playDesktop(); // 服务端那台机器的桌面
player.playCamera(); // 服务端那台机器的摄像头
// player.play('rtsp://192.168.1.64:554/Streaming/Channels/101'); // 如是播放rtsp/rtmp
// player.stop(); // 停止观看(通道保留)
</script>
采的是服务端所在机器的屏幕与摄像头,不是浏览器所在机器。要在网页里用访问者自己的摄像头,请用 navigator.mediaDevices.getUserMedia()。
<video> 必须带 muted + playsinline。
详见doc的文档和play目录下demo
演示地址:
三条最容易踩的坑
- 只放行 TCP 7703 → 信令成功、画面全黑。媒体走 UDP 51000–51999,必须整段放行。
- 直接调 REST 建采集通道只传
index→400 app, stream and device required。REST 要传device(先GET /api/capture/devices)。
- 同一设备同时只能被一路通道采集。被占用时通道建得出来但一直黑屏,先删占用通道。
实测环境
Windows 10/11 · 1920×1080 单屏 · 后端 dshow+gdigrab+wasapi;桌面采集通道实测输出 1280×720@20 / 1.6 Mbps(libx264 latency 档),浏览器端 state=playing、画面正常推进。

浙公网安备 33010602011771号