gstreamer安装
编译完之后,在/usr/bin下有如下可执行程序,这些是核心组件。安装之后在/usr/bin有如下可执行程序。接下来下载插件组源码。
sudo apt install libsoup2.4-dev
meson --reconfigure -Dgst-plugins-ugly:x264=enabled -Dgst-plugins-bad:srt=enabled build
sudo apt install -y gstreamer1.0-plugins-bad
gst-inspect-1.0 srtsink
先安装依赖:
sudo apt-get install build-essential
sudo apt-get install meson
sudo apt-get install ninja-build
sudo apt-get install python3-pip
sudo pip3 install --upgrade meson //pip3 install --upgrade meson -i https://mirrors.aliyun.com/pypi/simple/ 有时显示导致无法安装
sudo apt-get install bison
sudo apt install libglib2.0-dev
sudo apt install flex
sudo apt install bison
wget https://gstreamer.freedesktop.org/src/gstreamer/gstreamer-1.20.3.tar.xz
tar -xf gstreamer-1.20.3.tar.xz
cd gstreamer-1.20.3
meson build --prefix=/usr
ninja -C build
sudo ninja -C build install
编译完之后,在/usr/bin下有如下可执行程序,这些是核心组件
gst-launch-1.0 //各种命令行执行工具
gst-stats-1.0 //分析gstreamer日至文件,并生成统计报告
gst-tester-1.0 //测试元素和管道的工具
gst-inspect-1.0 //查看插件和元素的详细信息,显示插件的属性,能力,信号等。
gst-typefind-1.0 //用于分析媒体文件的类型
接下来下载插件组源码
wget https://gstreamer.freedesktop.org/src/gst-plugins-base/gst-plugins-base-1.20.3.tar.xz
wget https://gstreamer.freedesktop.org/src/gst-plugins-good/gst-plugins-good-1.20.3.tar.xz
tar -xf gst-plugins-base-1.20.3.tar.xz
tar -xf gst-plugins-good-1.20.3.tar.xz
编译base插件组
cd gst-plugins-base-1.20.3
meson build --prefix=/usr
ninja -C build
sudo ninja -C build install
安装之后在/usr/bin有如下可执行程序
gst-device-monitor-1.0 //用于探测,列出和监控设备,如视频源
gst-discoverer-1.0 //用于分析媒体文件的元数据,如格式,编码,时长等。
gst-play-1.0 //用于播放媒体
编译good插件组
cd gst-plugins-good-1.20.3
meson build --prefix=/usr
ninja -C build
sudo ninja -C build install
这个装完并没有可执行程序,但是他会安装各种库
这些插件也可以使用命令安装,他们互相独立,除了第一个其他的都是库的安装,并不会得到可执行程序:
sudo apt-get install libgstreamer-plugins-base1.0-dev //基础插件
sudo apt-get install gstreamer1.0-plugins-good //不错的插件
sudo apt-get install gstreamer1.0-plugins-ugly //不太好的插件
sudo apt-get install gstreamer1.0-plugins-bad //不好的插件
Gstreamer 框架根据各个模块的成熟度以及所使用的开源协议,将 core 及 plugins 置于不同
的源码包中:
gstreamer: 包含 core framework 及 core elements。
gst-plugins-base: gstreamer 应用所需的必要插件。
gst-plugins-good: 高质量的采用 LGPL 授权的插件。
gst-plugins-ugly: 高质量,但使用了 GPL 等其他授权方式的库的插件,比如使用 GPL 的x264,x265。
gst-plugins-bad: 质量有待提高的插件,成熟后可以移到 good 插件列表中。
gst-libav: 对 libav 封装,使其能在 gstreamer 框架中使用。
wget https://gstreamer.freedesktop.org/src/gst-plugins-ugly/gst-plugins-ugly-1.20.3.tar.xz
tar -xf gst-plugins-ugly-1.20.3.tar.xz
cd gst-plugins-ugly-1.20.3
meson build --prefix=/usr
ninja -C build
sudo ninja -C build install
wget https://gstreamer.freedesktop.org/src/gst-libav/gst-libav-1.20.3.tar.xz
tar -xf gst-libav-1.20.3.tar.xz
cd gst-libav-1.20.3
meson build --prefix=/usr
ninja -C build
sudo ninja -C build install
安装这个之前需要先安装cmake和ffmepg的库,他依赖ffmpeg的libavfilter库
sudo apt install cmake
sudo apt-get install libavfilter-dev //libavcodec-dev libavutil-dev libswscale-dev
//libavfilter-dev libavformat-dev libavcodec-dev libavutil-dev
wget https://gstreamer.freedesktop.org/src/gst-plugins-bad/gst-plugins-bad-1.20.3.tar.xz
tar -xf gst-plugins-bad-1.20.3.tar.xz
cd gst-plugins-bad-1.20.3
meson build --prefix=/usr
ninja -C build
sudo ninja -C build install
这里面有264相关,如下查看
gst-inspect-1.0 | grep bad
gst-inspect-1.0 h264parse
sudo apt install gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly gstreamer1.0-libav
正在读取软件包列表... 完成
正在分析软件包的依赖关系树... 完成
正在读取状态信息... 完成
将会同时安装下列软件:
gsfonts i965-va-driver imagemagick-6-common intel-media-va-driver liba52-0.7.4 libaacs0 libaom3 libass9 libavcodec58
libavfilter7 libavformat58 libavutil56 libbdplus0 libblas3 libbluray2 libbs2b0 libchromaprint1 libcodec2-1.0 libdav1d5
libdc1394-25 libdca0 libde265-0 libdecor-0-0 libdecor-0-plugin-1-cairo libdvdnav4 libdvdread8 libfaad2 libfftw3-double3
libflite1 libfluidsynth3 libfreeaptx0 libgfortran5 libgme0 libgsm1 libgstreamer-plugins-bad1.0-0
libgstreamer-plugins-good1.0-0 libgupnp-igd-1.0-4 libheif1 libigdgmm12 libilmbase25 libinstpatch-1.0-2 libjxr-tools
libjxr0 libkate1 liblapack3 libldacbt-enc2 liblilv-0-0 liblqr-1-0 libltc11 libmagickcore-6.q16-6
libmagickcore-6.q16-6-extra libmagickwand-6.q16-6 libmfx1 libmjpegutils-2.1-0 libmodplug1 libmpcdec6 libmpeg2-4
libmpeg2encpp-2.1-0 libmplex2-2.1-0 libmysofa1 libnice10 libnorm1 libopenal-data libopenal1 libopencore-amrnb0
libopencore-amrwb0 libopenexr25 libopenh264-6 libopenmpt0 libopenni2-0 libpgm-5.3-0 libpocketsphinx3 libpostproc55
libqrencode4 librabbitmq4 librubberband2 libsdl2-2.0-0 libserd-0-0 libshine3 libsidplay1v5 libsnappy1v5 libsndio7.0
libsord-0-0 libsoundtouch1 libspandsp2 libsphinxbase3 libsratom-0-0 libsrt1.4-gnutls libsrtp2-1 libssh-gcrypt-4
libswresample3 libswscale5 libudfread0 libva-drm2 libva-x11-2 libva2 libvdpau1 libvidstab1.1 libvo-aacenc0
libvo-amrwbenc0 libwildmidi2 libx264-163 libx265-199 libxvidcore4 libzbar0 libzimg2 libzmq5 libzvbi-common libzvbi0
libzxingcore1 mesa-va-drivers mesa-vdpau-drivers ocl-icd-libopencl1 pocketsphinx-en-us timgm6mb-soundfont va-driver-all
vdpau-driver-all
建议安装:
frei0r-plugins i965-va-driver-shaders libcuda1 libnvcuvid1 libnvidia-encode1 libbluray-bdj libdvdcss2 libfftw3-bin
libfftw3-dev inkscape libportaudio2 serdi sidplay-base sndiod sordi libwildmidi-config opencl-icd fluid-soundfont-gm
libvdpau-va-gl1
下列【新】软件包将被安装:
gsfonts gstreamer1.0-libav gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly i965-va-driver imagemagick-6-common
intel-media-va-driver liba52-0.7.4 libaacs0 libaom3 libass9 libavcodec58 libavfilter7 libavformat58 libavutil56
libbdplus0 libblas3 libbluray2 libbs2b0 libchromaprint1 libcodec2-1.0 libdav1d5 libdc1394-25 libdca0 libde265-0
libdecor-0-0 libdecor-0-plugin-1-cairo libdvdnav4 libdvdread8 libfaad2 libfftw3-double3 libflite1 libfluidsynth3
libfreeaptx0 libgfortran5 libgme0 libgsm1 libgstreamer-plugins-bad1.0-0 libgupnp-igd-1.0-4 libheif1 libigdgmm12
libilmbase25 libinstpatch-1.0-2 libjxr-tools libjxr0 libkate1 liblapack3 libldacbt-enc2 liblilv-0-0 liblqr-1-0 libltc11
libmagickcore-6.q16-6 libmagickcore-6.q16-6-extra libmagickwand-6.q16-6 libmfx1 libmjpegutils-2.1-0 libmodplug1
libmpcdec6 libmpeg2-4 libmpeg2encpp-2.1-0 libmplex2-2.1-0 libmysofa1 libnice10 libnorm1 libopenal-data libopenal1
libopencore-amrnb0 libopencore-amrwb0 libopenexr25 libopenh264-6 libopenmpt0 libopenni2-0 libpgm-5.3-0 libpocketsphinx3
libpostproc55 libqrencode4 librabbitmq4 librubberband2 libsdl2-2.0-0 libserd-0-0 libshine3 libsidplay1v5 libsnappy1v5
libsndio7.0 libsord-0-0 libsoundtouch1 libspandsp2 libsphinxbase3 libsratom-0-0 libsrt1.4-gnutls libsrtp2-1
libssh-gcrypt-4 libswresample3 libswscale5 libudfread0 libva-drm2 libva-x11-2 libva2 libvdpau1 libvidstab1.1
libvo-aacenc0 libvo-amrwbenc0 libwildmidi2 libx264-163 libx265-199 libxvidcore4 libzbar0 libzimg2 libzmq5 libzvbi-common
libzvbi0 libzxingcore1 mesa-va-drivers mesa-vdpau-drivers ocl-icd-libopencl1 pocketsphinx-en-us timgm6mb-soundfont
va-driver-all vdpau-driver-all
下列软件包将被升级:
gstreamer1.0-plugins-good libgstreamer-plugins-good1.0-0
升级了 2 个软件包,新安装了 119 个软件包,要卸载 0 个软件包,有 181 个软件包未被升级。
日志方式打开视频
GST_DEBUG=3 gst-play-1.0 /home/yqw/t/westlife.mp4
有时播放黑屏,日志可以看到,它首先使用硬件解码,失败导致黑屏。此时用下面方式指定软解码。
gst-launch-1.0 filesrc location=/home/yqw/t/westlife.mp4 ! qtdemux ! h264parse ! avdec_h264 ! videoconvert ! autovideosink
头文件位置
/usr/include/gstreamer-1.0/gst
库文件位置
/usr/lib/x86_64-linux-gnu
meson configure build //查看都有哪些配置
参考:gstreamer安装
火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。
更多推荐
所有评论(0)