【问题标题】:error using videoWriter in Matlab (asyncio)在 Matlab (asyncio) 中使用 videoWriter 时出错
【发布时间】:2015-04-06 06:59:04
【问题描述】:

我正在尝试在 Windows 7 64 位机器上的 Matlab 2013a 中使用 videoWriter。我还安装了 Matlab 2009a(这可能是问题所在)

我的代码在这里失败:

    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 戈姆

【问题讨论】:

    标签: matlab


    【解决方案1】:

    你需要使用第二种方式调用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 Codec Pack 套件:http://www.windows7codecs.com/。我知道您说过,当您安装编解码器时,它不起作用,但如果您还没有安装,可以尝试上面的链接。

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

    【讨论】:

    • 嗨,雷,感谢您的回复。我已经按照您的建议安装了编解码器,但仍然失败。使用 VideoWriter 时出错(第 168 行) 指定的配置文件无效。 “编解码器检查”也不起作用。使用 audiovideo.writer.ProfileInfo 错误错误:文件:ProfileInfo.m 行:106 列:24 IMPORT 的参数必须以“.*”结尾,或者指定一个完全限定的类名:“internal.DispTable”未通过此测试。我也尝试过以管理员身份运行 Matlab,但这也没有帮助。
    【解决方案2】:

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

    【讨论】:

    • 您能详细说明一下吗?你具体遵循了什么程序?
    • 问题是我有 Matlab 2009 和 2013,它们都在默认的 MATLAB 文件夹中使用相同的 'pathdef.m' 文件。如果你玩弄你的路径,它可能会弄乱 Matlab 版本之一的路径。因此,我现在使用位于我的 Matlab 安装目录(C:\Program Files\MATLAB\R2013a\toolbox\local)的工具箱文件夹中的“startup.m”文件,而不是在 Matlab 中使用“设置路径”。启动文件在 Matlab 启动时运行,您可以在其中定义自定义路径等。因此,将路径恢复为默认值并创建一个“startup.m”文件。你可以抬头看; '帮助启动'
    【解决方案3】:

    这是一个老问题,但我也想加两分钱。为我解决问题的是查看我的 Windows 版本。许多公司的计算机上都安装了 Windows N 版本。这些版本没有播放和创建媒体文件所需的所有编解码器和软件。因此,如果您在工作中使用 Matlab,这可能是问题所在。

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

    【讨论】:

      猜你喜欢
      • 2014-02-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-11
      • 1970-01-01
      • 2021-12-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多