免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1011 | 回复: 0
打印 上一主题 下一主题

mpeg4的解码演示程序 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-11-23 00:01 |只看该作者 |倒序浏览
北京理工大学 20981班 陈罡
xvid从上次开始就已经深深吸引住我的视线,上一篇已经讲解了vs2005下面编译它的方法,很多朋友会问,这个xvid-core编译完毕后,如何使用呢?我就写了一个解码的程序(vs2005下编译通过),感兴趣的朋友可以看附件。下面的是一个在vs2005下面运行的效果图,加入了非常简单的双缓冲技术,感兴趣的朋友可以下载它的源代码包看看。
有几个的设置需要注意的地方:
(1)vs2005的additional include directories里面需要加入xvidcore-1.1.2\src这个目录,这样编译器才会找到#include "xvid.h"
(2)在additional lib directories里面加入xvidcore-1.1.2\bin目录,然后在additional dependicies里面加入libxvidcore.lib这样,就可以把xvid静态的链接到你的程序里面了。
(3)具体的解码过程十分简单,读入mpeg4数据,然后解一帧出来,然后显示,然后解下一帧。这个过程是循环往复的,直到到达文件末尾。而且从代码上看起来,到达文件末尾后,似乎解码器里面还有没有显示完的图像,所以又一个循环,去读取一下,就是后面的flush decoder里面的内容了。这也难怪,mpeg4本来就是那种预测型的视频编码,每一帧都是根据前一帧计算得出的,所以数据传入完了,还能继续预测出几帧的图像也是很正常的。


文件:
XvidDecTest.rar
大小:
700KB
下载:
下载
很多朋友会问,你的那个test.mp4是怎么生成的,其实很简单,从网上下载一个yuv测试序列,注意必须是qcif的(176x144)的,然后进入xvidcore-1.1.2\build\win32\bin里面,找到xvid_encraw程序,然后运行它具体的命令行使用方式如下:
xvid_encraw -type 0 -i xxxxxx.yuv -w 176 -h 144 -o test.mp4
这时候会输出一大堆编码时候帧的信息。一会儿功夫就编码好了,注意这里是test.mp4,我们只需要把编码好的文件保存程test.mp4,然后把它放到与这个XvidDecTest.exe相同的目录下面,运行demo程序,就可以看到结果了。偶做了简单的双缓冲,其实还是太笨,而且也懒得直接显示yuv420的解码结果(yuv420转rgb的函数已经写好了),这个东西权当作练手的一个方法了。下次要开始像pocket pc上面移植了。
祝大家晚安。


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/26691/showart_204941.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP