分析以嵌入式Linux与S3C2410平台为基础的视频采集
放到video_capability结构中。
Camera_get_picture():通过调用ioctl()函数取得图像的相关信息,并且存放到video_picture结构中。
Camera_close():用来关闭设备文件。
Camera_grab_image():用来抓取图像,采用mmap方式,直接将设备文件/dev/video0映射到内存,加速文件I/O操作,还可以使多个线程共享数据。
3.3 视频压缩编码模块
获取图像数据后,可以直接输出到FrameBuffer进行显示,由于该系统要将采集到的视频影响通过网络传输出去,所以在传输之前要对原始的图像数据进行压缩编码,在此选用映佳公司的MPG440芯片来实现MPEG-4视频编解码方案。MPEG-4压缩比更高,节省存储空间,图像质量更好,更适合在低带宽条件下传输视频,而且能保持图像的质量。
3.4 JRTPLIB网络传输模块
流媒体指的是在网络中使用流技术传输的连续时基媒体,RTP是目前解决流媒体实时传输问题的最好办法,JRTPLIB是一个面向对象的RTP库,它完全遵循RFCl889设计。
3.4.1 初始化
在使用JRTPLIB进行实时流媒体数据传输之前,首先应该生成RTPSession类的一个实例来表示此次RTP会话,然后调用 Create()方法来对其进行初始化操作。RTPSession类的Create()方法只有一个参数,用来指明此次RTP会话所采用的端口号。
3.4.2 数据发送
先设置好数据发送的目标地址,RTP协议允许同一会话存在多个目标地址,这个可以通过调用RTPSession类的AddDestination()、DeleteDestination()与 ClearDestinations()的方法来完成。目标地址全部指定了以后,接着就可以调用RTPSession类的SendPacket()方法,向所有的目标地址发送流媒体数据。
3.4.3 数据接收
调用PollData()方法来接收发送过来的RTP或者RTCP数据报。由于同一个RTP会话中允许有多个参与者 (源),因此既可以通过调用GotoFirstSource()和GotoNextSource()方法来遍历所有的源,也可以通过调用 GotoFisstSourceWithDat()和Got-oNextSourceWithData()方法来遍历那些携带有数据的源。
JRTPLIB为RTP数据报定义了3种接收模块,通过调用RTPSession类的SetReeeiveMode()的方法可设置下列这些接收模式:
RECEIVEMODE_ALL:缺省的接收模式,所有到达的RTP数据报都将会被接受;
RECEIVEMODE_IGNORESOME:除了某些特定的发送者之外,所有到达的RTP数据报都将被接受,而被拒绝的发送者列表可以通过调用 AddTo-IgnoreList(),DeleteFromlgnoreList()和ClearIgnoreList()方法进行设置;
RECEIVEMODE_ACCEPTSOME:除了某些特定的发送者之外,所有到达的RTP数据报都将被拒绝,而被接受的发送者列表可以通过调用 AddTo-AcceptList(),DeleteFromAcceptList和ClearAcceptList()方法来进行设置。
3.4.4 控制信息
JRTPLIB是一个高度封装后的RTP库,只要PollData()或SendPacket()方法被成功调用,JRTPLIB就能够自动对达到 RTCP数据报进行处理。在系统当中,使用 RTPSessionJRTPLIB类库提供的方法来实现底层的RTP/RTCP操作,且把他封装在CrtpTransmitter类中,该类从 MediaSink类继承而来,接收到相应的媒体帧数据,使用RTPSession类库的操作把数据发送到网络上。
4 结语
系统是以S3C2410平台和Linux操作系统为基础,利用Video4Linux设计采集程序,使用MPEG-4压缩编码,通过实时流媒体传输技术实现网络传输的,有软硬件成本低廉,体积小巧,安装简便等特点。可扩展应用在工业控制、视频会议系统、远程监控系统等诸多领域。
linux操作系统文章专题:linux操作系统详解(linux不再难懂)
为基础 视频 采集 平台 S3C2410 嵌入式 Linux 分析 相关文章:
- 一种以CNA/CANopen总线为基础的分布式高机动雷达伺服系统(10-31)
- 以MC68332平台为基础的ISP方案设计(08-01)
- 以FPGA为基础的多模无线基站(07-30)
- 一种以TPS2480/81为基础的智能保护热插拔控制器(03-09)
- 以OPENACCESS为基础的PCell缓存技术(09-28)
- 一种以DMA控制器为基础的SoC系统设计(09-17)