自己写的一段视频,只能用暴风影音播放,

djh512 2012-09-26 10:57:24
代码如下

CvVideoWriter* writer = cvCreateVideoWriter("D:/VideoTest/911.avi", CV_FOURCC('D', 'I', 'V', 'X'), fps, size); //创建视频文件

if (writer == NULL)
{
printf("创建失败\n");
return ;
}

IplImage* logpolar_frame = cvCreateImage(size, IPL_DEPTH_8U, 3);

cvNamedWindow("lovely", CV_WINDOW_AUTOSIZE);
FILE * fp = fopen("D:/VideoTest/911.avi", "rb");
ftp.CreateFileHead(L"91111.avi");
int cnt = 0;
while ((bgr_frame = cvQueryFrame(capture)) != NULL)
{
cnt++;
cvShowImage("lovely", bgr_frame);
cvWriteFrame(writer, bgr_frame);
char c = cvWaitKey(40); //间隔时间

char buf[1024*5];
memset(buf, 0, 1024*5);
fread(buf, 1024*5, 1, fp);
ftp.WriteAdd(buf, 1024*5);

if (c == 27)
{
cvDestroyWindow("lovely");
break; //等待ESC键
}
}


ftp的两个函数如下


//写文件头,以写的方式创建一个文件头
BOOL CFtp::CreateFileHead(LPCTSTR pFileName)
{
try
{
m_pFile = m_pConnect->OpenFile(pFileName, GENERIC_WRITE, FTP_TRANSFER_TYPE_BINARY);
return true;
}
catch(...)
{
return false;
}
}

bool CFtp::WriteAdd(char * buf, int len)
{
try
{
if (m_pFile == NULL)
return false;

m_pFile->Write(buf, len);
return true;
}
catch(...)
{
return false;
}
}


avi文件格式,文件头里面的部分信息是不完整的,也不确定什么时候结束,用暴风影音可以播放
其他的播放器不行,现在可以怎么调整让windows media player也能播放啊
...全文
112 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
diffmaker 2012-09-27
  • 打赏
  • 举报
回复
AVI格式编码也有多种,要想播放,需要有相应的解码器。
去下载相关的解码器或者用视频软件对AVI进行重编码?

2,275

社区成员

发帖
与我相关
我的任务
社区描述
多媒体/设计/Flash/Silverlight 开发 Flash流媒体开发
社区管理员
  • Flash流媒体开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