社区
多媒体/流媒体开发
帖子详情
问问xvid编码器的用法?
ralphchen
2006-01-17 10:01:46
编译得到xvidvfw.dll,安装也成功了。但是不会用。请高人指点!
...全文
480
3
打赏
收藏
问问xvid编码器的用法?
编译得到xvidvfw.dll,安装也成功了。但是不会用。请高人指点!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
lserlohn
2006-04-28
打赏
举报
回复
就是写一个播放器,构建一个Graph,中间加入这个Filter,很基础,SDK中有很多源码
张友邦
2006-04-28
打赏
举报
回复
答非所问,只想赚分。有病!
yyhzpk
2006-01-22
打赏
举报
回复
这是利用xvid解码库解视频画面存为bmp图片的代码
xvid_dec_stats_t stats;
int length;
// m_create.width = 720;
// m_create.height = 480;
memset(&stats, 0, sizeof(stats));
stats.version = XVID_VERSION;
if (m_create.handle == NULL)
{
if (xvid_decore_func == NULL)
AfxMessageBox("FAil");
if (xvid_decore_func(0, XVID_DEC_CREATE, &m_create, 0) < 0)
{
AfxMessageBox("FAil");
}
}
AM_MEDIA_TYPE mtOut;
// mtOut.majortype = MEDIATYPE_Stream;
mtOut.subtype = /*MEDIASUBTYPE_RGB32;//*/MEDIASUBTYPE_RGB24;
mtOut.formattype = FORMAT_VideoInfo;
VIDEOINFOHEADER format;
format.bmiHeader.biHeight = 288;
format.bmiHeader.biWidth = 352;
format.bmiHeader.biBitCount = 24;
mtOut.pbFormat = (BYTE*)&format;
ChangeColorspace(mtOut.subtype, mtOut.formattype, mtOut.pbFormat);
// ChangeColorspace(MEDIASUBTYPE_RGB24,FORMAT_VideoInfo,);
BYTE *pbuffer = new BYTE[20*1024*1024];
BYTE *pbufferout = new BYTE[20*1024*1024];
memset(pbuffer,0,20*1024*1024);
memset(pbufferout,0,20*1024*1024);
CFile bmpFile("D:\\1.dbt",CFile::modeReadWrite);
bmpFile.Read(pbuffer,2*1024*1024);
bmpFile.Close();
m_frame.length = 2*1024*1024;
m_frame.bitstream = pbuffer;
m_frame.output.plane[0] = pbufferout;
m_frame.general = XVID_LOWDELAY;
m_frame.general |= XVID_DISCONTINUITY;
m_frame.brightness = g_config.nBrightness;
m_frame.output.csp &= ~XVID_CSP_VFLIP;
m_frame.output.csp |= rgb_flip^(g_config.nFlipVideo ? XVID_CSP_VFLIP : 0);
//////////////////////////////////////////////////////////////////////////
repeat :
// memset(pbuffer,0,20*1024*1024);
// memset(pbufferout,0,20*1024*1024);
length = xvid_decore_func(m_create.handle, XVID_DEC_DECODE, &m_frame, &stats);
// if (length < 0)
// {
// return ;
// }
// else if (g_config.aspect_ratio == 0 || g_config.aspect_ratio == 1 && forced_ar == false)
// {
// }
if(stats.type == XVID_TYPE_BVOP)
AfxMessageBox("BBB");
if(stats.type == XVID_TYPE_IVOP || stats.type == XVID_TYPE_BVOP || stats.type == XVID_TYPE_PVOP)
{
BITMAPFILEHEADER hdr;
BITMAPINFOHEADER bi;
memset(&hdr,0,sizeof(BITMAPFILEHEADER));
memset(&bi,0,sizeof(BITMAPINFOHEADER));
bi.biPlanes = 1;
bi.biCompression = BI_RGB;
bi.biBitCount = 24;
bi.biHeight = 288;
bi.biWidth = 352;
bi.biSize = sizeof(BITMAPINFOHEADER);
bi.biSizeImage = 0;
hdr.bfType = ((WORD)('M'<<8)|'B');
hdr.bfSize = 3*352*288 + sizeof(hdr)+sizeof(bi);
hdr.bfReserved1 = 0;
hdr.bfReserved2 = 0;
CFile outFile("D:\\out.bmp",CFile::modeCreate|CFile::modeReadWrite);
outFile.Write(&hdr,sizeof(BITMAPFILEHEADER));
outFile.Write(&bi,sizeof(BITMAPINFOHEADER));
outFile.Write(pbufferout,3*352*288);
outFile.Close();
}
delete[] pbuffer;
delete []pbufferout;
XviD
: MPEG-4视频
编码器
的实践应用
本文介绍了
XviD
作为一款开源MPEG-4视频
编码器
的核心功能与应用场景。涵盖了视频压缩原理、质量评估标准、编码参数调整方法以及解码兼容性等内容。重点解析了
XviD
在压缩效率与视频质量之间的平衡策略,展示了其在流媒体和多媒体内容制作中的实际应用。
Xvid
视频压缩
编码器
设置指南
本文档详细介绍了
Xvid
视频
编码器
的配置方法,包括如何选择合适的ProfileLevel、Quantizationtype等参数,以及如何根据视频内容调整B-VOPs、Motionsearchprecision等高级设置,以获得最佳的压缩比和画质。
调用
xvid
实现解码
本文介绍了调用
xvid
实现解码的方法,包括初始化解码器、解码单帧的代码实现,还涉及
XviD
编解码实践,如
编码器
输入格式和解码器输出格式的设置,强调了stride步长与视频格式的关系,同时给出
xvid
使用小技巧,如解决绿屏问题和获取编码后帧长度。
【编解码格式】DivX系列、
XviD
本文讲述了DivX公司的编解码器发展历程,包括DivX4.0和DivX6的更新,以及
XviD
作为OpenDivX分支的创建背景,强调了
XviD
作为开源
编码器
与DivX的竞争。同时提到了专利法对
XviD
在某些地区的法律影响。,
XVID
和DIVX的故事
本文讲述了DivX和
XviD
这两种MPEG-4编码格式的发展历程。DivX起源于微软的MPEG-4
编码器
,后因商业化转变引发争议。
XviD
作为开源替代品崛起,成为当今速度最快的MPEG-4
编码器
之一。
多媒体/流媒体开发
2,554
社区成员
20,277
社区内容
发帖
与我相关
我的任务
多媒体/流媒体开发
专题开发/技术/项目 多媒体/流媒体开发
复制链接
扫一扫
分享
社区描述
专题开发/技术/项目 多媒体/流媒体开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章