Janus Media Server视频房间搭建问题求助(Docker部署场景)
本地搭建Janus Media Server 测试视频房间方案
一、本地直接部署Janus(推荐,规避远程端口配置麻烦)
1. 拉取官方Janus镜像并启动
用官方镜像直接部署,自带完整依赖和默认配置,测试更省心:
docker run -d --name janus -p 8088:8088 -p 8188:8188 -p 8000:8000/udp -p 8001:8001/udp -p 8002:8002/udp -p 8003:8003/udp meetecho/janus-gateway:latest
端口说明:8088是HTTP API端口,8188是WebSocket端口,8000-8003是媒体传输UDP端口,都是Janus默认必需的。
2. 配置本地测试页面的服务器地址
打开你克隆的janus-gateway仓库中html目录下的settings.js,修改服务器地址为本地:
// HTTP方式 var server = "http://localhost:8088/janus"; // 或WebSocket方式 var server = "ws://localhost:8188/janus";
3. 用静态服务托管测试页面
直接打开本地HTML文件会触发跨域问题,必须用HTTP服务托管:
- 用Python3快速启动静态服务:
cd janus-gateway/html python -m http.server 8000 - 浏览器访问
http://localhost:8000/videoroom.html,点击「启动视频房间」即可测试。
二、如果必须使用远程服务器的Janus
1. 暴露远程容器的必要端口
远程服务器上先停止旧容器,重新启动时添加端口映射:
docker stop 你的容器名 docker rm 你的容器名 docker run -d --name janus -p 8088:8088 -p 8188:8188 -p 8000:8000/udp -p 8001:8001/udp -p 8002:8002/udp -p 8003:8003/udp canyan/janus-gateway:latest
2. 配置远程Janus允许跨域
进入远程容器修改配置文件:
docker exec -it janus bash vi /opt/janus/etc/janus/janus.cfg
找到[general]区块,添加或修改:
cors_origins = *
注:这是测试用的宽松配置,生产环境需指定具体域名。
修改后重启容器:
docker restart janus
3. 调整本地settings.js的服务器地址
把地址换成远程服务器的公网IP+端口:
var server = "http://远程服务器公网IP:8088/janus";
同样用本地静态服务托管测试页面,即可连接远程Janus测试。
关键注意事项
- 禁止直接用
file://协议打开HTML文件,必须通过HTTP/HTTPS服务访问,否则会触发跨域或协议错误 - 远程服务器需在防火墙/安全组开放8088、8188(TCP)和8000-8003(UDP)端口,否则本地无法连接
- Canyan镜像的配置文件路径可能为
/etc/janus或/opt/janus/etc/janus,若路径不对可进入容器内确认
内容的提问来源于stack exchange,提问作者anas shah
相关产品推荐
相关产品推荐

