跳转至

GStreamer Meson 编译配置参数

版本与环境介绍

GStreamer version : 1.24

Ubuntu : 22.04

1. meson 基础

官方文档:The Meson Build system

Meson 入门指南之一 - RioTian - 博客园 (cnblogs.com)

Meson(The Meson Build System)是个项目构建系统,类似的构建系统有 MakefileCMakeautomake …。 Meson 是一个由 Python 实现的开源项目。

查看当前配置参数:

# 查看配置参数,根据实际情况path
meson configure <path>

# 例子
meson configure builddir

image-20240822100428627

2. meson 配置

上一章编译可能出现一些插件不齐的问题,不能播放等等问题,

Could not create an element from qtdemux

Failed to find a usable video sink

image-20240821151315798

在官方提到:

Since 1.24.7, it is possible to disable the gstreamer-full library by passing -Dgst-full=disabled. This can be useful in cases where you want a static build of gstreamer, but you do not want to use gst-full, since linking the static executables associated with it can be quite CPU/RAM intensive.

在编译时候重新配置:

# ===============以下可选择==============
# 更换安装目录方法:
# 测试通过命令
# 假如出现配置问题,删除之前配置,再配置一次
# rm -rf builddir

meson setup builddir --prefix=/home/hywelstar/Develop/gstreamer/_install \
                     -Ddefault_library=static \
                     -Dgst-full=enabled \
                     -Dgst-full-libraries=app,video \
                     -Dgst-full-target-type=static_library

# 更改
meson setup --reconfigure builddir --prefix=/home/hywelstar/Develop/gstreamer/_install \
                     -Ddefault_library=static \
                     -Dgst-full=enabled \
                     -Dgst-full-libraries=app,video 

$ ninja -C build-gst-full
# =====================================

image-20240821155845053

编译:

meson compile -C builddir

安装:

meson install -C builddir

进入环境:

## 本工程使用这个
./gst-env.py --builddir builddir

测试效果:

GST_DEBUG=3 gst-launch-1.0 videotestsrc ! autovideosink

image-20240822091945122

3.实际例子

3.1 开启openh264, h264等支持

目前查看是关闭状态:

image-20240822100553123

打开方式:

meson setup --reconfigure builddir --prefix=/home/hywelstar/Develop/gstreamer/_install \
                     -Ddefault_library=static \
                     -Dgst-full=enabled \
                     -Dgst-full-libraries=app,video \
                     -Dgst-plugins-bad:openh264=enabled \
                     -Dgst-plugins-ugly:x264=enabled \
                     -Dgpl=enabled \
                     -Dlibav=enabled

# 其他
meson setup --reconfigure builddir --prefix=/home/hywelstar/Develop/gstreamer/_install \
                     -Ddefault_library=static \
                     -Dgst-full=enabled \
                     -Dgst-full-libraries=app,video \
                     -Dgst-plugins-bad:openh264=enabled \
                     -Dgst-plugins-ugly:x264=enabled \
                     -Drtsp_server=enabled \
                     -DFFmpeg:gpl=enabled \
                     -Dgst-rtsp-server=enabled \
                     -Dgpl=enabled \
                     -Dlibav=enabled
# 查询当前
meson configure builddir

配置怎么看:

gstreamer 还有很多插件,分类 gst-plugins-ugly, gst-plugins-bad, gst-plugins-good 那种,比如这次开启x264 的支持,会发现是在gst-plugins-ugly

image-20240822110320208

.....

image-20240822110345915

未开启之前查询结果

image-20240822110512200

开启成功后

image-20240822111811579

image-20240822112016771

4. 问题处理

4.1 fatal error: cairo-gobject.h: No such file or directory

image-20240821164332193

解决:

sudo apt-get install libcairo2-dev

4.2 Program 'nasm' not found or not executable

image-20240822105532288

解决:

sudo apt-get install nasm

4.3 x264enc 找不到问题

查看3.1 解决