android的实时视频传输测试

Android的实时视频传输办法有多种,可以调用摄像头预览在onPreviewFrame里获取图像数据,也可以通过MediaRecoder录制,然后通过TCP,RTP等协议传输给服务器。

本文只对采用摄像头预览,结合TCP协议传输的简单方式来测试,测试目的:
[list]
[*]找到此种方式的最大性能
[*]找到瓶颈所在
[*]测试各种可能的方法对性能的改进
[/list]
[b]测试环境:[/b]
网络:局域网wifi,连接速度为150Mbps
测试手机:佳域G3(一个山寨机,支持800×480分辨率采集),三星Galaxy S3(不支持800×480分辨率采集)
开发环境:win7,64bit
开发IDE:eclipse+JDK1.6

[b]测试方法:[/b]采用摄像头预览的方法,在预览的回调函数里获取每帧的图像数据,通过TCP协议实时发送给客户端。
[b]测试结果:[/b]在良好的wifi情况下,采集图片尺寸为800×480,速度可以在11fps,最高12fps。

[b]其他测试方法:[/b]
(详细描述和代码可见CaptureStreamingServer\src\com\hw\video\server\VideoStreamingSenderService.java,94行至190行)
1 用zip压缩数据(每帧576k->460k),在良好的网络情况下,没有提升,反而会引起部分帧的传输故障。
2 先转成RGB,不压缩传输 --压缩效果好,但是耗时太长。
3 通过jni调用jpegHandler(第三方库)来压缩,压缩效率极高(576k->24k),但耗时长(90ms),另外在接收端没找到解压缩办法
4 使用NV21格式采集图像,然后压缩成jpeg,耗时长,最后只有6fps
5 通过jni调用imageEngine(第三方库)直接转换成RGB,耗时高(90ms),压缩效率也不高(576k->384k)

所以在此预览的方法下,如果网络状况好,直接传输或通过zip压缩即可达到良好效果,但基本也在11fps.

[b]程序的简要描述:[/b]
1 CaptureStreamingServer

执行后界面如下,会显示当前帧的生成和发送情况,采集帧率,图片大小,服务的IP地址。点击菜单可以配置采集帧率和是否压缩图片(以减少网络传输数据)。

[img]http://dl.iteye.com/upload/attachment/0078/0592/26a9581d-8d01-38ca-89ab-99ccd6fd92b4.png[/img]


2 CaptureStreamingAndroid

执行后界面如下,上方会显示接收状况,下方会显示接收图片。点击菜单可以配置服务器的IP地址和端口(重启程序生效),如右图。

[img]http://dl.iteye.com/upload/attachment/0078/0588/956482bb-a323-338c-b3af-f67968677319.png[/img]

3 CaptureStreamingPC

执行com.hw.video.pc.VideoStreamingReceiver,服务器的IP地址和端口在com.hw.video.pc.util.Constants里进行配置(重启程序生效)。

[img]http://dl.iteye.com/upload/attachment/0078/0590/f3a47133-b851-326c-b5eb-6c08d0c04e26.png[/img]

注:

1 所有的配置均在各个项目的util.Constants内,可以设置分辨率等。

2 android开发测试版本为4.0.4.


本测试程序参考了[url=http://xinchejian.com/]xinchejian[/url]和 [url=http://sourceforge.net/projects/smartcam]smartCam[/url]。

测试程序描述如下:
有三个文件夹,均为eclipse开发区间,可以导入eclipse直接调试,具体见附件。
[list]
[*]1 CaptureStreamingServer 视频捕捉服务(android端)
[*]2 CaptureStreamingAndroid 接收客户端(android端)
[*]3 CaptureStreamingPC 接收客户端(桌面程序),直接在IDE中执行com.hw.video.pc.VideoStreamingReceiver。
[/list]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值