webrtc系列-kurento相关的一些尝试

  • 公司最近要做个ICU探视系统,于是在网上找了一个开源的webrtc实现kurento
  • kurento github地址
    https://github.com/Kurento/kurento-media-server

下载kurento docker镜像,安装并启动

  • 安装docker
    apt install docker
  • 搜索kurento docker镜像
    docker search kurento
  • 安装kurento-media-server
    docker pull kurento/kurento-media-server
  • 启动kurento-media-server
    docker run -d --name kms -p 8888:8888 kurento/kurento-media-server

下载kurento-java客户端

  • github地址
    https://github.com/Kurento/kurento-tutorial-java.git
  • 进入多人呼叫目录,启动项目,查看效果
    cd kurento-groupCall
    mvn -U clean spring-boot:run -Dkms.url=ws://192.168.3.198:8888/kurento
  • 浏览器查看效果
    https://localhost:8443

  • 这个简单的例子不足以支撑ICU项目,又另外找了一个项目openvidu
    https://github.com/OpenVidu/openvidu.git

项目下载下来,编译 mvn clean package,找到 openvidu-server-2.11.0.jar这个包.并修改application.properties文件,如下

server.address=0.0.0.0
server.ssl.enabled=true
server.port=4443
server.ssl.key-store=classpath:openvidu-selfsigned.jks
server.ssl.key-store-password=openvidu
server.ssl.key-store-type=JKS
server.ssl.key-alias=openvidu-selfsigned

logging.level.root=info
spring.main.allow-bean-definition-overriding=true

# kurento-media-server服务
kms.uris=["ws://192.168.3.198:8888/kurento"]

openvidu.publicurl=local
openvidu.secret=MY_SECRET

openvidu.cdr=false
openvidu.cdr.path=log

openvidu.webhook=false
openvidu.webhook.endpoint=
openvidu.webhook.headers=[]
openvidu.webhook.events=["sessionCreated","sessionDestroyed","participantJoined","participantLeft","webrtcConnectionCreated","webrtcConnectionDestroyed","recordingStatusChanged","filterEventDispatched","mediaNodeStatusChanged"]

openvidu.recording=true
openvidu.recording.version=2.9.0
openvidu.recording.path=D:\work\test\nange\webrtc\openvidu\openvidu-server\data
openvidu.recording.public-access=true
openvidu.recording.notification=publisher_moderator
openvidu.recording.custom-layout=D:\work\test\nange\webrtc\openvidu\openvidu-server\data
openvidu.recording.autostop-timeout=120
openvidu.recording.composed-url=

openvidu.streams.video.max-recv-bandwidth=1000
openvidu.streams.video.min-recv-bandwidth=300
openvidu.streams.video.max-send-bandwidth=1000
openvidu.streams.video.min-send-bandwidth=300

coturn.redis.ip=127.0.0.1
coturn.redis.dbname=0
coturn.redis.password=turn
coturn.redis.connect-timeout=30
  • mvn启动项目
nohup mvn -U clean spring-boot:run -Dkms.url=ws://remoteIp:8888/kurento -Dlogging.level.root=info -Dopenvidu.recording=true -Dopenvidu.recording.path=/opt/webrtc/kurento/test/data -Dopenvidu.recording.public-access=true -Dopenvidu.recording.custom-layout=/opt/webrtc/kurento/test/data >/opt/webrtc/kurento/test/logs/log 2>&1 &
  • 增加coturn服务
-DKMS_STUN_IP=RemoteIp -DKMS_STUN_PORT=3478 -DKMS_TURN_URL=root:root@RemoteIp:3478
  • jar包启动项目
    java -jar openvidu-server-2.11.0.jar

一些API的使用

  • 获取 openvidu-server 的cookie
    访问 https://192.168.3.198:4443,输入OPENVIDUAPP MY_SECRET,获取登录Cookie
  • 设置录制模式为 ALWAYS
    https://192.168.3.198:4443/api/sessions?recordingMode=ALWAYS&Cookie=E8C8C48D31DE6E61F7B2C54385995907
    其中:Cookie 为 openvidu-server 的Cookie
  • 开始录制
https://192.168.3.198:4443/api/recordings/start
Body参数:{"session": "SessionB", "name": "11", "outputMode": "COMPOSED", "hasAudio": true, "hasVideo": true, "resolution": "320x240", "recordingLayout": "BEST_FIT"}
参数说明

SessionB:房间号
name:录制视频文件的名称

  • 停止录制
https://192.168.3.198:4443/api/recordings/stop/SessionB

其中 SessionB 为

未完待续

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

GeekPlusA

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值