Chinaunix首页 | 论坛 | 博客
  • 博客访问: 157486
  • 博文数量: 85
  • 博客积分: 366
  • 博客等级: 一等列兵
  • 技术积分: 455
  • 用 户 组: 普通用户
  • 注册时间: 2011-03-16 18:32
个人简介

闲下来的时候看看书

文章分类

全部博文(85)

文章存档

2016年(1)

2013年(2)

2012年(81)

2011年(1)

我的朋友

分类: LINUX

2012-09-25 20:52:26

简单来说就是采集、编码、传输、解码、显示3个部分

采集:
1.先找个USB的摄像头吧,连在开发板上点那个“USB摄像头”应用程序,如果可以正常显示视频图像,那这USB摄像头就OK了  2.采集图像需要用到一个叫做V4L2的程序(就是V4L的升级版,但是已经进行了很大的改变,所以两者的程序不能混用),好消息           是mini自带的那个linux系统已经包含了V4L2库文件,所以就不用再做移植和编译了。  3.到网上下载V4L2的应用手册,是个PDF的文档,看它提供的那个例程,看懂那个例程后就可以按照自己的需要进行改写了。 4.在那个例程中有个process_image的子程序,我们要做的主要工作就是自己完成这个子程序的改写。
编码:
1.编码(也就是所谓的压缩)的技术有很多,对应的库文件也很多,可以用xvid,x264等,自己选择吧 2.从网上下载xvid的源程序,然后移植编译,使其可以在ARM上使用。 3.xvid自带了例程,仍然是看懂这个例程,然后按照自己的需要修改例程,最后把这部分代码添加到V4L2那个例程的process_image        子程序中,两者结合就可以对采集到的视频数据进行编码了。
传输:        
1.传输(发送和接收)的技术也有若干种,可以用TCP或者UDP的socket编程,也可以用RTP         2.如果用socket编程,那直接写代码就OK了,如果用RTP,需要下载相应的库文件代码,然后移植编译,使其可以在ARM上使用。         3.发送的程序也添加到process_image子程序中,将编码后的数据发送出去就OK了         4.接收的程序是运行在PC上的,所以就要用到windows的socket编程;如果用RTP,同样要编译生成库文件才能用,我用的是VC6.0来编译的
解码:        
1.如同编码,用VC6.0编译xvid的源代码,生成库文件         2.看懂那个解码的例程,然后改写,没什么好说的,自己努力吧^_^!
显示:        
1.显示的技术也有很多,什么direct show,SDL之类的,看情况自己选一个吧         2.我用的是SDL,同样先下载它的源代码,然后用VC6.0编译生成库文件以待编程使用         3.下载个SDL的显示例程,自己看,看懂后自己修改 
其它: 
1.需要注意一点,SDL中显示的格式和V4L2中采集的格式要一致才行           2.那个process_image程序如下图:      

           
 它正常运行就是在终端上不断的显示“...................”一行一行的点而已,我们就是要修改这个函数         3.上面的一些过程实际上还有很多其它的技术可以实现(比如显示的部分),自己看情况选择吧
阅读(753) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~