我正在使用 Ubuntu 16.04。为了解决这问题,我使用安装了 gstreamer这链接。为了方便起见,我将安装脚本发布在这里:
# Set your target branch
BRANCH="1.12.5"
exec > >(tee build-gstreamer.log)
exec 2>&1
[ ! -d gstreamer ] && git clone git://anongit.freedesktop.org/git/gstreamer/gstreamer
[ ! -d gst-plugins-base ] && git clone git://anongit.freedesktop.org/git/gstreamer/gst-plugins-base
[ ! -d gst-plugins-good ] && git clone git://anongit.freedesktop.org/git/gstreamer/gst-plugins-good
[ ! -d gst-plugins-bad ] && git clone git://anongit.freedesktop.org/git/gstreamer/gst-plugins-bad
[ ! -d gst-libav ] && git clone git://anongit.freedesktop.org/git/gstreamer/gst-libav
[ ! -d gst-plugins-ugly ] && git clone git://anongit.freedesktop.org/git/gstreamer/gst-plugins-ugly
export LD_LIBRARY_PATH=/usr/local/lib/
cd gstreamer
git checkout $BRANCH
./autogen.sh --disable-gtk-doc
make
sudo make install
cd ..
cd gst-plugins-base
git checkout $BRANCH
./autogen.sh --disable-gtk-doc
make
sudo make install
cd ..
cd gst-plugins-good
git checkout $BRANCH
./autogen.sh --disable-gtk-doc
make
sudo make install
cd ..
cd gst-plugins-bad
git checkout $BRANCH
./autogen.sh --disable-gtk-doc --enable-orc
make
sudo make install
cd ..
cd gst-plugins-ugly
git checkout $BRANCH
./autogen.sh --disable-gtk-doc --enable-orc
make
sudo make install
cd ..
cd gst-libav
git checkout $BRANCH
./autogen.sh --disable-gtk-doc --enable-orc
make
sudo make install
cd ..
sudo ldconfig
安装后,我意识到这不是我需要的版本(1.12.5)。此时gst-launch-1.0 --gst-version
返回GStreamer Core Library version 1.12.5
。因此,我尝试通过以下方式删除所有内容:
sudo apt-get remove *gstreamer*
sudo apt-get purge *gstreamer*
运行这些命令后,dpkg -l|grep gstreamer
没有返回任何预期的结果。我继续使用 gstreamer 网站中的命令安装我之前的 gstreamer 版本,即 1.83.x。但是,运行gst-launch-1.0 --gst-version
仍然返回GStreamer Core Library version 1.12.5
。
sudo ldconfig
我认为这与第一个安装脚本中的命令有关。我需要有关撤消这些更改的指导。
编辑1:
删除大量文件和目录后,我的输出gst-launch-1.0 --gst-version
变为:GStreamer Core Library version 1.8.3.
但是,gst-inspect-1.0 --version
给出输出:
gst-inspect-1.0 version 1.12.5
GStreamer 1.8.3
Unknown package origin
我该如何修复 的版本gst-inspect
?
答案1
尝试检查:
which gst-inspect-1.0
which gst-launch-1.0
两者的位置应该平等。
我遇到过类似的问题,但sudo ldconfig
后来sudo make install
解决了这个问题。请注意,当指定export LD_LIBRARY_PATH=/usr/local/lib/
(如脚本中所示)强制命令sudo make install
在 中为 gstreamer 创建 *.so 文件时/usr/local/lib/
,但 gst-inspect-1.0、gst-launch-1.0 使用来自 /usr/lib(不是本地)的二进制文件。因此,只需将 /usr/lib,bin 与 /usr/local/lib,bin 同步(符号链接或复制)。在我的情况下,每次 sudo make install 后执行 ldconfig 即可解决问题。