|
以前一直向往WIFI图传,上周关注了WIFI小车。看到通过WIFI传输视频后很是感兴趣,一开始真的无从入手,真的不知道图传模块发送什么信息给PC。通过在论坛大量观看各种帖子后,才了解到发送的是JPG的视频流,通过SOCKET方式完成传输的。 于是,我先学习了一下vc的SOCKET传输历程,了解网络通信的基本概念。我先看了http://www.cnblogs.com/Sniper-quay/archive/2011/06/22/2086636.html
这篇博客的内容,又看了孙鑫老师的MFC的第15课视频。感受到了基于IP和端口就能传送数据的socket的强大,体会到了它带给我的快乐。
但是路由器那端通过建立服务器端,发送我们给客户端的信息是怎么个过程呢。我从器系统里的软件mjpg-streamer入手 ,我在CSDN上下载了一个资源包,里面有电脑的客户端
也就是说,如果我发送JPG数据流,他肯定能显示图片。于是我通过前面学习的SOCKET知识,建立服务器端,打开JPG文件,并且发送出去,发现真的显示出来了图片。当时特别的兴奋,这证明我的想法是对的。 并且通过mjpg-streamer客户端返回信息知道 客户端向服务器发送了请求代码 GET /?action=stream/n/n 。我猜测服务器收到指令后,变开始发送jpg数据流。当我买的wifi模块到达后,证实了这是对的。其实我现在也不知道,为什么大家视频地址都是http://192.168.1.1:8080/?action=stream,希望大家给我讲讲。
到这里如果我能捕捉视频流,并且显示出来上位机就大功告成了。这也是最难的一部分对我来说,我几乎翻遍了网络,终于发现了久违的代码,通过小小修改我便直接使用了,嘿嘿。
http://bbs.csdn.net/topics/350192606
然而通过它的方式是生成JPG然后再读取显示JPG,我个人感觉会浪费程序时间,是个冗余的过程。于是找到了一种文件流的方式来显示JPG,这个我也是翻遍了网络,呜呜。
http://fpcfjf.blog.163.com/blog/static/55469793200991911263136/
通过这种方式,把jpg数组内容复制到的固定内存中,成了所谓的流(IStream ),然后可以调用显示函数啦
总结:真是因为分享,我才能在短时间内学习到这些知识。真的很感激这个论坛,很感激那些无私的网友的代码。其实现在wifi图传都有1080P的啦,而且肯定20帧以上。真心的希望论坛老大哥liuviking可以继续深入的研究分享更加高清稳定的wifi图传技术给大家,真的是很期待。
附上只有图传功能的MFC工程,
my_wifi_camera.part12.rar
(491.97 KB, 下载次数: 321)
|
评分
-
查看全部评分
|