AVIFileInit();
PAVIFILE file;
int res = AVIFileOpen(&avi, "D:\\test.264", OF_READ, NULL);
if (res != 0)
{
MessageBox( "error");
}
if(file != NULL)
AVIFileRelease(avi);
各位看看哪里出了问题
6 个解决方案
#1
AVIFileOpen只能打开AVI格式的文件。
#2
===========================================
我想用vfw处理h264文件 有什么办法吗?
#3
1.确认文件格式是AVI格式。
2.用vfw处理的话确认安装了vfw h264 解码器。
3.vfw h264解码器支持AVI文件中的H264编码格式。
2.用vfw处理的话确认安装了vfw h264 解码器。
3.vfw h264解码器支持AVI文件中的H264编码格式。
#4
我想用安装了x264vfw 想在程序中调用它将bmp转为视频,比如我可以用如下形式:
DWORD dwCodec = mmioFOURCC('X','V','I','D'), 现在但是h264的编码器用四个字符表示是什么啊?怎样枚举出编码器的名字,msdn中的vcm章节吗?我没看明白啊
#5
试试 'x''2''6''4'.
graphedit可以看到编码器名字。
graphedit可以看到编码器名字。
#6
============================================
我用'x''2''6''4'后弹出了一个对话框 里面有如下信息,并且生成了一个只有几KB且不能播放的视频:
x264vfw [warning]: Few frames probably would be lost. Ways to fix this:
x264vfw [warning]: - if you use VirtualDub or its fork than you can enable 'VirtualDub Hack' option
x264vfw [warning]: - you can enable 'File' output mode
x264vfw [warning]: - you can enable 'Zero Latency' option
我按照信息改了x264vfw的设置之后,生成的视频就是0KB了。
我有几个问题;1.既然出现了这个提示信息,是不是就是说明在程序中使用DWORD dwCodec = mmioFOURCC('x','2','6','4')的形式调用编码器是正确的?
2.如果调用方式不正确,我在MSDN中看到有枚举解码器的循环,可是参数我没搞懂,您帮我看看,如果我想在直接运行,这里面的参数应该是什么?
for (i=0; ICInfo( fccType, i, & icinfo); i++)
{
hic = ICOpen(icinfo.fccType, icinfo.fccHandler, ICMODE_QUERY);
if (hic)
{
// Skip this compressor if it can't handle the format.
if (fccType == ICTYPE_VIDEO && pvIn != NULL &&
ICDecompressQuery(hic, pvIn, NULL) != ICERR_OK)
{
ICClose(hic);
continue;
}
// Find out the compressor name.
ICGetInfo(hic, &icinfo, sizeof(icinfo));
// Add it to the combo box.
n = ComboBox_AddString(hwndC,icinfo.szDescription);
ComboBox_SetItemData(hwndC, n, hic);
}
}
#1
AVIFileOpen只能打开AVI格式的文件。
#2
===========================================
我想用vfw处理h264文件 有什么办法吗?
#3
1.确认文件格式是AVI格式。
2.用vfw处理的话确认安装了vfw h264 解码器。
3.vfw h264解码器支持AVI文件中的H264编码格式。
2.用vfw处理的话确认安装了vfw h264 解码器。
3.vfw h264解码器支持AVI文件中的H264编码格式。
#4
我想用安装了x264vfw 想在程序中调用它将bmp转为视频,比如我可以用如下形式:
DWORD dwCodec = mmioFOURCC('X','V','I','D'), 现在但是h264的编码器用四个字符表示是什么啊?怎样枚举出编码器的名字,msdn中的vcm章节吗?我没看明白啊
#5
试试 'x''2''6''4'.
graphedit可以看到编码器名字。
graphedit可以看到编码器名字。
#6
============================================
我用'x''2''6''4'后弹出了一个对话框 里面有如下信息,并且生成了一个只有几KB且不能播放的视频:
x264vfw [warning]: Few frames probably would be lost. Ways to fix this:
x264vfw [warning]: - if you use VirtualDub or its fork than you can enable 'VirtualDub Hack' option
x264vfw [warning]: - you can enable 'File' output mode
x264vfw [warning]: - you can enable 'Zero Latency' option
我按照信息改了x264vfw的设置之后,生成的视频就是0KB了。
我有几个问题;1.既然出现了这个提示信息,是不是就是说明在程序中使用DWORD dwCodec = mmioFOURCC('x','2','6','4')的形式调用编码器是正确的?
2.如果调用方式不正确,我在MSDN中看到有枚举解码器的循环,可是参数我没搞懂,您帮我看看,如果我想在直接运行,这里面的参数应该是什么?
for (i=0; ICInfo( fccType, i, & icinfo); i++)
{
hic = ICOpen(icinfo.fccType, icinfo.fccHandler, ICMODE_QUERY);
if (hic)
{
// Skip this compressor if it can't handle the format.
if (fccType == ICTYPE_VIDEO && pvIn != NULL &&
ICDecompressQuery(hic, pvIn, NULL) != ICERR_OK)
{
ICClose(hic);
continue;
}
// Find out the compressor name.
ICGetInfo(hic, &icinfo, sizeof(icinfo));
// Add it to the combo box.
n = ComboBox_AddString(hwndC,icinfo.szDescription);
ComboBox_SetItemData(hwndC, n, hic);
}
}