网络传输视频.ppt

  1. 1、本文档共17页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:400-050-0739(电话支持时间:9:00-19:00)。
网络传输视频

基于网络传输视频监控系统;第一部分:视频监控系统总体框架 ;第二部分、视频采集;;1、获取参数和设置要求 (1)v4l2_capability结构体: 通过VIDIO_QUERYCAP操作命令获取设备驱动的参数,保存于v4l2_capability结构体中,包括driver(驱动名),card(设备名),bus_info(总线信息)等。 (2)v4l2_cropcap结构体 : 先设置v4l2_cropcap的type域,再通过VIDIO_CROPCAP操作命令获取设备捕捉能力的参数,保存于v4l2_cropcap结构体中,包括bounds(最大捕捉方框的左上角坐标和宽高),defrect(默认捕捉方框的左上角坐标和宽高)等。 (3)v4l2_format结构体: 先填好v4l2_format的各个域,如type(传输流类型),fmt.pix.width(宽),fmt.pix.heigth(高),fmt.pix.field(采样区域,如隔行采样),fmt.pix.pixelformat(采样类型,如YUV4:2:2),然后通过VIDIO_S_FMT操作命令设置视频捕捉格式。;v4l2_cropcap 和v4l2_format ;红色 —bounds ,是最大的能捕捉到的图像 范围。这个是摄像头本身的硬件属性,比如摄像头CCD的分辨率。 蓝色 — defrect ,是 我们的设备能够得到的最大的 范围。要区别于红色的部分,这是在CCD分辨率的基础上,我们的系统通过驱动软件能够获得的最大的分辨率。defrect和bounds可能会有小的差别,也可能是重合的。 绿色 —crop ,是我们希望裁剪的部分 ( 区别裁剪和缩放 ) 。也就是我我们希望获取CCD中的某个矩形部分。 紫色 — fmt ,伸缩,这一部分是我们最终获得的图像的大小。在使用 VIDIOC_S_FMT 时,驱动程序会计算出图像帧数据的大小,并且返回给我们。 如果硬件设备不支持 crop ,则相当于就是直接在 defrect 矩形上面设置大小。可以简单的理解为直接设置期望的视频分辨率。普通的摄像头,通常都不支持crop,在capture.c程序中也能看到对crop的处理方式--如果有crop功能,则crop,否则就跳过,直接使用VIDIOC_S_FMT。 ;2、fmt.pix.field=V4L2_FIELD_INTERLACED ;逐行扫描和隔行扫描的特点: 逐行扫描的图像画面平滑、无闪烁; 隔行扫描行间闪烁比较明显、会造成锯齿现象,它们是由组成单一帧的两个视场间的相对位移造成的; 隔行扫描是一种压缩方式,用帧周期一半的时间,通过偏置两个视场来组建一帧,减少了一半需要传输或储存的信息量;对于未被压缩的隔行高清晰度视频,这个数据产生速度大约是前面的两倍;截取图象的两种方法 : 1、用mmap(内存映射)方式截取视频 mmap( )系统调用使得进程之间通过映射同一个普通文件实现共享内存。普通文件被映射到进程地址空间后,进程可以向访问普通内存一样对文件进行访问,不必再调用read(),write()等操作。 两个不同进程A、B共享内存的意思是,同一块物理内存被映射到进程A、B各自的进程地址空间。进程A可以即时看到进程B对共享内存中数据的更新,反之亦然。 采用共享内存通信的一个显而易见的好处是效率高,因为进程可以直接读写内存,而不需要任何数据的拷贝 (1)设置picture的属性 (2) 初始化video_mbuf,以得到所映射的buffer的信息 (3)可以修改video_mmap和帧状态的当前设置 (4)将mmap与video_mbuf绑定 (5)Mmap方式下真正做视频截取的 VIDIOCMCAPTURE (6)调用VIDIOCSYNC等待一帧截取结束;2、视频截取的第二种方法:直接读设备 方法:read/write,直接使用read和write函数进行读写 ;3、初始化内存映射;4、内存映射示意图;5、捕捉视频 ; 图1 视频采集输入和输出队列示意图 ; ;谢谢!

您可能关注的文档

文档评论(0)

wyjy
该用户很懒,什么也没介绍

相关文档

相关课程推荐