ubuntu22.04编译安装使用gstreamer指南

环境准备

ubuntu发行版22.04,该发行版内置Gstreamer1.20.1,gstreamer源码最新版本为1.20.3,差距不大

下载gstreamer源码

下载gstreamer源码

安装git


sudo apt install -y git
fuqiang@fuqiang-VivoBook:~/Workspace/gstreamer$ git --version
git version 2.34.1

下载gstreamer


git clone https://gitlab.freedesktop.org/gstreamer/gstreamer.git
git checkout --track -b 1.20 origin/1.20        --->1.20是目前最新版本的稳定分支,最新的小版本号为1.20.3

准备编译环境

安装meson

gstreamer1.60以后(不包含1.60),使用meson+ninja来构建


sudo apt install -y meson
fuqiang@fuqiang-VivoBook:~/Workspace/gstreamer$ meson --version
0.61.2

安装glib

gstreamer是基于glib-gobject来实现的


sudo apt install -y libglib2.0-dev

安装libsoup


sudo apt install -y libsoup2.4-dev

安装libunwind


1.下载包,http://download.savannah.nongnu.org/releases/libunwind/
2. ./configure
3.make
4.sudo make install

安装libdw


sudo apt install -y libdw-dev

安装g-ir-scanner

系统中搜索g-ir-scanner,然后将其copy到/usr/lib/下,给予执行权限

安装gobject-introspection-1.0


sudo apt-get install -y libgirepository1.0-dev

安装gtk+-3.0


sudo apt-get install -y libgtk-3-dev

安装hotdoc


sudo apt-get install -y libjson-glib-devsudo apt install -y cmake python3-pip
sudo pip3 install hotdoc

安装xgettext

系统中搜索xgettext,复制到/usr/bin/下,并给予执行权限

安装alsa


sudo apt-get install -y libasound2-dev

安装cdda_paranoia


sudo apt install -y cdparanoia

还不行将cdparanoia先注释掉

安装libvisual-0.4


sudo apt install libvisual-0.4-dev

安装xv

打开终端输入 sudo snap install xv --edge,如果不能正常安装则按照提示输入 sudo snap install xv --edge --devmode即可安装成功

安装SDL2


sudo apt-get install -y libsdl2-2.0 libsdl2-dev libsdl2-mixer-dev libsdl2-image-dev libsdl2-ttf-dev  libsdl2-gfx-dev

安装qt5


sudo apt-get install -y clang qtbase5-dev qtchooser qt5-qmake qtbase5-dev-tools qtcreator
sudo apt-get install -y qt5*

安装bz2


sudo apt install -y libbz2-dev

安装nasm/yasm


sudo apt install -y nasm yasm

安装gettext


sudo apt-get install -y gettext

编译安装

创建out目录


cd gstreamer
mkdir out

编译


meson out
cd out
ninja
sudo ninja install

带参数编译示例


meson --reconfigure -Dauto_features=enabled -Dgst-plugins-base:opus=disabled -Dgst-plugins-base:ogg=disabled out

异常处理

异常1


subprojects/gstreamer/gst/parse/meson.build:7:0: ERROR: Program 'flex win_flex' not found or not executable

解决方案:


sudo apt install -y flex

异常2


subprojects/gstreamer/gst/parse/meson.build:34:0: ERROR: Program 'bison win_bison' not found or not executable

解决方案:


sudo apt install -y bison

异常3


fuqiang@fuqiang-VivoBook:~/Workspace/gstreamer/gstreamer/out$ninja
ninja: error: 'subprojects/gst-plugins-bad/gst-libs/gst/transcoder/transcoder-enumtypes.h', needed by 'subprojects/gst-devtools/validate/tools/gst-validate-transcoding-1.0.p/gst-validate-transcoding.c.o', missing and no known rule to make it

解决方案:


meson --reconfigure

异常4


fuqiang@ubuntu:~/workspace/gstreamer$ meson out

The Meson build system

Source dir: /home/fuqiang/workspace/gstreamer

