【原创】IP摄像头技术纵览—开篇
很长一段时间一来,一直对智能家居很感兴趣。平时开发也大部分是在嵌入式linux平台,多使用GPRS模块进行远程通信与控制,PPP拨号上网虽然能够实现各种环境参数采集等低速率通信,但最感兴趣的摄像头功能一直没有办法加入,终于家里装上光纤(本人很low^_^),然后开始动手开发摄像头功能。由于动手开发时对摄像头方面的开发一无所知,中间走了相当多的弯路,几次都想放弃,中间有将近半年的时间都没什么进展,一直没有入门。现在回想原因,一是当时没有对linux摄像头技术有个理论上的概览;二是满世界找的可以实现摄像头图像采集的linux开源程序,竟无一个可以让我看到图像的,主要是水平有限;D。断断续续偶尔捡起来测试一下,在春节过后,终于沉下心来认真的看了一遍《Video for Linux 2(V4L2)》规范,看完之后开发就如滔滔江水奔流向前,每周都有新突破,每天都有新收获,虽然很累,基本上每天都要实验到23点,但是成绩斐然。
本文写作时间4月末,我开始研究网络摄像头时,网上还没有看到小米摄像头、百度耳目、360摄像头,而现在,这些产品已经大规模铺货。网上有很多拆解教程,可以发现这些摄像头都是采用华为Hi3518方案,华为的这套方案成本很低,功能很强大,基本涵盖了IP摄像头的全部功能模块,价格大概在60元左右。但是我进行的工作本身就是为了折腾,所以开发工作都在手头的AT91SAM9260开发板上完成,一切都是自己重头开始造轮子。目测目前竟无一本详细讲解IP摄像头的书!!为了纪念这段日子,同时为了给后来者指明方向,特将学习心得、经验总结为这篇文章,从头到尾详细讲解网络摄像头。由于水平有限,不正确之处喜欢大牛指点哈。
废话说了一大堆,下面进入正题。
Author: chad Mail: linczone@
本文可以自由转载,但转载请务必注明出处以及本声明信息,拒绝用于商业用途。
关键字: AT91SAM9260、USB摄像头、V4L2、YUV/RGB、framebuffer、mjpg-streamer、DNS、NAT、UDP打洞、TUN/TAP、n2n、LIVE555 、FFMPEG
目录
一、linux 内核编译,USB摄像头设备识别
内核编译、文件系统移植—茅庐初创 USB摄像头初识二、linux 视频开发接口V4L2概述
V4L2 接口说明 视频图像格式说明—YUV/RGB USB摄像头参数采集测试 摄像头静态图像采集生成JPEG图像三、图像数据在帧缓存设备(framebuffer)上的显示
framebuffer 学习 jpeg图像在帧缓存设备上的显示四、摄像头参数控制—亮度、对比度、自动对焦等
V4L2 摄像头控制接口 控制测试五、网络摄像头初试—mjpg-streamer移植与部署
vgrabbj、spacview、Luvcview、mjpg-streamer评测对比 mjpg-streamer移植与部署 mjpg-streamer实现分析 运动检测功能添加实现六、通过internet访问摄像头
路由器配置—DMZ虚拟主机、端口映射测试 DNS动态域名测试七、NAT技术—UDP打洞实现内网穿透
NAT类型及检测 UDP内网穿透实验 目前市面上网络摄像头方案简介八、VPN技术—虚拟专网实现anywhere can control
TUN/TAP 虚拟网卡 VPN技术简介 n2n—内网穿透神器 n2n实现分析九、UPnP技术
UPnP 简介 简单了解ONVIF 协议十、流媒体传输—H.264编解码
流媒体视频传输—容器与编码 GStreamer LIVE555 FFMPEG十一、数字图像处理—机器视觉
Opencv与EmguCV学习 Aforge学习 Python建模及测试十二、网络摄像头技术总结
本文脉络将以上文目录为准绳,未看内容,先看目录基本就可以明白网络摄像头开发的流程,沿着上面的步骤也可以自行学习,必定事半功倍。
———–未完待续 -04-25 初稿 (-03-01 修订与上海)
如果觉得《【原创】IP摄像头技术纵览—开篇》对你有帮助,请点赞、收藏,并留下你的观点哦!