分类: 嵌入式
2010-07-23 23:30:39
本课题通过v4l采集的视频帧格式为MJPEG而MiniGUI显示时只能用YUY的格式,故利用FFMPEG实现图像帧的颜色空间变换。FFMPEG是一个开源的跨平台的视频和音频编解码解决方案。利用它可以非常方便的实现图像帧的颜色空间的变化。同时它支持几乎所有的音视频格式的编解码,并且拥有非常高的性能和可靠性。
FFMPEG项目组成有:
● libavformat :用于解析和生成各种音视频的格式
● libavcodec :用于各种类型声音/图像编解码;
● libavutil :包含一些公共的工具函数;
● libswscale :用于视频场景比例缩放、色彩映射转换;
● libpostproc :用于后期效果处理;
● ffmpeg :一个工具程序,可用于格式转换、解码或电视卡即时编码等;
● ffsever :一个 HTTP 多媒体即时广播串流服务器;
● ffplay :是一个简单的播放器,使用ffmpeg 库解析和解码,通过SDL显示;
● 首先获取FFMPEG源码
通过svn命令获取最新的FFMPEG
svn checkout svn://svn.mplayerhq.hu/ffmpeg/trunk ffmpeg
● 下面是FFMPEG的编译选项
./configure \
--enable-gpl \
CC=arm-linux-gcc
make
make install
● 把所有生成的库文件复制到嵌入式系统根文件系统
主要是动态链接库复制到嵌入式根文件系统。
本课题嵌入端基于FFMPEG实现了图像颜色空间之间的转换,其图像转换程序流程图如图所示: