android webrtc 多人网状P2P视频聊天

android webrtc 多人网状P2P视频聊天,第1张

什么是网状P2P?假设3个人视频会议,每个人都要同时接收2路流,上传两路流。每个客户端要创建多个(N-1个)PeerConnection ,同时和多个人建立 P2P 连接。

多人P2P跟两人P2P通信的唯一区别就是要创建多个 PeerConnection ,也很简单。

比较复杂的地方其实是聊天室信令的设计与实现,客户端还比较简单。网状P2P服务器压力很小,服务端只有信令不涉及流的处理,客户端压力较大,因为要同时处理多路流。

默认定义一个房间

首先所有用户还是先注册自己到服务端

定义一个加入房间的信令

相应的定义一个离开房间的信令

sdp, trickle 等信令消息的转发不用动,直接根据接收者ID转发就行

3个手机依次安装3个用户,依次加入房间,很简单实现了多人P2P通信。

假设领导要你搞一个10人以内的视频会议,网状P2P其实挺合适,做一个完善一点的房间管理服务,客户端再优化完善一下,一到两周搞定。

人再多的话网状就不太适合了,就得 SFU 或 MCU 了,得架设一个 webrtc 网关了,且听下回分解。

客户端源码参考: >

ppchat是派派聊天系统,是一款具有类SNS会员系统的文字视频聊天平台。

聊天工具又称IM软件或者IM工具,是指提供基于互联网络的客户端进行实时语音、文字传输的工具。从技术上讲,主要分为基于服务器的IM工具软件和基于P2P技术的IM工具软件。

实时传讯与电子邮件最大的不同在于不用等候,不需要每隔两分钟就按一次“传送与接收”,只要两个人都同时在线,就能像多媒体电话一样,传送文字、档案、声音、影像给对方,只要有网络,无论对方在天涯海角,或是双方隔得多远都没有距离。

定义

InstantMessaging(即时通讯,实时传讯)的缩写是IM,这是一种可以让使用者在网络上建立某种私人聊天室的实时通讯服务。大部分的即时通讯服务提供了状态信息的特性──显示联络人名单,联络人是否在线及能否与联络人交谈。

在互联网上受欢迎的即时通讯软件包括Anychat、百度hi、QQ、Skype、MSN、飞信、微信、有度即时通、YY、FastMsg、imo、AOL Instant Messenger、Yahoo! Messenger、NET Messenger Service、Jabber、ICQ等。

通常IM服务会在使用者通话清单(类似电话簿)上的某人连上IM时发出讯息通知使用者,使用者便可据此与此人透过互联网开始进行实时的通讯。除了文字外,在频宽充足的前提下,大部分IM服务事实上也提供视讯通讯的能力。

Bonjour
Service是苹果家族 *** 作系统的视频聊天工具,可能是你安装什么软件附带装上去的。Bonjour,原名Rendezvous,是苹果电脑公司在其开发的 *** 作系统Mac
OS
X102版本之后引入的服务器搜索协议所使用的一个商标名。
到控制面板找到把它删除就可以了~~

你好这类网站包括下载站站等都是占用带宽比较多的如果要五百人同时在线的话至少需要50M左右的独享带宽配置方面最好也高一些可以用至强配置或者是四核配置这样能保证流畅运行线路的话建议用电信或者网通单线带宽比较便宜也方便以后升级更高带宽 我是做IDC的以上是个人观点有问题大家也可以看我详细资料找我一起交流

首先除了具备即时通讯软件所具备的基础功能点之外,还必须有可扩展性和可统一性!

可扩展是说具备二次开发的功能,这样才会更加适合自身的企业网络使用状况

可统一性是说能作为一个统一通讯平台,集合其他的办公软件

举例:

企业即时通讯软件Active Messenger其特点:

1)系统提供独立的企业即时通讯服务器给企业;

可以在局域网内布置,用户在不上外网的情况下实现局域网内的交流

若有同事需要异地使用,只需要将即时通讯服务器的IP地址映射到外网就可以

2)所有的用户都是由系统管理员按照企业组织架构统一建立的,支持AD域集成;

控制了只有同事或有业务联系的人员才能登录企业即时通讯系统

3)所有交流都经过即时通讯服务器中转;

这样可以在服务器备查历史消息,企业内部交流需要信息的可追溯性

这样的架构使得系统具有企业邮箱的大部分功能

4)系统提供与OA、ERP软件集成的开发接口;

当OA、ERP系统有事务发生时,可以通过AM对相关人员进行提醒

5)其它功能

支持大容量文件及目录的发送,内网速度可以到6M

支持消息的签收,跟踪管理(可以查对方是打开过消息)

支持对离线人员的消息发送(支持带附件带目录,支持对几千人员的群发)

支持多服务器互连(可以建立分布式的企业构架)

支持屏幕截取,并进行批注后发送 (有的时候,文字不能表达清楚,必须通过加批注文字才能表达。)

支持语音及视频通讯

支持事务申请

支持会议功能(就某一主题开个会议,结束后可以产生会议记录)

支持历史文档管理

