新闻  |   论坛  |   博客  |   在线研讨会
spcaview 文件中的avilib分析和使用
0750long | 2009-07-22 10:54:18    阅读:3609   发布文章

spcaview 文件中的avilib分析和使用

 

随便下载一个spcaview的源代码。

目录中有avilib.c与avilib.h。(事前工作:能得到基于v4l的捕获的一帧)

我今天刚完成基于v4l的视频捕捉和制成avi文件。

简单的说下使用步骤:

第一步:

 if ((out_fd = AVI_open_output_file (filename)) == NULL) {
   printf ("cannot open write file ? \n");
   exit (1);
 } 

顾名思义filename便是你希望输出的avi文件名。

第二步:

avi_t *out_fd;

AVI_set_video (out_fd, vd->hdrwidth, vd->hdrheight,10,"MJPG");

avi_t是avilib.h中定义的结构体。高度和宽度不说了,10是帧数,“MJPG”是采用的压缩方式。

第三步:

  if ((ioctl (vd->fd, VIDIOCMCAPTURE, &(vd->vmmap))) < 0) {
   perror ("cmcapture");
  }
  if (ioctl (vd->fd, VIDIOCSYNC, &vd->vmmap.frame) < 0) {
   perror ("cvsync err\n");
   erreur = -1;
  }
  jpegsize = get_jpegsize(vd->pFramebuffer + vd->videombuf.offsets[vd->vmmap.frame],vd->framesizeIn);
  if (AVI_write_frame (out_fd, vd->pFramebuffer + vd->videombuf.offsets[vd->vmmap.frame], jpegsize) < 0)
  printf ("write error on avi out \n");

简单的说就是得到一帧写入avi文件。写几帧就是你的事了。

第四步:

 if (filename) {
  AVI_close (out_fd);
  printf ("close avi\n");
 }

 

结束。

 

*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
推荐文章
最近访客