[转载]vfw的AVI族函数读取AVI文件

news/2024/11/24 14:02:53/
#include "vfw.h"#pragma comment(lib, "vfw32.lib")
#pragma comment(lib, "Winmm.lib")AVIFileInit();PAVIFILE pAviFile = nullptr;// 打开AVI文件 int nRet = AVIFileOpen(&pAviFile, "10.82.27.20_00_201908231542_part0.avi", OF_READ, NULL);if (nRet == 0){// 读取AVI文件的信息AVIFILEINFO aviFileInfo = { 0 };AVIFileInfo(pAviFile, &aviFileInfo, sizeof(AVIFILEINFO));// 提取出AVI文件的某种流,此例为视频流PAVISTREAM pAviStrem = nullptr;AVIFileGetStream(pAviFile, &pAviStrem, streamtypeVIDEO, 0);// 读取流信息AVISTREAMINFO aviStreamInfo = { 0 };AVIStreamInfo(pAviStrem, &aviStreamInfo, sizeof(AVISTREAMINFO));/*// type 为流格式(音频或视频),handler为压缩方法:如H264char handler[4],type[4];handler[0] = stinfo.fccHandler;handler[1] = stinfo.fccHandler >> 8;handler[2] = stinfo.fccHandler >> 16;handler[3] = stinfo.fccHandler >> 24;type[0] = stinfo.fccType;type[1] = stinfo.fccType >> 8;type[2] = stinfo.fccType >> 16;type[3] = stinfo.fccType >> 24;//如果是压缩的视频(一般都是压缩的),打开读取压缩桢的函数PGETFRAME pGetFrame = AVIStreamGetFrameOpen(pAviStrem, NULL);//返回解压缩后,图像的信息LPBITMAPINFOHEADER lpbm = (LPBITMAPINFOHEADER)AVIStreamGetFrame(pGetFrame, 1);//读入并解压缩视频的每一帧for (int i = 0; i < aviFileInfo.dwLength; i++){memcpy(RGBbuf,(BYTE*)AVIStreamGetFrame(pgf,i)+40,pfi.dwWidth*pfi.dwHeight*3);}//关闭读取压缩桢的函数AVIStreamGetFrameClose(pGetFrame);*/char* szBuf = new char[500 * 1024];memset(szBuf, 0, 500 * 1024);const int headerSize = sizeof(CMD_HEADER) + sizeof(AV_VIDEO_INFO);while (!m_bExit){for (int i = 0; i < aviFileInfo.dwLength; i++){// 获取编码前数据AVIStreamRead(pAviStrem, i, 1, szBuf + headerSize, 500 * 1024 - headerSize, NULL, NULL);}}//释放AVI文件指针AVIFileRelease(pAviFile);}AVIFileExit(); 

http://www.ppmy.cn/news/541205.html

相关文章

图像的压缩与恢复

一个图像是如何数字化的呢?不妨从一张玩具鸭子图片说起。 首先要把图片打格子分成若干小块,每块用一个数字来表示一种颜色。如果图像是纯黑白两色的,那每块只用1或0表示即可。若图像是16色的,每块用4位二进 数表示,因为2^4=16,即4位二进制有16种组合,每种组合表示一种颜…

PR进行jpeg的帧压缩,并导出为avi视频

目前比较推崇的方案&#xff1a; 1、在PR中设置序列的属性&#xff1b; 2、调整好输出的分辨率&#xff08;即你的期望&#xff09;&#xff1b; 3、导出为mp4&#xff1b; 4、使用imagJ将MP4转换为avi格式&#xff1b; run("Movie (FFMPEG)...", "choose./…

OpenCV教程(11)-- 图像压缩操作

前言 图片压缩应用很广泛&#xff0c;如生成缩略图等。前期我在进行图片处理的过程中碰到了一个问题&#xff0c;就是如何将图片压缩到指定尺寸&#xff0c;此处尺寸指的是生成图片文件的大小。 我使用 opencv 进行图片处理&#xff0c;于是想着直接使用 opencv 进行图片压缩…

压缩技术

空格压缩(Null Compression) 将一串空格用一个压缩码代替,压缩码后面的数值代表空格的个数。 目录 1 压缩技术 2 基本的压缩技术 3 存储系统压缩 4 文件压缩 5 图形、视频和声音压缩 6 处理多媒体信息的几个... 7 数据通信压缩基本的压缩技术/压缩技术 基本的压缩技术有: 游…

avi规范

RIFF文件规范 Peter Lee 2007-10-02 摘要&#xff1a;RIFF全称为资源互换文件格式&#xff08;Resources Interchange File Format&#xff09;&#xff0c;RIFF文件是windows环境下大部分多媒体文件遵循的一种文件结构&#xff0c;常见的如WAV文件、AVI文件等。RIFF可以看成一…

wav avi计算机存储音频,把AVI和WAV文件合二为一

我们要将带字幕的AVI文件与WAV文件进行合成&#xff0c;本次使用的是VirtualDub,VirtualDub免费的多媒体剪辑软件&#xff0c;它的主要功能可以分为两大部分&#xff1a;一是对现有的电影短片文件做编辑、压缩工作&#xff1b;另一是搭配影像捕捉卡实现即时动态影像捕捉。 我们…

python压缩视频文件_python实现视频压缩功能

引言 实现一个视频压缩的功能, 性能优良 压缩视频 从61M 到 11M或者80M到15M 视频看起来没有太大损伤 缺点:耗时20s (win10,CPU:intel i7 8G运存 ) 由于压缩运算需要占用CPU资源,所以时间和性能其实很难兼顾,这个是我个人比较满意的一版 ,记录一下 话不多说,直接上代码…

AVI编码器的常见编码

在视频监控中视频的传输是对考验&#xff0c;尤其是长时间的大图片视频的存储&#xff0c;视频的压缩至关重要。了解AVI编码器就成了必须。笔者整理了在程序应用中遇到的编码器&#xff0c;希望能提供帮助。  AVI编码器的常见编码    1、Cinepak Codec by Radius  它最…