Android WebRTC 音视频开发总结(三)-- 信令服务和媒体服务
前面介绍了WebRTCDemo的基本结构,本节主要介绍WebRTC音视频服务端的处理,,转载请说明出处(博客园RTC.Blacker)。
通过前面的例子我们知道运行WebRTCDemo即可看到P2P的效果,实际应用中我们不可能让用户自己去里面设置对方的IP和音视频端口,
而且即使设置了对方的IP和端口也不一定能运行起来,因为P2P如果双方不在同一个网段则还需穿透NAT,那服务端具体该如何部署呢?
1、信令服务:
想知道信令服务的作用前您先想想通讯双方彼此都不知道对方在哪里,怎么与对方建立连接,怎么给对方发起视频请求?
想到这里我们是不是会想到双方都应该先跟一个服务器建立连接,所以这就是信令服务的作用,具体如下图:

2、打洞服务:打洞的原理理解了其实很简单,主要思路就是通过STUN服务器获取自己的ip,port及NAT信息,
然后通过信令服务器交换这些信息,最后两客户端根据各自得到的ip,port,NAT信息进行相应的穿透,
现在开源STUN代码很多,网上也有很多介绍这方面的问题,有兴趣的可以找相关资料看看.
补充:不过对NAT进步一研究你会发现内网下多重NAT穿透是个比较麻烦的事情,网上有一些专门研究多层NAT穿透的论文,
正因为STUN方式不能完全解决P2P问题,所以后面出现了ICE,而libjingle就是ICE思想的具体实现。

3、媒体转发服务:P2P失败时,客户端先将RTP包发给媒体服务,然后再通过服务器转发给对方,
实际上很多视频会议都是这么实现的,在多人视频通讯的情况下如果都通过P2P来实现则会给客户端带来很大的压力,
特别是手机端负载有限的情况下,这宗点点的转发方式的弊端尤为明显,但如果通过RelayServer,客户端压力可大大减轻。
补充:如果要考虑多人视频,直播,如三方会议同时广播给几千人观看,这就设置到服务端的编解码,混音,屏幕叠加等等功能,
这是一个比较负责的课题,也是语音通信厂商的核心技术,后面会整理一篇文章专门介绍这方面的内容。

Android WebRTC 音视频开发总结(三)-- 信令服务和媒体服务的更多相关文章
- Android WebRTC 音视频开发总结
www.cnblogs.com/lingyunhu/p/3621057.html 前面介绍了WebRTCDemo的基本结构,本节主要介绍WebRTC音视频服务端的处理,,转载请说明出处(博客园RTC. ...
- Android WebRTC 音视频开发总结(一)
本系列文章主要总结和分享WebRTC开发过程中的一些经验,转载请说明出处(博客园RTC.Blacker),更多交流与合作请看页面上方的子标题! 一.WebRTC是什么? 可能您还不知道WebRTC是什 ...
- 【转】Android WebRTC 音视频开发总结(一)
http://www.cnblogs.com/lingyunhu/p/3578218.html 本系列文章主要总结和分享WebRTC开发过程中的一些经验,转载请说明出处(博客园RTC.Blacker) ...
- Android WebRTC 音视频开发总结(四)-- webrtc传输模块
在介绍WebRTC通讯之前我们先来看一个P2P视频聊天包括的主要过程,转载请说明出处(博客园RTC.Blacker): 音视频数据采集->编码->发送->接收->解码-> ...
- Android WebRTC 音视频开发总结(五)-- webrtc开发原型
这些天基于WebRTC做了个 手机视频监控 的程序,分享出来,供想了解这方面内容的朋友参考. 这个程序最早是广州一家智能穿戴设备公司请我们做的(他们不需要底层源码,也不需要ios版本),之后我们在这个 ...
- Android WebRTC 音视频开发总结(二)-- webrtcdemo介绍
这节主要介绍WebRTCDemo的结构,以此来简单了解WebRTC的调用流程,转载请说明出处(博客园RTC.Blacker) 1.先看WebRTCDemo的代码结构,如下图: 2.WebRTCDemo ...
- Android IOS WebRTC 音视频开发总结(五十)-- 技术服务如何定价?
这篇文章最早是杜老师写的,看完感触很深,加上之前跟咨询公司的朋友也讨论过这方面的问题,所以结合自己的经验,做了些删改(得到了杜老师的授权). 先通过下面几个简单的问题来了解技术服务: 问题1:技术服务 ...
- 转:Android IOS WebRTC 音视频开发总结 (系列文章集合)
随笔分类 - webrtc Android IOS WebRTC 音视频开发总结(七八)-- 为什么WebRTC端到端监控很关键? 摘要: 本文主要介绍WebRTC端到端监控(我们翻译和整理的,译 ...
- WebRTC 音视频开发
WebRTC 音视频开发 webrtc Android IOS WebRTC 音视频开发总结(七八)-- 为什么WebRTC端到端监控很关键? 摘要: 本文主要介绍WebRTC端到端监控(我们翻译 ...
随机推荐
- SteamVR Unity工具包(VRTK)之控制器交互
可交互对象(VRTK_InteractableObject) 可交互对象脚本被添加到需要用(如控制器)来交互的任何游戏对象上. 可用脚本参数如下 Touch Interactions 触摸交互 ...
- cookie和会话状态的工作原理
一:存在两种类型的cookie: 1>会话cookie (session cookie) 不设置过期时间,则表示这个cookie生命周期为浏览器会话期间,只要关闭浏览器窗口, ...
- CentOS7 MongoDB安裝
查看MongoDB的最新版官方下载地址: https://www.mongodb.com/download-center#community 使用wget命令下载安装包 ? 1 wget https: ...
- [ActionScript 3.0] AS3.0 调试出现安全沙箱冲突错误解决办法
提示 *** 安全沙箱冲突 ***到 http://api.map.baidu.com/telematics/v3/weather?location=%E6%88%90%E9%83%BD&ou ...
- SQL日期格式
) :: ),'-',''),' ',''),':','') ) , ) ) , ) ) , ) ) , ) 其它不常用的日期格式转换方法: ) , ) ) , ) ) , ) ) , ) ) , ) ...
- java中的final总结
Java关键字final有最终的,不可改变的含义,它可以修饰非抽象类.非抽象类成员方法和变量. 报错:类"TestFinal"要么是abstract,要么是final的,不能两个都 ...
- matplotlib python高级绘图库 一周总结
matplotlib python高级绘图库 一周总结 官网 http://matplotlib.org/ 是一个python科学作图库,可以快速的生成很多非常专业的图表. 只要你掌握要领,画图将变得 ...
- 查看maven项目的依赖关系 mvn dependency:tree
maven-dependency-plugin最大的用途是帮助分析项目依赖,dependency:list能够列出项目最终解析到的依赖列表,dependency:tree能进一步的描绘项目依赖树,de ...
- Android--ListView显示列表数据
简单的显示 import android.os.Bundle; import android.app.ListActivity; import android.view.View; import an ...
- oracle插入主键数据、sequence和触发器
一.创建表: id number;并设为主键 name VARCHAR2(20 BYTE) 二. 插入数据 2.1 insert into addservice.test_table (id,na ...