Steven Wang's Blog
C'est la vie
rss
email
twitter
新浪微博
  • Home
  • About
  • Google Profile
  • 新浪微博

Matlab7.1读xvid编码的avi视频文件

3 Comments
Posted on 六月 20 2010

这是一个困扰了我很长时间的问题,也花了很多时间寻求解决办法,今天终于找到了答案。

实验环境:MATLAB.V7.1.R14.SP3,test.avi视频文件(XVID或DX50编码)

Matlab的aviread函数可以用来读取视频文件中指定帧的图像,但只支持avi格式的视频文件,且要求编码方式为Indeo5。当实验程序读取test.avi视频文件时,会报错:

      Unable to locate decompressor to decompress video stream

即Matlab找不到相应编码的解码器。

test.avi文件可以被本机的播放器打开,所以可以确定本机上并不缺少xvid的解码器,但由于播放器可能是使用自己的解码器,而非本机的全局解码器,因此推断System32下没有与xvid相关的文件。那么首先想到的办法就是安装XviD codec或者ffdshow等解码器集合。

在安装了最新版本的XviD codec(点击下载)后,System32下出现了几个与xvid相关的文件:xvid.ax、xvidcore.dll、xvidvfw.dll,回到Matlab中,问题依旧,卸载之。

此后,尝试安装老版本的XviD codec(点击下载),System32下只新增了两个文件:xvid.ax、xvid.dll,回到Matlab中,运行程序,一切正常!

经验总结:由于Matlab7.1不是一个很新的版本,其对一些最新版本的解码器支持得不够好,尝试老版本的解码器,或许能让他们相互配合起来。并且,Matlab使用的解码器必须是位于System32下的全局解码器。之前的时间都花在尝试下载安装不同的解码器,但不是因为版本太新就是因为没有注册到System32下而失败。

后话:解决"Unable to locate decompressor to decompress video stream"的方法还有很多。可以尝试视频转换软件,改变其编码方式,或使用第三方的mmread函数,再或者使用更高版本的Matlab,其中自带mmreader函数,能读取多种编码格式的视频文件。

Matlab是个娇贵的主,视频编码问题解决后,他还有这样的要求"The supported frame types are 8-bit (indexed or grayscale), 16-bit grayscale or 24-bit (TrueColor) frames." 所以有时候不得不使用视频转换软件,以得到符合他胃口的文件。

--End--
作者:Steven Wang | 可以转载, 转载时务必以超链接形式标明文章原始出处和作者信息及版权声明
网址:http://blog.stevenwang.name/matlab-xvid-avi-239001.html

Relate Posts:

  • 在Matlab中实现RGB颜色空间转换为Lab颜色空间
  • 视频文件的分辨率、像素比、画面比之关系
  • 视频格式与视频编码的联系和区别
  • 在Matlab中实现图像直方图均衡化
  • 在Matlab中使用Roberts算子进行边缘检测

Tags: matlab  视频  视频格式  视频编码 
Categories: 数字图像处理 

3 Comments

  1. zhiwei says:
    六月 20 2010 at 23:00 Reply

    原来有关的视频解码器也有相应dll文件在system32里面啊。。

  2. zhouyuhuan says:
    一月 5 2011 at 16:22 Reply

    我也遇到这样的问题,不过我试了你说的方法,好像不行。请问我要将system32中相关的*.dll文件拷到matlab工作路径中吗?还有其它的工作要做吗?希望能得到你的帮助。

  3. Steven Wang says:
    一月 5 2011 at 18:19 Reply

    @zhouyuhuan, 你可以再尝试装一个ffdshow

Leave a Reply



About Me

    Steven Wang
    Student in Computer Software and Theory
    Life@Wuxi, Jiangsu
    Study@Jiangnan University
    more...

Feeds

  • Entries (RSS)
  • Comments (RSS)
  • 订阅到 Google Reader
  • 订阅到 抓虾
  • 订阅到 鲜果
  • 订阅到 QQ

Popular Posts

  • 围着脖子推GTalk机器人V1.0发布(27299)
  • 通过SSH + Chrome + Proxy Switchy!代理上网(19678)
  • 在GAE上部署Micolog博客系统(11307)
  • 围着脖子推V2.0 Beta1版发布 支持Twitter,新浪微博,人人网,嘀咕,做啥 同步更新(11060)
  • 围着脖子推GTalk机器人V1.0更新-增加接收Twitter更新等功能(10663)
  • 围着脖子推更新-增加同步更新网易微博、腾讯微博和搜狐微博(10482)
  • 在Matlab中实现Hough变换检测直线(8448)
  • Micolog主题(theme) —— translucence(7842)

Recent Posts

  • Steven Wang's 2011
  • 工作
  • T400升级Intel SSD
  • Java中的时区转换小结
  • 二值图像连通区标记之区域生长法
  • Steven Wang's 2010
  • 微博提醒应用上线
  • 双喜临门

Recent Comments

  • Queen:加油。...
  • Queen:hi,我来打个招呼,深圳的朋友。...
  • yu :@Steven Wang, p<...
  • ixwebhosting:文章总结的好潇洒,即将对末来学生生活说声...
  • john:希望新的一年更加美好...

Categories

  • Google App Engine(10)
  • 数字图像处理(11)
  • Micolog(7)
  • VPS(6)
  • 围着脖子推(15)
  • 人工神经网络(5)
  • 算法(11)
  • MyLife(16)
  • 媒体检索(4)
  • Others(8)
  • Python(2)

Archives

  • January 2012(1)
  • December 2011(2)
  • May 2011(1)
  • February 2011(1)
  • December 2010(3)
  • November 2010(1)
  • October 2010(1)
  • September 2010(4)
  • August 2010(2)
  • July 2010(5)
  • June 2010(4)
  • May 2010(7)

Blog roll

  • ~Issue
  • Fenng
  • 刘未鹏 | Mind Hacks
  • 林海听松
  • Yu Zheng
  • Johnny Han
  • 静静的安静
  • Dbger
  • land of promise
  • 星星
  • ISHENS|TECH
  • 天天软件园
  • leezhenchong's blog
  • 苏洋博客

  • Home
  • About
  • Google Profile
  • Twitter
  • 新浪微博
  • Login
Powered by Google App Engine  |   Designed by WebTreats  |   由 xuming 提供 Micolog程序