首页 新闻 会员 周边 捐助

Android 视频监控(求教外网服务器通过3G访问终端的方法)

2
[已解决问题] 解决于 2012-12-21 08:48

最近工作涉及一个视频监控的项目

平台:Android 2.3 /4.0

需求:能够同时本地录像、拍照(或是抓图)、远端实时视频监控

目前状态:同时录像、拍照、远端实时监控(目前只限于局域网)已经实现

技术涉及面:Android Camera Driver、Hal、Native(CameraServer、MediaRecoder等)、Jni、以及Java层应用

                RTP、RTSP、H264数据格式、MP4数据格式的方面的内容

目前技术难点:

                1)网络传输的稳定性(由于基于UDP可能存在这些方面的隐患、面前在调试中)

                2)3G网络穿越技术(目前难点、现在只能在局域网络内使用)

就目前技术难点,求技术分享,希望有高人能够指点一二。

     目前我可以分享的技术包括 Driver层、Hal层、Native层、包括应用层我也可以提供一些开源的项目代码供参考,求教外网服务器通过3G访问终端的方法。

AdiSky的主页 AdiSky | 菜鸟二级 | 园豆:202
提问于:2012-09-05 14:21
< >
分享
最佳答案
0

1.每一帧都包装一个编号,当达到一定的值时还未获取到该编号的帧,则发送给客户端去获取

2.你说的穿越应该是穿透吧,你可以在客户端发送心跳包(间隔一段时间发送一个信息)到服务器端,维持客户端开放的接口,当服务器端需要发信息给客户端的时候,你可以通过该连接的地址和端口发送

奖励园豆:5
锄田 | 菜鸟二级 |园豆:217 | 2012-09-06 13:56

嗯是的,如果服务器是在外网的话,发送心跳机制,保持连接应该是没有问题的(一般应该是基于UDP,目前在验证过程中),但是如果要基于TCP,用于信令交互的话,用socket其实是绑定port的,如果设置为复用模式,即两个socket复用一个ip:port,一个用于发送TCP 注册信息给服务器,在NAT端形成映射表,另一个socke用于监听服务器主动发送过来的信令,这中方式还需要试一下。

以及3g模式 APN方式也是需要考虑的,CMWAP、CMNET,冒失只是选择CMNET才行。

这一切还在研究过程中,由于Android java应用层,不很熟悉,以前主要精力在driver和framework,所以一些具体实现还在调研过程中,如果有感兴趣的同仁,可以向我咨询我现在已有的damo,在上面做实验,把结果告诉我。

谢谢

AdiSky | 园豆:202 (菜鸟二级) | 2012-09-17 17:11

@AdiSky: 不客气!CMWAP不行,是不是因为他属于代理上网的,从理论上来讲不管是不是代理,都能够让服务器端的Socket访问客户端,因为他总会开放一个Port给你客户端的Socket,当然具体的我也没有试验过,或者其他的原因可能我没有考虑到!

锄田 | 园豆:217 (菜鸟二级) | 2012-09-17 17:33

@AdiSky: 你好!你的那个功能实现了没有,我现在也在做和你类似的一个工作,不知道你的 ( “但是如果要基于TCP,用于信令交互的话,用socket其实是绑定port的,如果设置为复用模式,即两个socket复用一个ip:port,一个用于发送TCP 注册信息给服务器,在NAT端形成映射表,另一个socke用于监听服务器主动发送过来的信令,这中方式还需要试一下。” ) 这个测试有结果了吗?

我现在内网的端口复用成功了,但是我的外网给内网用于监听的socket发送数据时,不能连接,出现连接超时,不知道你有遇到这个问题吗?

ndghw | 园豆:200 (初学一级) | 2012-12-19 16:33
其他回答(1)
0

这个我倒是可以帮你一下,只是没有demo测试,如果可能可以发给我一个demo,我在上面试试看,以前做过外网pc访问安卓手机的东西,手机插一张联通3G上网卡,后来发现3G上网卡是内网IP,要么换成APN,但很麻烦,服务器必须做个数字链路也连到APN网络,费用太高,每月2M的要1880

玄米茶 | 园豆:202 (菜鸟二级) | 2012-10-04 23:49

对了,我的QQ:216980

支持(0) 反对(0) 玄米茶 | 园豆:202 (菜鸟二级) | 2012-10-04 23:49
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册