安卓手机的视频传输方案的研究(初步)
2013-10-31 10:15
225 查看
导师分配任务需要实现安卓手机的实时语音和视频传输功能。之前并没有相关的开发经验,于是翻看师兄的毕业设计,简单的把师兄留下的工程重复了下,他只做到了视频的传输,没有语音。而且视频是以序列图片的模式用TCP协议发送到接收端,然后直接在不停地接收端将收到的图片绘制在容器中。这样做并不能解决问题。
于是只能慢慢翻看资料,安卓也是刚刚上手。好在之前有JAVA的基础,安卓上手起来也不是太难。但是发现天杀的google并没有留下相关的视频流的接口,能用的只有两个:1、Camera.PreviewCallback获取预览的每一帧图像;2、MediaRecorder可以直接录制3PG或者MP4文件。
再翻看网上资料发现有前人已经做了相关方面的研究,SkySeraph在他的博客中详细分析了安卓实时视频采集/编码/传输/解码/播放的相关技术很有参考价值。
上表是另一网友总结的安卓平台下的几种实时视频解决方案,前面三种为发送序列图片的方式,并不能很好的完成要求,后面两种能够较好的解决问题。第四种方式,有一个开源的项目Sipdroid可以参考
针对第五种实现方式也有相应的开源项目DroidIPCam代码托管在google服务器上
第五种方式需要自己构建JNI动态编码库,还需要自己对音频与视频同步编码,相比而言第四种方法能直接调用安卓设备本身的资源硬编码,能同时将音视频一起录制然后发送,相比简单很多。
于是只能慢慢翻看资料,安卓也是刚刚上手。好在之前有JAVA的基础,安卓上手起来也不是太难。但是发现天杀的google并没有留下相关的视频流的接口,能用的只有两个:1、Camera.PreviewCallback获取预览的每一帧图像;2、MediaRecorder可以直接录制3PG或者MP4文件。
再翻看网上资料发现有前人已经做了相关方面的研究,SkySeraph在他的博客中详细分析了安卓实时视频采集/编码/传输/解码/播放的相关技术很有参考价值。
方案 | 压缩率 | 压缩/传输方式 | 实时性 | 平均流量消耗 | 传输距离 |
用camera的回调函数发送原始的yuv420数据 | 0 | 无压缩,按帧传输 | 高(20~30 fps) | 很高(6.5 Mbps) | 近距离有线或无线 |
对一帧数据用GZIP库压缩后发送(很奇葩的做法) | 较高(70%~80%) | 帧内压缩,按帧传输 | 低(5 fps) | 较高(300 Kbps) | 可以远距离 |
对一帧数据用JPEG方式压缩后传输 | 一般(60%左右) | 帧内压缩,按帧传输 | 高(25 fps) | 高(170 Kbps) | 可以远距离(带宽允许的话) |
用MediaRecorder对yuv420进行H264硬编码后发送 | 高(95%) | 帧间压缩,视频流传输 | 高(20 fps) | 低(30~70 Kbps) | 可以远距离 |
调用本地H264编码库(JNI)对一帧YUV420数据编码后发送(软编码) | 高(97%) | 帧间压缩,按帧传输 | 低(2 fps) | 低(20 Kbps) | 可以远距离 |
针对第五种实现方式也有相应的开源项目DroidIPCam代码托管在google服务器上
第五种方式需要自己构建JNI动态编码库,还需要自己对音频与视频同步编码,相比而言第四种方法能直接调用安卓设备本身的资源硬编码,能同时将音视频一起录制然后发送,相比简单很多。
相关文章推荐
- 安卓android视频录制、另一部手机实时观看方案
- Android基于WIFI实现电脑和手机间数据传输的技术方案研究
- 安卓android视频录制、另一部手机实时观看方案
- WIFI视频传输模块 AV转WiFi 安卓/苹果手机应用APP
- Android基于WIFI实现电脑和手机间数据传输的技术方案研究
- Android基于WIFI实现电脑和手机间数据传输的技术方案研究
- Android基于WIFI实现电脑和手机间数据传输的技术方案研究
- Android基于WIFI实现电脑和手机间数据传输的技术方案研究
- 原创安卓手机QQ7.0登录界面动态背景视频实现方案
- immersion公司 手机振动标准协议TS5000(PIEZO压电陶瓷振动器适用) 初步研究
- 基于rtsp的手机视频点播实现和研究
- android视频摄制、另一部手机实时观看方案
- 基于Socket的Android手机视频实时传输
- 高速视频传输方案
- 【流媒體】Android 实时视频采集/编码/传输/解码/播放—方案调研(初)
- 安卓实时视频传输实现
- PHPVOD 免费版本搭建VMS点播视频网站-安卓手机终端用户观看Flash P2P技术流媒体视频(实例展示)
- 介绍一些安卓手机的隐藏代码,适合发烧友研究研究
- How to stream video to your android phone 如何将视频远程传输至你的android手机?
- 基于DirectShow的MPEG-4视频传输系统的研究与实现