AVI视频碎片恢复工具 企业版

  [复制链接]

该用户从未签到

18

主题

23

回帖

718

积分

[INTOHARD]连长

Rank: 4

积分
718
发表于 2012-6-3 16:10:42 | 显示全部楼层 |阅读模式


企业版支持碎片  

个人版不支持碎片



avi碎片提取原来 可以参照结构 和bmp可以互转 大家可以到网上找找相关源码 很多

void   CAVI1Dlg::OnButtonOpen()   
{
AVIFileInit(); //初始化AVI
PAVIFILE   avi; //声明AVI文件句柄

int   res   =   AVIFileOpen(&avi, "avi.avi ",OF_READ,NULL); //打开AVI文件并判断
if(res   !=   AVIERR_OK)
{
AfxMessageBox( "error   #1 ");
if(avi   !=   NULL)
AVIFileRelease(avi);
return;
}

PAVISTREAM   pStream; //声明AVI流
res   =   AVIFileGetStream(avi,&pStream,streamtypeVIDEO,0); //打开AVI流并判断
if(res   !=   AVIERR_OK)
{
AfxMessageBox( "error   #2 ");
if(pStream   !=   NULL)
AVIStreamRelease(pStream);
AVIFileExit();
return;
}

int   iNumFrames; //声明AVI总共帧数
int   iFirstFrames; //声明AVI第一帧

iFirstFrames   =   AVIStreamStart(pStream); //第一帧付值并判断
if(iFirstFrames   ==   -1)
{
AfxMessageBox( "error   #3 ");
if(pStream   !=   NULL)
AVIStreamRelease(pStream);
AVIFileExit();
return;

}

iNumFrames   =   AVIStreamLength(pStream); //总帧数付值并判断
if(iNumFrames   ==   -1)
{
AfxMessageBox( "error   #4 ");
if(pStream   !=   NULL)
AVIStreamRelease(pStream);
AVIFileExit();
return;
}

BITMAPINFOHEADER   bih; //声明BMP信息头
ZeroMemory(&bih,sizeof(BITMAPINFOHEADER)); //开内存付值为0

//写入信息头
bih.biBitCount   =   24;
bih.biClrImportant   =   0;
bih.biClrUsed   =   0;
bih.biCompression   =   BI_RGB;
bih.biPlanes   =   1;
bih.biSize   =   40;
bih.biXPelsPerMeter   =   0;
bih.biYPelsPerMeter   =   0;
bih.biSizeImage   =   (((bih.biWidth   *   3)+3)&0xFFFC)*bih.biHeight;

PGETFRAME   pFrame; //声明AVI帧
pFrame   =   AVIStreamGetFrameOpen(pStream,NULL); //打开AVI帧付值

int   index   =   0;
for(int   i   =   iFirstFrames;i <iNumFrames;i++) //循环,取出每一帧,写入每个BMP
{
index   =i   -   iFirstFrames;
BYTE*   pDIB   =   (BYTE*)AVIStreamGetFrame(pFrame,index); //取出每一帧


RtlMoveMemory(&bih.biSize,pDIB,sizeof(BITMAPINFOHEADER));

BYTE*   Bits   =   new   BYTE[bih.biSizeImage]; //小东西藏在这
RtlMoveMemory(Bits,pDIB   +   sizeof(BITMAPINFOHEADER),bih.biSizeImage);
BYTE     memBitmapInfo[40];
RtlMoveMemory(memBitmapInfo,&bih,sizeof(bih));

BITMAPFILEHEADER   bfh; //声明BMP文件头,并写入
bfh.bfType   =   19778;
bfh.bfSize   =   55   +   bih.biSizeImage;
bfh.bfReserved1   =   0;
bfh.bfReserved2   =   0;
bfh.bfOffBits   =   sizeof(BITMAPINFOHEADER)   +   sizeof(BITMAPFILEHEADER);

CString   FileName; //建立文件
FileName.Format( "%d.bmp ",index);
FILE*   fp   =   fopen(FileName, "wb ");
if(fp   !=   NULL)
{
fwrite(&bfh,sizeof(bfh),1,fp); //写入文件头
fwrite(&memBitmapInfo,sizeof(memBitmapInfo),1,fp); //写入信息头
fwrite(Bits,bih.biSizeImage,1,fp); //写入每一帧
}
else
{
AfxMessageBox( "error   #5 ");
}

delete[]   Bits; //删掉小东西
}
AVIStreamGetFrameClose(pFrame); //关闭AVI帧付值,必须与打开对应
if(pStream   !=   NULL) //善后
AVIStreamRelease(pStream);
AVIFileExit();
}

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

