Ubuntu 17.04下MATLAB的VideoReader无法运行求解决方案
解决Ubuntu 17.04上MATLAB VideoReader依赖gstreamer0.10的问题
我之前也踩过这个坑——Ubuntu 17.04确实把gstreamer0.10从官方源里移除了,直接安装肯定行不通,而且gstreamer1.0确实没法兼容MATLAB旧版本的VideoReader。不想降级系统的话,给你几个亲测有效的解决办法:
办法一:手动下载Ubuntu 16.04的gstreamer0.10 deb包安装
Ubuntu 16.04的官方源里还保留着gstreamer0.10的包,我们可以直接下载对应架构的deb文件来安装:
- 先确认你的MATLAB是64位还是32位,然后找到这些关键包:
gstreamer0.10-toolsgstreamer0.10-plugins-basegstreamer0.10-plugins-goodgstreamer0.10-plugins-ugly
- 把这些deb文件下载到本地后,打开终端切换到下载目录,执行:
sudo dpkg -i *.deb - 如果出现依赖错误,先执行
sudo apt-get -f install自动修复;要是还有冲突,就手动下载对应的依赖旧版本deb包一起安装。
办法二:给MATLAB指定gstreamer0.10的库路径
如果已经通过其他方式(比如拷贝旧系统的库)获得了gstreamer0.10的库文件,可以让MATLAB优先加载这些旧库:
- 打开终端,先执行以下命令设置环境变量,再启动MATLAB:
(32位系统的话路径改为export LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libgstreamer-0.10.so.0 matlab/usr/lib/i386-linux-gnu/,请根据实际库位置调整) - 要是想每次启动MATLAB都自动生效,可以编辑MATLAB的启动脚本:
- 找到MATLAB安装目录下的
bin/matlab文件,比如/usr/local/MATLAB/R2017b/bin/matlab - 在文件开头注释之后,加上刚才的
export LD_PRELOAD命令
- 找到MATLAB安装目录下的
办法三:源码编译安装gstreamer0.10
如果deb包安装遇到无法解决的依赖问题,可以自己编译源码:
- 按顺序下载gstreamer0.10的核心库和插件源码:
- gstreamer核心库(gstreamer-0.10.36.tar.bz2)
- gst-plugins-base-0.10.36.tar.bz2
- gst-plugins-good-0.10.31.tar.bz2
- gst-plugins-ugly-0.10.19.tar.bz2
- 依次编译安装每个包,编译时指定统一的安装路径(比如
/usr/local/gstreamer0.10):./configure --prefix=/usr/local/gstreamer0.10 make sudo make install - 最后设置MATLAB的环境变量,让它能找到这些库:
export LD_LIBRARY_PATH=/usr/local/gstreamer0.10/lib:$LD_LIBRARY_PATH matlab
注意事项
- 安装完成后一定要重启MATLAB,再测试
v = VideoReader('flame.avi'),确保生效。 - 64位MATLAB必须搭配64位的gstreamer0.10库,否则会出现架构不兼容的错误。
内容的提问来源于stack exchange,提问作者Taylor
相关产品推荐
相关产品推荐

