zoukankan      html  css  js  c++  java
  • Android IOS WebRTC 音视频开发总结(三一)-- 自定义传输实现一对多

    本文主要介绍基于Webrtc的多人视频会议的简单实现,文章来自博客园RTC.Blacker,支持原创,转载请说明出处。

     

    前面提到基于开源框架的视频会议都存在诸多问题,所以我们通过重写WEBRTC传输模块来实现一个简单的视频会议,效果如下图:

    说明:

    1、画面1、2、3都是其他手机传过来的图像,局域网内有点点卡顿,同时软解3路数据你懂的。

    2、声音比较清晰,服务端没有做混音处理。

     

    实现原理:

    1、服务端是小伙伴用C++配合实现的,主要作用就是信令控制与转发,所以原理没有太多好讲的。

    2、因为有在WEBRTC里面注册自己的传输模块,所以在这个基础上实现多人就很容易了,主要就是让服务端转发的时候知道往哪里转发。

    3、WEBRTC里面有channel机制,每个会话对应一个channel,如果要实现多个会话,就注册多个channel,关键代码如下:

    下面是收到RTP包后通过channel找到对应的transport进行处理

    总结:

    1、通过上面这个demo可以做很多扩展,比如视频直播、在线教学、安防监控。

    2、很多开源框架都是基于这种架构模式,如Licode,jitsi。

    3、这种模式以后结合VP9,H265和SVC会有很好的发展空间,不过需要时间,所以我们会继续关注。

     

    思考:

    1、这种服务端是我之前说的哪种架构模式?

    2、这种模式下怎么处理NACK和RTCP?

     

    欢迎继续关注我的博客,欢迎发邮件交流或回帖探讨~

  • 相关阅读:
    linux /proc/pid进程信息说明
    fdopen()和fileno()函数
    什么是Intent
    内容提供器
    app:showAsAction 和android:showAsAction
    android:oneshot
    Android的三种主流资源尺寸
    Android中android:visibility的3中属性的剖析
    Android中的ProgressBar的android:indeterminate
    uses-permission和permission详解
  • 原文地址:https://www.cnblogs.com/lingyunhu/p/rtc31.html
Copyright © 2011-2022 走看看