使用ffmpeg的库编码mpeg的技术总结报告
Sun Gang, 2003-11-21
一 . 概述
Ffmpeg是一个优秀的基于LGPL协议的视频/音频转换器.目前已经有很多多媒体应用软件使用它来作为编码器,如Xine,Mplayer,Xbox Media Player等.它也能用于从视频/音频源来抓取数据保存为视频音频文件.Ffmpeg还能从各种采样率来开始转换,能够通过高品质的多相滤波技术来实现放大缩小,频域相域的变换等.
这里,我们使用Ffmpeg来实现mpeg的编码过程.
二 . 摄像头的视频捕捉调用相关说明(即使用Video4Linux API获取图象的调用说明)
#include <videodev.h>
struct video_window vid_win;
struct video_capability vid_caps;
struct video_picture vid_pic;
struct video_mbuf mbuf;
1. 打开设备
int dev = open("/dev/video0",O_RDWR);
2. 获取相关参数
ioctl (dev, VIDIOCGCAP, &vid_caps);
ioctl (dev, VIDIOCGWIN, &vid_win);
ioctl (dev, VIDIOCGPICT, &vid_pic);
//Check to see if we can use mmap
if(0 == ioctl(dev,VIDIOCGMBUF,&mbuf))...;
//Check to see if this camera uses MJPEG
if(vid_caps.type & VID_TYPE_MJPEG_ENCODER)...;
3. 设置相关参数
ioctl(dev, VIDIOCSPICT, &vid_pic);
ioctl(d