Ubuntu20.04 编译 gstreamer 支持gpu硬编解 opencv-python同支持gst

这篇具有很好参考价值的文章主要介绍了Ubuntu20.04 编译 gstreamer 支持gpu硬编解 opencv-python同支持gst。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

什么是Gstreamer?

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

下图是对基于Gstreamer框架的应用的简单分层:
ubuntu20.04 编译 gstreamer 支持gpu硬编解,opencv,gstreamer,部署,python,opencv,开发语言
可参考

新版编解码

gstreamer 自1.17.1开始,便抛弃了老版本的gpu硬编解方案,采取了新方案,新方案对环境要求放松,意味着更好编译,更稳定:ubuntu20.04 编译 gstreamer 支持gpu硬编解,opencv,gstreamer,部署,python,opencv,开发语言
老版方案装一些预环境还比较麻烦,所以建议抛弃老版本,用新版本。
另外 ubuntu20.04的默认支持gst1.16.3 所有一些诸如桌面之类依赖会有gst相关的库,在编译时容易链接错误,预计用ubutnu22.04及其以上,配合新版本1.21.3以上,应该会好很多。由于目前需要使用ubutnu20.04,故以下以此记录。

编译安装步骤

预备环境

Ubuntu20.04 python3.8系统自带
测试过如果是anaconda的python,需要把anaconda带的gst给卸载了:
conda uninstall gstreamer gst-plugins-base

编译环境依赖安装

sudo apt-get install build-essential dpkg-dev flex bison autotools-dev automake liborc-dev autopoint libtool gtk-doc-tools python3-pip libmount-dev python3-pip meson bison flex ninja-build  libglib2.0-dev nasm
sudo apt-get install valgrind libgirepository1.0-dev libcap-dev libgtk-3-dev libunwind-dev clzip gobject-introspection libdw-dev
sudo apt-get install libxv-dev libasound2-dev libtheora-dev libogg-dev libvorbis-dev
sudo apt-get install libbz2-dev libv4l-dev libvpx-dev libjack-jackd2-dev libsoup2.4-dev libpulse-dev
sudo apt-get install faad libfaad-dev libfaac-dev libx264-dev libmad0-dev

sudo apt install build-essential cmake git python3-dev python3-numpy \
libavcodec-dev libavformat-dev libswscale-dev libgtk-3-dev libgtk2.0-dev libcanberra-gtk-module \
libpng-dev libjpeg-dev libopenexr-dev libtiff-dev libwebp-dev \
libopencv-dev x264 libx264-dev libssl-dev ffmpeg

编译安装gst

安装1.18版本,对于Ubuntu20.04是合适的选择,对于meson的和ninja可以用系统默认版本,更高版本的gst,要对应升级meson和ninja
默认编译安装位置prefix 是/usr/local,由于ubuntu20.04桌面版本默认安装了gst-1.16.3,所以安装路径不要是/usr,虽然可解决很多编译链接问题。
若装在/usr下,可以不用设置下边的环境变量,但谨慎,若是桌面版本ubutnu20.04,依赖gst的桌面可能出问题,包括但不限于系统设置打不开,依赖qt的一些软件可能打开异常……可用docker装无桌面环境,或者直接就是无桌面的系统规避这个问题。

以下以ubuntu20.04桌面版本,设置prefix的路径安装在gst-build下的install文件夹下,编译后在设置合适的环境变量,即可正确找到动态库

git clone -b 1.18 https://github.com/GStreamer/gst-build.git
meson setup --prefix=/home/lenovo/compiled_project/gst-build/install build -Dbad=enabled -Dgst-plugins-bad:nvcodec=enabled

#设置环境变量 可以编译安装之后设置,也可以现在按照下方的路径规律,替换掉安装的根目录,主要是不是一步步的编译方式,所有这个过程不太严谨
gedit ~/.bashrc
 
#在末尾添加 
export LD_LIBRARY_PATH=/home/lenovo/compiled_project/gst-build/install/lib:/home/lenovo/compiled_project/gst-build/install/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH
export PKG_CONFIG_PATH=/home/lenovo/compiled_project/gst-build/install/lib/x86_64-linux-gnu/pkgconfig:$PKG_CONFIG_PATH
export GST_PLUGIN_PATH=/home/lenovo/compiled_project/gst-build/install/lib/x86_64-linux-gnu/gstreamer-1.0
#激活环境变量
source ~/.bashrc

#编译安装
sudo ninja -C build install

gst-inspect-1.0  --version #查看是否安装成功
gst-inspect-1.0 -a | grep nvh264

#测试代码 若无报错可跑基本没啥问题
gst-launch-1.0 rtspsrc location=rtsp://xxx:xxx@192.168.0.2:554/h264/ch1/main/av_stream ! rtph264depay ! h264parse ! nvh264dec ! videoconvert ! videoscale ! video/x-raw,width=640,height=480 ! nvh264enc ! h264parse ! filesink location=vid2.mp4

#类似报错 即下载出错,自己用浏览器下载后解压到subprojects下并修改为对应名称,请注意版本,可以去对应名字的.wrap文件下去看,对于gst-plugins-base、gst-plugins-good,gst-plugins-bad,gst-plugins-ugly,去https://gitlab.freedesktop.org/gstreamer提前下载放subprojects下,版本对应1.18

subprocess.CalledProcessError: Command '['/bin/git', '-C', '/home/argo/compiled_project/gst-build-1.18/subprojects', 'clone', 'https://gitlab.gnome.org/gnome/libsoup.git', 'libsoup']' returned non-zero exit status 128.

opencv-python支持gst

opencv-python 支持此时的gst,也就同样可以用硬编解
即重新编译安装opencv-python即可
参考

一些记录

