2015-04-06 39 views
0

我想在Windows 7 64位机器上使用Matlab 2013a中的videoWriter。我也有安装了Matlab的2009a的(这可能是问题)错误在Matlab中使用videoWriter(asyncio)

我的代码失败在这里:

vid = VideoWriter('TestVideo'); 

这给了我下面的错误:使用VideoWriter(线240) 错误 未定义的变量“ASYNCIO “或类”asyncio.Channel“。

现在,如果我这样做:

vid = VideoWriter('TestVideo.mp4','MPEG-4'); 

我得到这个错误:使用VideoWriter 错误(线168) 指定的配置文件是无效的。

我试过安装编解码器,但没有帮助。

我在某处读到某人有类似的问题,这是由于一个腐败的路径,它可能是由一个较老的Matlab(2007)安装引起的,但没有说明最终是如何解决它的。我试图将Matlab目录中的asyncio文件夹添加到Matlab路径,但是再次没有运气。 我进一步试图找出什么videoWriter关于asyncio做什么,但在代码中找不到任何线索,我真的不知道asyncio是什么。 卸载Matlab 2009a不是一个选项。

那么谁能帮助我吗?

BR格姆

回答

1

所以我找到了我自己的问题的答案。这是被打破的道路。通过将Matlab搜索路径设置为默认值,可以很容易地解决问题。

+0

你能详细说一下吗?你遵循什么程序? – user2175594 2015-07-01 04:27:41

+0

问题是我有Matlab 2009和2013两个版本,他们都在默认的MATLAB文件夹中使用相同的'pathdef.m'文件。如果你玩弄你的路径,它可能会混淆其中一个Matlab版本的路径。因此,现在使用位于Matlab安装目录(C:\ Program Files \ MATLAB \ R2013a \ toolbox \ local)中工具箱文件夹中的'startup.m'文件,而不是在Matlab中使用'Set Path'。启动文件在Matlab启动时运行,并且在那里您可以定义自定义路径等。因此,将路径返回到默认值并创建一个'startup.m'文件。你可以抬头看看; '帮助创业' – Gormd 2015-07-02 05:31:59

2

您需要使用调用VideoWriter的第二种方式....这样做:

vid = VideoWriter('TestVideo.mp4','MPEG-4'); 

但是,您收到此错误:

Error using VideoWriter (line 168) The specified profile is not valid. 

这是由于您可能没有在计算机上安装MPEG-4编解码器。你可以在MATLAB中进行验证:

profiles = VideoWriter.getProfiles() 

在命令提示符中运行上面的代码。您可以使用VideoWriter获得可用于将视频写入文件的所有可能配置文件的列表。例如,我使用的是Mac OS MATLAB R2013a,这就是我得到:

>> profiles = VideoWriter.getProfiles() 
    Summary of installed VideoWriter profiles: 

      Name          Description        
    ---------------- ----------------------------------------------------------------------- 
    Archival   Video file compression with JPEG 2000 codec with lossless mode enabled. 
    Grayscale AVI An AVI file with Grayscale Video Data 
    Indexed AVI  An AVI file with Indexed Video Data 
    MPEG-4   A MPEG-4 file with H.264 Compression 
    Motion JPEG 2000 Video file compression with JPEG 2000 codec. 
    Motion JPEG AVI An AVI file with Motion JPEG compression 
    Uncompressed AVI An AVI file with uncompressed RGB24 video data 

如果您没有看到MPEG-4您的配置文件列表中,那么您目前还没有安装配置文件。因此,您将不得不使用MATLAB为您提供的配置文件之一。


既然你运行的是Windows,一个建议,我已经是安装Windows 7解码包套件:http://www.windows7codecs.com/。我知道你说过,当你安装编解码器时,它不起作用,但如果你还没有做到这一点,你可以尝试上面的链接。

上述网站包含您需要在Windows中播放视频文件所需的所有编解码器。这将有望让您在安装编解码器后使用VideoWriter

+0

嗨雷,谢谢你的回复。我按照您的建议安装了编解码器,但仍然失败。 使用VideoWriter时出错(第168行) 指定的配置文件无效。 “编解码器检查”也不起作用。使用audiovideo.writer.ProfileInfo 错误错误:文件:ProfileInfo.m行:106列:24个 参数来导入必须要么终止或者指定一个完全合格的类名是“*”: ‘internal.DispTable’未通过此测试。 我也曾尝试运行Matlab作为管理员,但这也没有帮助。 – Gormd 2015-04-06 09:15:01

0

这是一个老问题,但我也想补充我的两分钱。什么解决了我的问题是看我的Windows版本。许多公司在其计算机上安装了Windows N版本。这些版本不具备播放和创建媒体文件所需的所有编解码器和软件。所以,如果你在工作中使用Matlab,这可能是问题所在。

修复程序正在下载Windows Media Feature Pack for N Versions并确保没有安装其他编解码器包,如K-Lite。