一、准备工作

Gstreamer是一个支持Windows,Linux,Android,iOS的跨平台的多媒体框架,应用程序可以通过管道(Pipeline)的方式,将多媒体处理的各个步骤串联起来,达到预期的效果。每个步骤通过元素(Element)基于GObject对象系统通过插件(plugins)的方式实现,方便了各项功能的扩展。

GStreamer在Linux发行版中包含官方推荐使用最新版本的系统,比如Fedora、Ubuntu、Debain或OpenSuse。

二、安装所需依赖和GStreamer

一共15个依赖(包含GStreamer),系统已安装过的不会重复安装,未安装过的将会安装。

sudo apt-get install libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libgstreamer-plugins-bad1.0-dev gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly gstreamer1.0-libav gstreamer1.0-tools gstreamer1.0-x gstreamer1.0-alsa gstreamer1.0-gl gstreamer1.0-gtk3 gstreamer1.0-qt5 gstreamer1.0-pulseaudio

三、使用GStreamer构建应用

唯一需要的其他“开发环境”是gcc编译器和文本编辑器。代码编译(compile)需要GStreamer并使用GStreamer核心库的代码,所以要通过下面的代码指定给gcc编译器gstreamer-1.0头文件和库文件的位置。

pkg-config --cflags --libs gstreamer-1.0

执行结果如下:

-pthread -I/usr/include/gstreamer-1.0 -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -lgstreamer-1.0 -lgobject-2.0 -lglib-2.0

四、验证安装是否成功

gst-inspect-1.0 --version

可以看到输出gst-inspect-1.0和GStreamer的版本信息。

(base) dzh:~$ gst-inspect-1.0 --version

gst-inspect-1.0 version 1.14.0

GStreamer 1.14.0

Unknown package origin

五、消除Anaconda的影响

由于Anaconda3的base环境也会安装gstreamer,导致错误: 无法创建管道: 无组件“rtspsrc”的问题。

1、输入命令查看已安装的gstreamer版本:

apt list --installed | grep gstreamer*

可以看到本地安装的gst工具都是1.14.5,但上面输出的版本为什么都是1.14.0呢?

2、根据之前环境变量的经验,输入命令whereis gst-launch-1.0查看它的二进制文件位置,果不其然,anaconda3下也存在一个gst-launch-1.0,然后系统在环境变量中先找到的是anaconda3的。

(base) dzh:~$ whereis gst-launch-1.0

gst-launch-1: /usr/bin/gst-launch-1.0 /home/dzh/anaconda3/bin/gst-launch-1.0

3、接下来激活base环境,conda list看一下哪些与gstreamer有关,然后移除这些包。

conda activate base

conda list

conda remove gstreamer

conda remove gst-plugins-base

4、再次验证gst-launch-1.0默认版本:

(base) dzh:~$ gst-launch-1.0 --version

gst-launch-1.0 version 1.14.5

GStreamer 1.14.5

https://launchpad.net/distros/ubuntu/+source/gstreamer1.0

舍弃无意义的社交,远离消耗你的人,学会拒绝。

参考链接

评论可见,请评论后查看内容,谢谢!!!评论后请刷新页面。