您的位置:首页 > 其它

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

2005-02-01 00:08 309 查看
如果不嫌麻煩的話,可以直接用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);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