如何导入.AVI文件?

时间:2011-04-12 19:02:15

标签: wolfram-mathematica

我正在尝试导入.avi文件以进行帧处理。

Import["c:\\windows\\clock.avi","Elements"]
Import["c:\\windows\\clock.avi","VideoEncoding"]
Import["c:\\windows\\clock.avi"]
Import["c:\\windows\\clock.avi",{"Frames",{5,6}}]

Out[115]= {Animation,BitDepth,ColorSpace,Data,Duration,FrameCount,FrameRate,
           Frames,GraphicsList,ImageList,ImageSize,VideoEncoding}
Out[116]= rle8
Out[117]= {1,2,3,4,5,6,7,8,9,10,11,12}
During evaluation of In[115]:= Import::fmterr: Cannot import data as video format.
During evaluation of In[115]:= Import::fmterr: Cannot import data as video format.
Out[118]= {$Failed,$Failed}  

它报告了我测试的所有avi文件的相同错误。

任何提示?

1 个答案:

答案 0 :(得分:7)

AVI是一种容器格式。您可以使用完全奇怪和罕见的格式对电影进行编码,并将其称为.avi。

您可以使用像freemake这样的视频格式转换器将您的电影转换为Mathematica可以使用的格式。请与Internal`$VideoEncodings一起检查可识别的内部格式。

通常,Quicktime(.mov)最简单。 AVI有时负载很好,但即使我有正确的编解码器并且所有玩家都能玩它,也根本不显示。

如果其他所有方法都失败了,您可以尝试VirtualDub。它可以读取AVI并将它们分成单独的图像,可以很容易地导入到mma中。

修改
我记得在我最近的视频项目中,完全没有阅读我从FireFox插件下载的AVIs下载一部YouTube电影(尽管它在我拥有的所有播放器,VLC,Media Player Classic,Windows Media播放器等中播放)。 )。 DH转换为.mov,但DH将其徽标插入其中。最后,我通过VirtualDub使用FreeMake进行下载并转换为单独的帧。