【转】android实时视频网络传输方案总结(一共有五套)
最近研究了Android的实时视频网络传输问题,在视频处理方面花费了大量精力进行研究,总结出以下五套方案,并加以比较
以320×240大小的视频传输为例
| 方案 | 压缩率 | 压缩/传输方式 | 实时性 | 平均流量消耗 | 传输距离 |
| 用camera的回调函数发送原始的yuv420数据 | 0 | 无压缩,按帧传输 | 高(20~30 fps) | 很高(6.5 Mbps)太恐怖了O_O | 近距离有线或无线 |
| 用MediaRecorder对yuv420进行H264硬编码后发送 | 高(95%) | 帧间压缩,视频流传输 | 高(20 fps) | 低(30~70 Kbps) | 可以远距离 |
| 调用本地H264编码库(JNI)对一帧YUV420数据编码后发送 | 高(97%) | 帧间压缩,按帧传输 | 低(2 fps) | 低(20 Kbps) | 可以远距离 |
| 对一帧数据用GZIP库压缩后发送(很奇葩的做法) | 较高(70%~80%) | 帧内压缩,按帧传输 | 低(5 fps) | 较高(300 Kbps) | 可以远距离 |
| 对一帧数据用JPEG方式压缩后传输 | 一般(60%左右) | 帧内压缩,按帧传输 | 高(25 fps) | 高(170 Kbps) | 可以远距离(带宽允许的话) |
注:MediaRecorder有很强的硬件依赖性,因此不同的手机表现是不一样的,有的手机数据传输的时候会出现阻塞现象,实时性就降低了
综上来看,方案2(MediaRecorder)和方案5(JPEG)还是可以考虑的,由于本人的项目只需要近距离无线传输,并且硬件水平也不怎么高,故选择了方案5
以上方案是本人最近比较具体而深入地研究实时视频编码和传输方案后总结出来的,希望需要研究视频传输的朋友们可以借以参考!
【转】android实时视频网络传输方案总结(一共有五套)的更多相关文章
- PHP-02.文件上传、php保存/转移上传的文件、常见的网络传输协议、请求报文及属性、响应报文及属性
关系数组 array("key"=>"value",...) ; get没有数据大小的限制 post上传大小没有限制 不指定上传方式,默认是get 文件上 ...
- Android IOS WebRTC 音视频开发总结(五七)-- 网络传输上的一种QoS方案
本文主要介绍一种QoS的解决方案,文章来自博客园RTC.Blacker,欢迎关注微信公众号blacker,更多详见www.rtc.help QoS出现的背景: 而当网络发生拥塞的时候,所有的数据流都有 ...
- Android网络传输中必用的两个加密算法:MD5 和 RSA (附java完成测试代码)
MD5和RSA是网络传输中最常用的两个算法,了解这两个算法原理后就能大致知道加密是怎么一回事了.但这两种算法使用环境有差异,刚好互补. 一.MD5算法 首先MD5是不可逆的,只能加密而不能解密.比如明 ...
- Android网络传输中必用的两个加密算法:MD5 和 RSA (附java完毕測试代码)
MD5和RSA是网络传输中最经常使用的两个算法,了解这两个算法原理后就能大致知道加密是怎么一回事了.但这两种算法使用环境有差异,刚好互补. 一.MD5算法 首先MD5是不可逆的,仅仅能加密而不能解密. ...
- Android网络传输中必用的两个加密算法:MD5 和 RSA
MD5和RSA是网络传输中最常用的两个算法,了解这两个算法原理后就能大致知道加密是怎么一回事了.但这两种算法使用环境有差异,刚好互补. 一.MD5算法 首先MD5是不可逆的,只能加密而不能解密.比如明 ...
- Android网络传输中必用的两个加密算法:MD5 和 RSA 及Base64加密总结
(1)commons-codec包简介 包含一些通用的编码解码算法.包括一些语音编码器,Hex,Base64.MD5 一.md5.base64.commons-codec包 commons-codec ...
- [转帖]技术扫盲:新一代基于UDP的低延时网络传输层协议——QUIC详解
技术扫盲:新一代基于UDP的低延时网络传输层协议——QUIC详解 http://www.52im.net/thread-1309-1-1.html 本文来自腾讯资深研发工程师罗成的技术分享, ...
- App安全之网络传输安全
移动端App安全如果按CS结构来划分的话,主要涉及客户端本身数据安全,Client到Server网络传输的安全,客户端本身安全又包括代码安全和数据存储安全.所以当我们谈论App安全问题的时候一般来说在 ...
- APP安全--网络传输安全 AES/RSA/ECC/MD5/SHA
移动端App安全如果按CS结构来划分的话,主要涉及客户端本身数据安全,Client到Server网络传输的安全,客户端本身安全又包括代码安全和数据存储安全.所以当我们谈论App安全问题的时候一般来说在 ...
随机推荐
- .net 将base64转为图片
1.base64的格式为: data:image/jpeg;base64,sandkansncquiueui3jk 2.ajax传输会把+转为空格 3.后台处理的代码: string imgPath ...
- Tornado笔记
helloworld Tornado特点一句话简介:Tornado是非阻塞式的Web服务器,速度非常快,每秒可以处理数以千计的链接,因此Tornado是实时Web服务的一个理想框架.Tornado因为 ...
- electron项目中使用js web worker时,new worker(path)路径问题
如题,在new worker时需要传入js文件路径,可是在electron环境中使用出现问.同目录下,recorder.jsworker.js recorder.js中调用 var path = '. ...
- 在组件上使用v-model
(1) 等价于: 其中$event.target.value表示获取输入框的值. (2)当用在组件上时,v-model 则会这样: 其中$event表示$emit抛出的值,即$emit的第二个参数. ...
- js对象常用属性和方法:复制一个对象,获取一个对象的所有key和所有value的方法
记录对象的一些实用使用方法及属性 // Object.assign() 多个对象合并 key相同则后面的覆盖前面的 const target = { a: 1, b: 2 }; const sourc ...
- Markdown 文件如何实现 chm 文件打包
需要借助2个工具,下面的链接都有对应的网址 LME和 hhw, 有不清楚的可以下面评论,7*24小时在线解答问题,也可以加博主微信 首先借助 Markdown To CHM(LME) 工具将Markd ...
- 12个有趣的C语言问答
转自:http://www.admin10000.com/document/913.html 1,gets() 方法 Q:以下代码有个被隐藏住的问题,你能找到它吗? 1 2 3 4 5 6 7 8 9 ...
- “You don't have permission to access /phpmyadmin/ on this server.”
<Directory "I:/1/wamp/apps/phpmyadmin3.4.10.1/"> Options Indexes FollowSymLinks Mult ...
- 面试题:android用户注册代码 密码需要加密传输吗
答案是肯定的,至少比明文好 客户端注册和登录的时候:一个可行的方法是,客户端提交 md5(password) 密码(如上所述,此方法只是简单保护了密码,是可能被查表获取密码的). 注册的时候:服务端数 ...
- Qt中QWidget、QDialog和QMainWindow
QWidget 类是所有用户界面对象的基类.只有一个"页面" QMainWindow 是一个"窗口".含有菜单栏.状态栏.工具栏.停靠窗口.中心窗口 QDial ...