参考官网安装,以及dpkg查看gstreamer安装,
dpkg -l | grep libgstreamer
conda list | grep gst
ubuntu 桌面依赖于gst的,所有有相关的动态库等的安装 sudo apt show ubuntu-desktop | grep gstreamer
版本可见是1.16,所以如果不正确配置,会链接错误

参考网址:

https://mesonbuild.com/Tutorial.html
https://gstreamer.freedesktop.org/documentation/installing/index.html?gi-language=c
https://gitlab.freedesktop.org/gstreamer/gst-build
https://github.com/GStreamer/gst-build
编译步骤参考:
https://blog.csdn.net/cdnight/article/details/112093636文章来源地址https://www.toymoban.com/news/detail-680577.html

到了这里,关于Ubuntu20.04 编译 gstreamer 支持gpu硬编解 opencv-python同支持gst的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • ubuntu20.04 编译安装运行emqx

    Erlang/OTP OTP 24 或 25 版本 GCC 4.8 或更高版本 Git make openssl-devel libcurl-devel

    2024年02月11日
    浏览(55)
  • ubuntu20.04搭建arm交叉编译环境

    源码下载地址:Downloads | GNU-A Downloads – Arm Developer 要根据目标系统选择编译器版本,我的主板: aarch64bit体系结构(arm 64bit),linux内核GNU操作系统=GNU/Linux操作系统(简称linux) 大端模式(Big-endian),是指数据的高字节,保存在内存的低地址中,而数据的低字节,保存在内存

    2023年04月24日
    浏览(50)
  • Ubuntu20.04安装fortran编译器

    1.打开终端:你可以通过按下 Ctrl + Alt + T 键组合来打开终端窗口。 2.更新包列表:运行以下命令以确保你的包列表是最新的:  sudo apt update 3.安装Fortran编译器:运行以下命令来安装GNU Fortran编译器: sudo apt install gfortran 4.验证安装:安装完成后,你可以运行以下命令来验证F

    2024年02月03日
    浏览(40)
  • Ubuntu 20.04 配置 VINS-Fusion-gpu + OpenCV 4.6.0

    准备工作: (1)电脑装有 NVIDIA 显卡 (2)安装 ROS noetic/Installation/Ubuntu - ROS Wiki (3)安装 cuda Ubuntu安装cuda_GXU_Wang的博客-CSDN博客 (4)安装 ceres 1.14.0 Ubuntu20.04安装Ceres1.14.0_我是你de不死的bug的博客-CSDN博客 下载 opencv 源码,选择所需要的版本 opencv 4.6.0,相应的扩展opencv_cont

    2024年02月12日
    浏览(45)
  • Ubuntu20.04与22.04 openssl与openssl编译安装

    操作系统openssl版本查看: 推荐根据操作系统默认版本下载对应修复版本 ubuntu20.04 openssl版本:OpenSSL 1.1.1f ubuntu22.04 openssl版本:OpenSSL 3.0.2 首先,使用 wget 命令下载 OpenSSL 的源代码压缩包。从 OpenSSL 官方网站上找到最新版本的源代码。 如下以ubuntu20.04示例: 解压源代码 使用

    2024年02月06日
    浏览(65)
  • Ubuntu 20.04源码编译安装OpenCV 4.7.0

    目录 前言 1--下载OpenCV 4.7.0 2--编译安装OpenCV 4.7.0 3--测试 3-1--查看安装的版本 3-2--基于VSCode和CMake测试项目 4--报错解决(重点!) 4-1--OpenCV与FFmpeg不兼容 4-2--LIBTIFF报错 4-3--系统与Anaconda的库lib冲突 4-4--测试时CMake的find_package报错         建议先看第4节相关报错及解决方法,再

    2024年01月16日
    浏览(72)
  • Ubuntu20.04部署编译LVI-SAM

    该动图来自LVI-SAM开源地址(https://github.com/TixiaoShan/LVI-SAM) 近期在学习SLAM相关知识,拜读了此篇经典论文LVI-SAM,因为部署的时候系统版本与开源略有不同,遇到一些问题,故在此记录一下。 若是大手子,请直接忽视本文。 衷心建议大家先参照开源各版本进行环境配置,可以

    2024年02月11日
    浏览(72)
  • ubuntu 20.04 aarch64 平台交叉编译 opencv

    win10 64 位 VMware Workstation Pro 16 虚拟机 虚拟机安装 ubuntu 20.04 opencv 版本: 来自 github 当前最新 4.7 交叉编译 opencv,用于 嵌入式 aarch64 平台 可以直接从 github 下载 release 版本或者 使用 git clone 最新的 opencv 仓库 github opencv https://github.com/opencv/opencv git clone https://github.com/opencv/openc

    2024年02月09日
    浏览(67)
  • Ubuntu20.04 交叉编译Paddle-OCR

    参考链接: https://blog.csdn.net/sz76211822/article/details/130466597?spm=1001.2014.3001.5501 参考链接: https://blog.csdn.net/sz76211822/article/details/130461683?spm=1001.2014.3001.5501 1.将Paddle-Lite编译好的cxx文件夹放置到PaddleOCR/deploy/lite目录下 2.将编译好的opencv文件夹放置到cxx目录下 3.除了拷贝过来的源代码

    2024年02月02日
    浏览(52)
  • 从头搭建Android源码编译环境(Ubuntu 18.04 / 20.04 / 22.04)

    在新安装的Ubuntu上(版本20.04LTS),完成搭建Android源码编译环境步骤如下。 顺带说一句,当前用的比较多的Ubuntu是18.04和20.04,在实际项目中一直在用,可用性和稳定性都没问题。 最新的Ubuntu22.04版本,系统默认的二进制库变化比较大,编译Android源码有问题(实测过,没细研

    2024年02月06日
    浏览(161)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包