获得avi或者mpeg格式文件的第一帧图像数据

如果不嫌麻煩的話,可以直接用renderfile來播放影像,先暫停,然後用sampleGrabber來抓圖,這樣就可以得到第一幀的圖片

一般的软件播放器就是这样,打开一个媒体文件之后,先将filter graph暂停,这样这个媒体文件的第一帧自然就显示出来了。

if(no>120) exit(0);
   sprintf(file_name,"image%03d.ppm",no++);
   save_ppm(file_name,_pixbuf);
做一个save_ppm的函数,当no=1时就是第一张图


楼上的,用vfw编程来做啊. avi格式...
PAVIFILE  pfile;//Pointer  to  a  buffer  that  receives  the  new  IAVIFile  interface  pointer.                                     
           AVIFILEINFO    pfi;                         
           PAVISTREAM    pavi;                                                 
           PGETFRAME  pgf;                                                                                     
           long  length,  start; 
 
           //initializes  the  AVIFile  library,as AVIFileExit()。 
           //Call  AVIFileInit()  before  using  any  other  AVIFile  functions             
           AVIFileInit(); 
           AVIFileOpen(&pfile,m_avifile,OF_READ  |OF_SHARE_DENY_NONE,NULL); 
            
           //obtains  information  about  an  AVI  file 
           AVIFileInfo(pfile,&pfi,sizeof(AVIFILEINFO)); 
           AVIFileGetStream(pfile,&pavi,streamtypeVIDEO,0); 
           length=AVIStreamLength(pavi); 
           start=AVIStreamStart(pavi); 
 
           AVISTREAMINFO  si; 
           AVIStreamInfo(pavi,  &si,  sizeof(si)); 
 
           pgf  =  AVIStreamGetFrameOpen(pavi,  NULL); 
           //GET FIRST BMP
           LPBITMAPINFOHEADER  bmp1; 
           bmp1=  (LPBITMAPINFOHEADER)AVIStreamGetFrame(pgf,  0);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值