分享
ZLM4J集成WebRTC
输入“/”快速插入内容
📱
ZLM4J集成WebRTC
用户8510
用户8510
2025年9月18日修改
1.
配置WebRTC
由于webrtc协议需要告知播放器服务器所在ip,如果该ip对播放器不可见,会导致webrtc无法联通。请修改配置文件中
rtc.externIP
为播放器可见ip,如果不设置该配置项,zlmediakit将获取网卡ip(一般是内网ip),那么将无法跨域nat使用webrtc。
代码块
TOML
[rtc]
#rtc播放推流、播放超时时间
timeoutSec=15
#本机对rtc客户端的可见ip,作为服务器时一般为公网ip,置空时,会自动获取网卡
ip
externIP=
#rtc udp服务器监听端口号,所有rtc客户端将通过该端口传输stun/dtls/srtp/srtcp数据,#该端口是多线程的,同时支持客户端网络切换导致的连接迁移#需要注意的是,如果服务器在nat内,需要做端口映射时,必须确保外网映射端口跟该端口一致
port=8000
#设置remb比特率,非0时关闭twcc并开启remb。该设置在rtc推流时有效,可以控制推流画质
rembBitRate=1000000
2.
启用rtc服务
代码块
Java
//创建RTC服务器 0:失败,非0:端口号
short rtc_server_port = ZLM_API.mk_rtc_server_start((short) 8000);
3.
开发
sdp+icecandidate
交换协议
4.
使用OBS测试WHIP
5.
使用JMediaServer测试ZLM WebRTC
拉取项目
:
https://gitee.com/daofuli/j_media_server
拉流测试
: 启动j-media-server项目,打开测试界面地址:
http://127.0.0.1:8899/
点击生成测试流,再点击进入 webrtc播放测试页面
http://127.0.0.1:8899/webrtc.html
点击play播放即可看到画面
推流测试
:启动j-media-server项目,进入 webrtc测试页面
http://127.0.0.1:8899/webrtc.html
,修改method(play or push or echo): 为 push,点击推流选择相关窗口,再打开个新的浏览器窗口,进入 webrtc播放测试页面
http://127.0.0.1:8899/webrtc.html
点击开始播放即可看到画面
6.
开发参考JMediaServer项目
https://gitee.com/daofuli/j_media_server/blob/master/src/main/java/com/ldf/media/api/controller/WebRTCController.java#