Build dir: /home/fuqiang/workspace/gstreamer/out

Build type: native build

meson.build:81:15: ERROR: lexer

     ['gstreamer', {'build-hotdoc': true}],

解决方案:更新meson版本,ubuntu18.04会出现这个问题,原因是其meson版本过低,使用pip3来安装meson


sudo pip3 install meson

如果版本还是低的话,可能/usr/bin有原始的meson,/usr/local/bin中是新安装的meson,将/usr/local/bin下面的copy到/usr/bin下面即可

异常5


msgfmt: command not found

解决方案:


sudo apt-get -y install gettext

测试命令

基本虚拟测试


    gst-launch-1.0 videotestsrc ! autovideosink

    gst-launch-1.0 -v videotestsrc pattern=ball name=left ! autovideosink
    gst-launch-1.0 audiotestsrc ! autoaudiosink

黑洞fakesink


gst-launch-1.0 videotestsrc ! fakesink

音频播放


gst-launch-1.0 filesrc location='/home/fuqiang/音乐/audio.mp3' ! decodebin ! audioconvert ! audioresample ! autoaudiosink

视频播放


gst-launch-1.0 filesrc location='/home/fuqiang/视频/1080P.mov' ! decodebin ! autovideosink

分离MP4的音视频并分别播放


    gst-launch-1.0 filesrc location='/home/fuqiang/视频/1080P.mov' ! qtdemux name=demux demux.audio_0 ! queue ! decodebin ! audioconvert ! audioresample ! autoaudiosink demux.video_0 ! queue ! decodebin ! videoconvert ! videoscale ! autovideosink

    gst-launch-1.0 filesrc location='/home/fuqiang/视频/1080P.mov'  ! qtdemux name=demux demux.video_0 ! queue ! decodebin ! videoconvert ! videoscale ! autovideosink

视频播放并设置videobox


gst-launch-1.0 filesrc location='/home/fuqiang/视频/1080P.mov' ! qtdemux name=demux demux.video_0 ! decodebin ! videoscale ! video/x-raw,width=100,height=100 ! videobox border-alpha=0 top=-70 bottom=-70 right=-220 ! videoconvert ! autovideosink

摄像头采集播放(编码输出文件)


gst-launch-1.0 v4l2src ! videoconvert ! autovideosink

gst-launch-1.0 v4l2src ! videoconvert ! x264enc ! filesink location='/home/fuqiang/视频/xx.mp4'

gst-launch-1.0 v4l2src ! video/x-raw,width=1280,height=720 ! videoconvert ! openh264enc ! h264parse ! flvmux ! filesink location=aaa.flv

采集音频到文件


gst-launch-1.0 alsasrc ! audioresample ! audioconvert ! wavenc ! filesink location=/home/fuqiang/Videos/xx.wav

mp3转码ogg


gst-launch-1.0 filesrc location='/home/fuqiang/音乐/audio.mp3' ! decodebin ! audioconvert ! vorbisenc ! oggmux ! filesink location='/home/fuqiang/音乐/audio.ogg'

timeoverlay


gst-launch-1.0 videotestsrc ! timeoverlay ! xvimagesink

