p2p视频通话和p2p语音对讲的实现

qq视频聊天和语音聊天功能是我们日常生活中经常使用到的功能。如果我们要实现手机与智能摄像头, 可视门铃, 可视猫眼等智能家居的视频对讲功能,如果以前没有接触过这些方面,难度和复杂度都不小。

需要在以下方面有知识沉淀和深入研究:

1、首先要解决p2p视频传输的问题:视频对讲流量大,通过服务器中转的话,既浪费服务器昂贵的宽带资源,视频延时长也严重影响用户体验。通过p2p打洞,手机直接连接智能设备,可减少视频延时又节省服务器宽带资源。

2、视频推流、拉流、编解码;音频编解码。

3、手机APP实时视频显示。

4、手机声音采集、声音澡音处理,回声处理。

网络上能够找到的库非常少,webrtc算是比较全面的解决方案,但是它却非常复杂,编译后的库也很大,不适合在嵌入式智能家居设备上使用。下面将详细描述如何解决以上各方面的难点。

首先看看实现后的效果图:

  1. p2p视频传输这块,我们使用深圳市好游科技有限公司开发的p2p sdk,接口非常简单,穿透能力强,双对称型 NAT也能打洞成功。编译后的库也非常小,linux不到500kb,windows下不到200kb.

  1. 音视频推流、拉流、编解码;我们使用好游科技实现的多媒体库liveMedia,视频方面用H264、音频方面用的是aac。在设备端和手机端都接入此库。手机app上查看设备时,首先拉取了设备上的视频流,音频流虽然开了,但是默认是静音的,没有传输音频数据。用户可以在APP上单独开启声音,此后音频数据才会开始传输。当用户点通话按扭时,开启手机上的rtsp库,并开始录音。此后设备端开始从手机上拉取视频流和音频流。

  1. 手机视频显示方面,我们用unity3D+NGUI开发,创建了一个纹理UITexture来显示。通过GLES把每帧的视频绘制到纹理上。也可以对此纹理做各种后期处理。

4、采集方面ios使用的是 Aduio Unit,安卓方面使用的是AudioRecord

5、音频噪声处理和回声处理上,ios方面使用的是 api自带的效果就已经比较好了。设备端使用的是webrtc里面的声音处理模块。

后面再详细介绍每个模块的主要代码,有疑问的朋友可联系QQ: 390090739   由于代码较复杂,代码量也巨大,只能挑重点讲解每个部份的内容。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值