点评

企业版运行结果是未注册。不知有什么注册方法?  发表于 2012-11-5 23:11

本帖被以下淘专辑推荐:

mgq

该用户从未签到

20

主题

224

回帖

426

积分

[INTOHARD]排长

Rank: 3Rank: 3

积分
426
QQ
发表于 2012-6-3 16:57:25 | 显示全部楼层
好工具[s:8]
回复 支持 反对

使用道具 举报

该用户从未签到

14

主题

561

回帖

1169

积分

[INTOHARD]营长

Rank: 6Rank: 6

积分
1169
发表于 2012-6-3 17:39:57 | 显示全部楼层
非常实用的工具,下了!
回复 支持 反对

使用道具 举报

  • TA的每日心情
    开心
    2014-10-29 09:53
  • 签到天数: 226 天

    [LV.7]四品道员

    93

    主题

    1312

    回帖

    2万

    积分

    Intohard Team

    Rank: 7Rank: 7Rank: 7

    积分
    22406
    QQ
    发表于 2012-6-3 19:36:48 | 显示全部楼层
    谢谢谢谢谢谢
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2014-5-11 13:27
  • 签到天数: 54 天

    [LV.5]六品通判

    46

    主题

    453

    回帖

    9051

    积分

    [INTOHARD]团长

    Rank: 8Rank: 8

    积分
    9051
    QQ
    发表于 2012-6-3 21:25:19 | 显示全部楼层
    学习   学习再学习。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2021-12-7 08:11
  • 签到天数: 254 天

    [LV.8]三品御史

    8

    主题

    713

    回帖

    1994

    积分

    [INTOHARD]营长

    Rank: 6Rank: 6

    积分
    1994
    发表于 2012-6-3 21:36:00 | 显示全部楼层
    谢谢,免费版的吗?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    41

    主题

    283

    回帖

    6820

    积分

    [INTOHARD]团长

    Rank: 8Rank: 8

    积分
    6820
    发表于 2012-6-3 22:08:30 | 显示全部楼层
    看看实用吗。。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2018-6-9 21:04
  • 签到天数: 25 天

    [LV.4]七品知县

    9

    主题

    5167

    回帖

    2799

    积分

    [INTOHARD]营长

    Rank: 6Rank: 6

    积分
    2799
    QQ
    发表于 2012-6-3 22:11:12 | 显示全部楼层
    谢谢谢谢谢谢
    本文来自: 中国硬盘基地技术论坛 详细文章参考:http://bbs.intohard.com/thread-114122-1-1.html
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2018-3-22 13:24
  • 签到天数: 288 天

    [LV.8]三品御史

    2

    主题

    551

    回帖

    2230

    积分

    [INTOHARD]营长

    Rank: 6Rank: 6

    积分
    2230
    发表于 2012-6-3 22:28:35 | 显示全部楼层
    谢谢,支持了。。。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2020-7-15 13:29
  • 签到天数: 1157 天

    [LV.10]一品大学士

    5

    主题

    1531

    回帖

    5775

    积分

    [INTOHARD]团长

    Rank: 8Rank: 8

    积分
    5775
    QQ
    发表于 2012-6-4 00:46:52 | 显示全部楼层
    好工具!!!!!!!!!!!!!!!!
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    快速回复 返回顶部 返回列表