<think>嗯,用户想在Ubuntu 22.04虚拟机上安装OpenCV。我之前处理过类似的问题,需要结合提供的引用内容来给出步骤。首先,用户可能已经看过引用里的安装指南,但可能有不同的版本需求或者遇到问题。 先看看用户的具体需求。用户没有指定OpenCV版本,但引用中提到了4.9.0和4.5.1。可能用户需要最新的稳定版,或者随便哪个版本。不过考虑到兼容性,推荐4.9.0,因为引用里也有详细步骤。 接下来,安装依赖项是关键。根据引用1和2,需要安装g++、cmake、make等编译工具,以及图像处理库。需要确保所有依赖都正确安装,避免编译失败。还要注意是否要安装contrib模块,用户可能想用额外的功能,所以步骤里应该包括contrib的配置。 然后,解压和配置步骤。引用1中提到复制opencv_contrib到opencv目录,并设置OPENCV_EXTRA_MODULES_PATH。需要确保路径正确,否则cmake会报错。用户可能在路径处理上容易出错,所以步骤要详细说明。 编译安装时,使用多线程加速,但虚拟机资源可能有限,需要提醒用户根据情况调整线程数。安装后的环境变量配置也很重要,引用3提到PKG_CONFIG_PATH的问题,需要指导用户设置,避免找不到库的情况。 最后,测试安装是否成功。用户可能需要验证安装,比如运行一个简单的Python脚本或C++程序。这一步能帮助用户确认一切正常,否则需要排查问题,比如环境变量是否生效。 用户可能遇到的常见问题包括依赖项缺失、路径错误、权限问题等。需要提前在步骤中提示可能的错误和解决方法,比如更新系统、检查路径、使用sudo权限等。另外,如果用户之前安装过其他版本,可能会有冲突,建议全新安装或清理旧文件。 总结下来,步骤应该是:安装依赖→下载和解压源码→配置cmake参数→编译安装→配置环境变量→测试验证。同时,提供注意事项和常见问题处理,帮助用户顺利完成安装。</think>### Ubuntu 22.04虚拟机中安装配置OpenCV的完整步骤 #### 一、安装系统依赖 ```bash sudo apt update && sudo apt upgrade -y sudo apt install -y cmake g++ make unzip git libgtk2.0-dev pkg-config \ libavcodec-dev libavformat-dev libswscale-dev libtbb2 libtbb-dev \ libjpeg-dev libpng-dev libtiff-dev libopenexr-dev libgstreamer-plugins-base1.0-dev ``` **说明**:基础依赖包含编译器、构建工具和多媒体支持库,建议使用`-y`参数自动确认安装[^2]。 #### 二、源码下载与解压(以OpenCV 4.9.0为例) ```bash wget -O opencv.zip https://github.com/opencv/opencv/archive/4.9.0.zip wget -O opencv_contrib.zip https://github.com/opencv/opencv_contrib/archive/4.9.0.zip unzip opencv.zip && unzip opencv_contrib.zip mv opencv-4.9.0 opencv && mv opencv_contrib-4.9.0 opencv_contrib ``` **关键点**:必须保持主仓库与contrib模块版本一致[^1]。 #### 三、编译配置 ```bash mkdir -p opencv/build && cd opencv/build cmake -D CMAKE_BUILD_TYPE=Release \ -D OPENCV_GENERATE_PKGCONFIG=YES \ -D CMAKE_INSTALL_PREFIX=/usr/local \ -D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib/modules \ -D WITH_GTK=ON \ -D BUILD_EXAMPLES=OFF .. ``` **参数解析**: - `OPENCV_GENERATE_PKGCONFIG=YES` 生成pkg-config文件 - `OPENCV_EXTRA_MODULES_PATH` 指向contrib模块路径[^1] - 建议关闭`BUILD_EXAMPLES`减少编译时间 #### 四、编译安装 ```bash make -j$(nproc) # 使用所有CPU核心加速编译 sudo make install sudo ldconfig # 更新动态链接库缓存 ``` **注意事项**: 1. 虚拟机内存建议≥4GB,交换空间≥2GB 2.编译失败,尝试`make clean`后重试 #### 五、环境验证 1. **C++验证**: ```bash pkg-config --modversion opencv4 # 应输出4.9.0 ``` 2. **Python验证**: ```python import cv2 print(cv2.__version__) # 应输出4.9.0 ``` #### 六、常见问题处理 1. **找不到头文件**: ```bash export CPLUS_INCLUDE_PATH=/usr/local/include/opencv4 ``` 2. **pkg-config路径问题**: ```bash export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig ``` 建议将上述命令写入`~/.bashrc`[^3] 3. **视频I/O支持缺失**: 重新编译时添加: ```cmake -D WITH_FFMPEG=ON \ -D WITH_GSTREAMER=ON ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

代码论斤卖

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值