如何阅读.avi文件C++

Sta*_*hil 2 c++ opencv file-upload file avi

我对c ++做的很少,所以对我这么做.

我想在.avi视频文件中读取我正在制作的程序.我将文件位置保存为string.有没有关于在c ++中使用.avi文件的好教程,还是有人知道读一个人的内容?它和普通文件一样吗?

谢谢您的帮助.我在网上看,但我发现的每个帖子都是一个悬而未决的问题.

编辑根据要求,这是一个小解释.我有一个先前提出的SO问题更详细,但这是我想要做的:

我正在制作一个可以检测面部的程序(虽然是OpenCV)截至目前,我已经获得了一个视频处理器程序,它将检测一个帧上的每个面部,并将该帧作为图像和CvRec面部返回.我想拍摄这些面孔并测试它们以验证它们都是真正的面孔.

在我拥有所有面孔(经过测试)后,我想拍摄图像并一起测试它们.我测试每个帧上的面的大小和距离变化.如果面部通过这个帧长度为两秒,那么我想裁剪面部并使其成为每帧的主题.

在裁剪每个帧之后,我想为用户保存新的视频文件.

希望这会有所帮助.如果有人需要更好的解释,请告诉我.

Alo*_*ave 5

首先,一点背景.

什么是AVI?
AVI代表 Audio Video Interleave.这是 RIFF(资源交换文件格式)的特例.AVI由Microsoft定义,它是音频/视频数据的最常见格式.

我假设您想要读取avi文件并解码压缩视频帧.AVI文件就像任何其他普通文件一样,您可以使用fread()(在C中)或iostream(在C++中)打开avi文件并读取它的内容.但是avi文件的内容是压缩格式的视频帧.压缩允许更大尺寸的视频内容有效地打包在更少的存储空间中.为了理解这种压缩数据,您必须解码编码数据格式.您将不得不研究描述AVI编码如何完成的标准.然后提取并解码帧.现在,当馈送到视频设备时,该原始视频数据将以视频格式显示.