胡金灿 张学梁 张凯 王璐辉
【摘要】 本产品基于DE1-SoC开发板,通过V4L2方式进行图像的采集,与FPGA交互实时显示,用Ffmpeg方式实现图像的转换和储存,并通过网络让联网的移动设备和电脑实时显示。该设备能进行分辨率为640*480的图像采样,20fps的图像显示和存储。误码率低,性能可靠。
【关键词】 行车记录仪 图像采集 V4L2 FFmpeg
理论分析:
1、整体框架:
系统由五部分组成:视频采集、视频格式转换、视频编码存储、视频显示、视频网络服务。视频采集得到原始视频帧图片,经过视频格式转换分别得到各种图片图片格式,分三路传至视频编码存储、视频显示和视频网络服务作相应处理。
2、视频采集:视频采集有linux内嵌的v4l2框架来实现。先打开视频设备文件,确定本设备为视频捕捉设备,查询摄像头支持的格式,并设置。申请视频采集所需的内存块,再确定每个内存块的信息,将内存块的地址映射到用户空间,便于对视频数据直接处理。把内存块放入队列,启动设备开始采集,等待有数据并从队列中取出,可以得到原始图片数据,再将此内存块放入队列,循环进行采样。
3、视频格式转换设计:将原始图片数据判断作相应转换。视频网络服务器需用到Jpg格式数据;视频编码存储需用到yuv420格式数据;视频显示需用到rgb32格式数据。格式转换引入libjpeg库,以库个API进行编程。
4、视频网络服务端设计:创建一个单线程服务于网络服务端。新建socket,绑定本地IP和端口号,监听网络,一旦有客户端链接,创建一个线程,将格式转换产生的jpg图片数据发送至客户端,而主线程会一直监听网络。……