基于webrtc的一对多音视频通讯
linux-dash
A beautiful web dashboard for Linux
项目地址:https://gitcode.com/gh_mirrors/li/linux-dash
免费下载资源
·
基于webrtc的一对多音视频通讯
本次实验使用windows平台,其他平台如html5、android、ios、linux、mac等思路大同小异,上一篇文章已经提及,在此不再赘述。
- 在此唯一对初学者的劝告是:多看实例,尤其是官方的实例:https://github.com/webrtc/samples
- webrtc更倾向于html5中调用peerconnect,别说你看不懂html和javascript,那个可比c++简单多了,呵呵!
- 本实例思路来源于:https://webrtc.github.io/samples/src/content/peerconnection/multiple/,代码处处:https://github.com/webrtc/samples/tree/master/src/content/peerconnection/multiple
一对多首先这个多怎么来的?先看下流程图
- 可以看得出来PeerConnectionFactory的重要性,` Factory是工厂,工厂可以生产很多很多的PeerConnection
- 摄像头、麦克风这些设备只能是进程独占方式的,所有只有一个,然后多个PeerConnection共享使用LocalMediaStream
有了上面这些东西就给我们的一对多打下了基础。
一对多这个对是怎么实现的呢?还是看看图吧
- 一定要注意红色的箭头,这个代表你刚才创建的PeerConnecton,而且是有方向性的。
上一篇已经实现了一对一的音视频,在此只需要多次实现即可。
附上效果图
**注意:**长得丑没法见人。
还是谈谈本次实例的意义吧,这个可是实际应用中的重点
- 一对多的最简单应用就是QQ的音视频,想象一下你可以使用QQ与多位好友同时进行音视频通话。
- 可以作为转发服务器。一个网友做那种视频app的(一个姑娘在上面唱歌,下面一群男淫献花鼓掌等等),如果要求实时性,那么就需要转发,原理就是上图所示的那种;不过webrtc的PeerConnectionFactory每创建一个peerconnection都需要消耗5m的内存,如果连接数过多cpu就会占用很多,可能是我的使用有问题,下一步会考虑优化,毕竟1:1000甚至更多人的实时传输消耗很大的内存、cpu和带宽,尤其是带宽。
- 如果是p2p的话,不要求实时性,那就很有吸引力啦,每个用户作为接受者的同时又可以作为发送者,节省了资源的消耗和成本,无非就是最底层的人会有延时。
展望:
- 要做的还有很多,接下拉我会先实现音视频的转发,这样加上前两篇文章就可以实现p2p模式的流媒体播放咯,千人视频不是梦!!哇咔咔
demo下载地址
- 链接: https://pan.baidu.com/s/1dTqJd9_VuXlHYzmTIuV85A 提取码: 28vn
GitHub 加速计划 / li / linux-dash
10.39 K
1.2 K
下载
A beautiful web dashboard for Linux
最近提交(Master分支:2 个月前 )
186a802e
added ecosystem file for PM2 4 年前
5def40a3
Add host customization support for the NodeJS version 4 年前
更多推荐
已为社区贡献3条内容
所有评论(0)