在 MATLAB R2015b 中,以下命令:
obj = VideoReader('traffic.avi');
导致以下错误:
Error using VideoReader/init (line 619)
The VideoReader plugin libmwgstreamerplugin failed to load properly.
Error in VideoReader (line 172)
obj.init(fileName);
我已经安装了 gstreamer0.10,证据是:
alexander@alexander-desktop:~/Documents/MATLAB$ gst-
gst-codec-info-0.10 gst-inspect-0.10 gst-visualise-0.10
gst-discoverer-0.10 gst-launch-0.10 gst-xmlinspect-0.10
gst-feedback-0.10 gst-typefind-0.10 gst-xmllaunch-0.10
由于以下反馈,我假设我有所需的插件:
alexander@alexander-desktop:~/Documents/MATLAB$ gst-inspect-0.10 | grep avi
ogg: oggaviparse: Ogg AVI parser
typefindfunctions: video/x-msvideo: avi
navigationtest: navigationtest: Video navigation test
avi: avidemux: Avi demuxer
avi: avimux: Avi muxer
avi: avisubtitle: Avi subtitle parser
有人可以帮忙吗?
这是一个已知问题。您能否在此错误报告中尝试以下解决方法?
http://www.mathworks.com/support/bugreports/1246784
从错误报告链接来看,它似乎是MATLAB使用的GLIBC版本和GStreamer使用的版本的问题。
迪内什
要解决此问题,请将 MATLAB® 附带的库 libstdc++.so.6 版本替换为系统上的本机版本。
为此,请首先完成以下步骤,以确保系统的libstdc++.so.6版本高于MATLAB®附带的版本。
-
在 Linux 终端中,导航到 matlabroot/sys/os/glnxa64 并键入以下内容:
ls -l
随 MATLAB® 一起提供的库版本应该是 libstdc++.so.6.0.17。
-
导航到/usr/lib/x86_64-linux-gnu 并键入以下内容:
ls -l libstdc++*
如果生成的版本高于 6.0.17,请继续执行以下步骤。
-
导航到 matlabroot/sys/os/glnxa64。
-
执行以下操作:
取消链接 libstdc++.so.6
ln -s/usr/lib/x86_64-linux-gnu/libstdc++.so.6 libstdc++.so.6
-
重新启动 MATLAB。®