【webrtc求思路】想做个类似kurento一样的MCU或SFU流媒体服务器

csulizhang 2018-08-29 10:46:52
RT,想做个流媒体服务器,与webrtc客户端进行视音频交互,在服务端接收视音频流之后混合,再转发给目标用户,我只知道大概是实现服务端与客户端的sdp协商,然后通过rtcp相互传输视音频数据流,具体如何实现,请大家给点详细的实现流程以及服务端需要用到的技术或协议(不在乎开发语言,只要有实现步骤就好),谢谢了您嘞
...全文
838 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
csulizhang 2019-06-12
  • 打赏
  • 举报
回复
引用 6 楼 单宁执着丶 的回复:
目前发现docker有问题

docker 有什么问题?倒是docker swarm在大规模并发时会有问题
单宁执着丶 2019-06-12
  • 打赏
  • 举报
回复
引用 11 楼 csulizhang 的回复:
[quote=引用 10 楼 单宁执着丶 的回复:] docker run -d --name kmsdev -p 8888:8888 kurento/kurento-media-server-dev:latest 这就是我的启动方式
嗯,这样启动之后,不知道你的客户端是局域网还是外网,局域网的话ping一下看看,外网的话,还得把宿主机的8888端口映射出去,不能通过udp打洞的方式来获取服务器地址[/quote] 在局域网,而且网络都有ping通,call都可以,就是视频流没有返回,谢谢您,我在找找解决办法吧
csulizhang 2019-06-12
  • 打赏
  • 举报
回复
引用 10 楼 单宁执着丶 的回复:
docker run -d --name kmsdev -p 8888:8888 kurento/kurento-media-server-dev:latest
这就是我的启动方式

嗯,这样启动之后,不知道你的客户端是局域网还是外网,局域网的话ping一下看看,外网的话,还得把宿主机的8888端口映射出去,不能通过udp打洞的方式来获取服务器地址
单宁执着丶 2019-06-12
  • 打赏
  • 举报
回复
引用 9 楼 csulizhang 的回复:
[quote=引用 8 楼 单宁执着丶 的回复:] [quote=引用 7 楼 csulizhang 的回复:] [quote=引用 6 楼 单宁执着丶 的回复:] 目前发现docker有问题
docker 有什么问题?倒是docker swarm在大规模并发时会有问题[/quote] docker 启动kms, 视频流不能返回,目前我遇到是这种情况,还没解决[/quote] 嗯,你这个可能是docker内部网络的问题,你试试把docker的ip地址映射出来

docker run -it \
-p 22000:22000 \
-v /project:/data\
--restart always \
--name dockerName\
-d imageName
[/quote] docker run -d --name kmsdev -p 8888:8888 kurento/kurento-media-server-dev:latest 这就是我的启动方式
csulizhang 2019-06-12
  • 打赏
  • 举报
回复
引用 8 楼 单宁执着丶 的回复:
[quote=引用 7 楼 csulizhang 的回复:]
[quote=引用 6 楼 单宁执着丶 的回复:]
目前发现docker有问题

docker 有什么问题?倒是docker swarm在大规模并发时会有问题[/quote]

docker 启动kms, 视频流不能返回,目前我遇到是这种情况,还没解决[/quote]

嗯,你这个可能是docker内部网络的问题,你试试把docker的ip地址映射出来

docker run -it \
-p 22000:22000 \
-v /project:/data\
--restart always \
--name dockerName\
-d imageName
单宁执着丶 2019-06-12
  • 打赏
  • 举报
回复
引用 7 楼 csulizhang 的回复:
[quote=引用 6 楼 单宁执着丶 的回复:] 目前发现docker有问题
docker 有什么问题?倒是docker swarm在大规模并发时会有问题[/quote] docker 启动kms, 视频流不能返回,目前我遇到是这种情况,还没解决
单宁执着丶 2019-06-11
  • 打赏
  • 举报
回复
目前发现docker有问题
wang3140 2018-10-25
  • 打赏
  • 举报
回复
我在reechat网站看到有这块的开源代码实现,服务器是使用mcu模型的,并且提供了预编译好的服务器程序,自己装一个蛮简单
http://www.reechat.org
csulizhang 2018-09-03
  • 打赏
  • 举报
回复
引用 1 楼 rightorwrong 的回复:
如果采用标准的一套就是,webrtc客户端和流媒体服务器采用rtsp,目标用户与流媒体服务器也是用rtsp。采用rtp/rtcp传音视频。 也可以使用自己的协议。 服务端就是接受目标客户请求后,若是流的首次请求,需要再去请求webrtc客户端;若是该流已请求,直接由服务器返回,rtsp成功后,直接向目标客户发数据流。服务端rtsp可参考live555,流传输这一块可参考ffmpeg相关代码 如果是监控上使用,可以采用sip
你好,谢谢你的回复,这么多天总算有回应了,表示感谢 另外,业务上的逻辑没关系,我主要是想了解如何建立客户端与服务器之间的通道并进行转发,比如: 1、如何构建各自的SDP内容,客户端可以用createoffer方法实现,但是服务端呢?在不引入webrtc的前提下如何创建SDP 2、如何在客户端和服务器之间建立RTSP通道,webrtc是封装好的,服务器端在不引入webrtc的前提下如何与webrtc客户端对接通道 3、传送转发的媒体流,可能在创建通道的时候加载媒体流就没什么问题了,这一点我也不是很确定 再次对您的回复表示感觉
rightorwrong 2018-09-03
  • 打赏
  • 举报
回复
如果采用标准的一套就是,webrtc客户端和流媒体服务器采用rtsp,目标用户与流媒体服务器也是用rtsp。采用rtp/rtcp传音视频。
也可以使用自己的协议。

服务端就是接受目标客户请求后,若是流的首次请求,需要再去请求webrtc客户端;若是该流已请求,直接由服务器返回,rtsp成功后,直接向目标客户发数据流。服务端rtsp可参考live555,流传输这一块可参考ffmpeg相关代码
如果是监控上使用,可以采用sip
rightorwrong 2018-09-03
  • 打赏
  • 举报
回复
sdp有自己的格式。你按照格式写入正确的数据就可以。服务端你可以保存客户端传给你的sdp,进行下ip、端口的修改然后在转发给目标用户。
参考live555的rtsp部分

2,543

社区成员

发帖
与我相关
我的任务
社区描述
专题开发/技术/项目 多媒体/流媒体开发
社区管理员
  • 多媒体/流媒体开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