支持客户端历史消息备份管理

除了即时通讯功能外,系统可扩展有用的增值方案;

1、AM短信扩展模块;

2、AM传真扩展模块;

3、AM邮件集成模块;

4、AM网络会议系统(支持多方语音及PPT同步播放)

5、AM企业网络硬盘及文档管理方案;

SKYPE与QQ都是一种聊天工具,区别就在于功能上的大同小异。
 1、Skype是一款即时通讯软件,其具备IM所需的功能,比如视频聊天、多人语音会议、多人聊天、传送文件、文字聊天等功能。它可以免费高清晰与其他用户语音对话,也可以拨打国内国际电话,无论固定电话、手机、小灵通均可直接拨打,并且可以实现呼叫转移、短信发送等功能。
Skype是全球免费的语音沟通软件,拥有超过663亿的注册用户,同时在线超过3000万。
根据TeleGeography研究数据显示,2010年Skype通话时长已占全球国际通话总时长的25%。Skype 用户免费通话时长和计费时长累计已经超过了2500亿分钟。37%的Skype用户用其作为商业用途,超过15%的iPhone 和iPod touch 用户安装了Skype。
2013年3月,微软就在全球范围内关闭了即时通讯软件MSN,Skype取而代之。只需下载Skype,就能使用已有的Messenger用户名登录,现有的MSN联系人也不会丢失
 2、腾讯QQ(简称“QQ”)是腾讯公司开发的一款基于Internet的即时通信(IM)软件。腾讯QQ支持在线聊天、视频通话、点对点断点续传文件、共享文件、网络硬盘、自定义面板、QQ邮箱等多种功能,并可与多种通讯终端相连。2015年,QQ继续为用户创造良好的通讯体验!其标志是一只戴着红色围巾的小企鹅。
目前QQ已经覆盖Microsoft Windows、OS X、Android、iOS、Windows Phone等多种主流平台。

;   频聊天软件客户端

     )新建一个工程 命名为Project dpr

     )在程序窗口Form 上放置一个image控件 该控件用于接收的图像内容 再放置一个Tbutton控件 caption为 接收 放置一个UDPServer组件 这里用indy的IdUDPServer用来接收网络视频 如图示

    接收按钮代码

    IdUDPServer DefaultPort:= ; //接收端口 IdUDPServer Active:=true; //启用

    IdUDPServer 的UDPRead事件代码

    var jpg:TJpegImage;begin try jpg := TJpegImage Create; jpg LoadFromStream(Adata); Image Picture Bitmap Assign(jpg); jpg Free; exceptend;end;

    视频的传输是压缩成JPG进行传输的 服务器端和接收端都用到了jpeg单元 所以use中都要加入jpeg

    完整的视频聊天软件客户端代码

    unit Unit ;    interfaceuses Windows Messages SysUtils Variants Classes Graphics Controls Forms Dialogs StdCtrls IdBaseComponent IdComponent IdUDPBase IdUDPServer ExtCtrls jpeg IdSocketHandle;    type TForm = class(TForm) Image : TImage;    IdUDPServer : TIdUDPServer;    Button : TButton;    procedure Button Click(Sender: TObject);    procedure IdUDPServer UDPRead(Sender: TObject;    AData: TStream; ABinding: TIdSocketHandle);    private { Private declarations }    public    {    Public declarations    }    end;    var Form : TForm ;    implementation{$R dfm}procedure TForm Button Click(Sender: TObject);    begin    IdUDPServer DefaultPort:= ; //接收端口    IdUDPServer Active:=true; //启用    end;    procedure TForm IdUDPServer UDPRead(Sender: TObject;AData: TStream; ABinding: TIdSocketHandle);    var jpg:TJpegImage;    begin    try    jpg := TJpegImage Create;    jpg LoadFromStream(Adata);    Image Picture Bitmap Assign(jpg);    jpg Free;    except    end;    end;    end

    好了 到这里程序代码也就写完了 在机上运行视频聊天软件服务器程序 点开始就开始进行视频的传输了 在网络上(网段为 X 根据你的网络设置IP地址 我这用的局域网测试)的任何一台机上运行视频聊天软件客户端点接收都能接收到视频了

如果要接收的视频内容清晰点 可以设置jpg CompressionQuality:= ;(这个值可以是从 至 数值越大 图像越清晰 当然传输的速度会越慢了 图像越清晰 数据包就会越大 如果超出了UDP包限制 看到图像就不完整了)

    视频聊天软件服务器

    聊天软件客户端

    四 结束语

lishixinzhi/Article/program/Delphi/201311/24738

先将本地音视频采集后,编码、混流、发送到流媒体服务器上,然后其它要接收的参会人员从流媒体服务器上直播当前的数据;
自己可能用下列软件搭个平台试试就知道了;
Adobe Media Encoder CS4(采集,编码,发送功能)
RED5 FLV流媒体服务器,它有几个DEMO,你运行后打开页面看下,发布,订阅就明白了。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/13309608.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-12
下一篇 2023-07-12

发表评论

登录后才能评论

评论列表(0条)

保存