GStreamer
文章平均质量分 69
介绍 GStreamer 系统相关技术。
许野平
非常喜欢软件设计这份工作,有不错的数学基础,喜欢读书、摄影与音乐。
展开
-
gst-launch-1.0用法小记
由于工作中要使用DeepStream这个框架,绕不开gstreamer-1.0,于是这段时间学习了这个框架的用法。还没有能力去阅读源码。gstreamer框架中,gst-inspect-1.0和gst-launch-1.0这两个工具是必须要熟悉的,现就gst-launcher-1.0的用法做下笔记,以免日后遗忘。参考https://blog.csdn.net/u010168781/article/details/102805210一、命令格式gst-launch-1.0 [OPTIONS] PIPELI转载 2022-04-16 15:45:33 · 5586 阅读 · 3 评论 -
NVIDIA Jetson: GStreamer 和 openMAX(gst-omx) 插件
Nvidia 的 GPU 产品的开发工具包叫做 DeepStream,是基于 GStreamer 开发。因此,掌握 DeepStream,必须从 GStreamer 入手。先看看这货如何安装的吧!一、安装 GStreamer-1.0安装步骤如下:sudo add-apt-repository universesudo add-apt-repository multiversesudo apt-get updatesudo apt-get install gstreamer1.0-tools gs原创 2022-04-14 18:57:15 · 4421 阅读 · 9 评论 -
在 Jetson Nano 上安装 gst-rtsp-server
下载gst-rtsp-server-1.8.3 后加压到 ./home/jetson/gst-rtsp-server 目录。1. 安装 GTK因为编译 gst-rtsp-server 用到 gtk,必须安装这个。命令如下:sudo apt-get install build-essentialsudo apt-get install gnome-devel gnome-devel-docs2. 生成 Makefile、编译bash autogen.shmake3. 测试.原创 2021-07-16 11:05:21 · 2084 阅读 · 8 评论 -
Jetson Nano 小白快速入门
JetsonNano是一款拥有 128个sp计算核的嵌入式GPU设备,个头很小。原创 2021-06-11 16:59:45 · 3748 阅读 · 2 评论 -
运行 deepstream-app
安装完成后,输入deepstream-app --version-all 来查看安装的版本,得到输出如下:$ deepstream-app --version-alldeepstream-app version 5.1.0DeepStreamSDK 5.1.0CUDA Driver Version: 10.2CUDA Runtime Version: 10.2TensorRT Version: 7.1cuDNN Version: 8.0libNVWarp360 Version: 2.0.1原创 2021-06-11 15:09:06 · 1930 阅读 · 5 评论 -
在 Jetson Nano 上运行 deepstream-test1
在我的Jetson Nano上运行deepstream-test1失败后,向 NVIDIA官方求助。技术支持人员要我展示系统配置。用 jtop查看配置如下:结果被告知,里面的依赖包版本不匹配。原因在于我购买的商家替我制作了系统SD卡,其中的软件包版本与最新的DeepStream不匹配。于是我决定从SD卡系统镜像开始重新生成制作系统。按照官网提供的最新镜像文件。官网提供的说明,依赖包版本应该符合下面的要求:接下来参照 《DeepStream快速入门https:/...原创 2021-06-11 14:50:08 · 561 阅读 · 0 评论 -
从头制作 Jetson Nano 系统:DeepStream SDK 快速入门
官网地址:https://docs.nvidia.com/metropolis/deepstream/dev-guide/text/DS_Quickstart.html原创 2021-06-11 14:36:25 · 1687 阅读 · 1 评论 -
DeepStream SDK 5.1 依赖包版本的要求
如果版本不对的话,会遇到奇怪的问题。请仔细对照下面的依赖包的版本安装自己的系统。原创 2021-06-09 18:32:49 · 388 阅读 · 0 评论 -
为什么我的 Jetson Nano 不能运行 deepstream-test1
该问题发给NVIDIA论坛,下面是与管理员的交流内容:xuyepingHi,After I compiledeepstream-test1directly, the program can’t run on my Jetson Nano 2G. However, after removing the deep learning modelnvinferfrom the codes, the program can run. Is it because my nano 2G memory...原创 2021-06-09 15:46:45 · 1790 阅读 · 0 评论 -
英伟达开发者论坛求助:Undefined reference to ‘cuGraphicsEGLRegisterImage‘
xuyepinghi,I’m writing a DeepStream plugin now. I wish it can work in CUDA. So, I use the function cuGraphicsEGLRegisterImage and cuGraphicsResourceGetMappedEglFrame in c++ code gstdsexample.cpp. The following error prompt appears when compiling:gstdsex原创 2021-05-21 14:07:27 · 505 阅读 · 0 评论 -
NVIDIA Jetson 开发资源大全(不断动态更新中...)
Nano 入门手册英伟达深度学习AI网站英伟达开发者博客英伟达开发者论坛jetbot智能小车学习GLIB 官网gStreamer 官方教程资源大全英伟达 Jetson Nano 官方资源大全Developer ZOne:Cuda Kit Decument原创 2021-05-20 11:42:37 · 760 阅读 · 0 评论 -
深入浅出,快速弄明白 gst-launch-1.0 PIPELINE-DESCRIPTION 管道描述语法
1话说 gst-launch-1.0 这条命令老牛掰了,看是很复杂的媒体流,用这条命令,一行代码就搞定了。看看下面这行代码,区区几十个字符,就建立了测试视频流:gst-launch-1.0 videotestsrc ! autovideosink运行后可以在屏幕上显示视频测试图案,大概就是下面这个样子:那些包含视频、音频,甚至用户定制信号的复杂媒体流,也能用 gst-launch-1.0 这样子玩吗?当然没问题。我们接下来聊聊如何构建复杂媒体流管道。2在刚才的例子中,我们的管道描述串是 v原创 2021-05-17 11:41:54 · 9332 阅读 · 9 评论 -
GstBuffer 详述
0. 概述缓冲区是 GStreamer 中数据传输的基本单元。它们包含定时和偏移量以及与缓冲区包含的 GstMemory 块关联的其他任意元数据。缓冲区通常是用 gst_buffer_new 创建的。创建缓冲区后,通常会为其分配内存并将其添加到缓冲区中。下面的示例创建一个缓冲区,该缓冲区可以容纳每个平面具有给定宽度、高度和位的给定视频帧。 GstBuffer *buffer; GstMemory *memory; gint size, width, height, bpp; ...原创 2021-05-13 16:01:11 · 6759 阅读 · 0 评论 -
GstBuffer 中 data 实际的存储地址
前段时间刚开始学 Gstreamer,还没学多少就要干活了,最近想用 gdb 查看 GstBuffe r的 data 地址是总很麻烦,要先用 gst_buffer_map 先获得data,所以就深入的了解了一下 GstBuffer 中 data 所存放的地方。下面就和大家分享一下吧!通常我们需要获取 GstBuffer 的 data 数据是通过接口 gst_buffer_map 得到的,进入 gst_buffer_map 接口的具体实现,我们可以发现,Gstreamer 通过 _get_merged_me转载 2021-05-13 11:21:05 · 741 阅读 · 0 评论 -
编写 GStreamer 插件2:编写插件的基础知识(二)
2. 指定焊盘3. 链函数4. 事件函数5. 查询函数6. 什么是状态?7. 添加属性8. 信号9. 构建测试应用程序原创 2021-05-12 15:47:39 · 1172 阅读 · 1 评论 -
编写 GStreamer 插件2:编写插件的基础知识(一)
现在您可以学习如何构建插件了。在本指南的这一部分中,您将学习如何应用基本的GStreamer编程概念来编写一个简单的插件。指南的前几部分没有包含明确的示例代码,这可能会使事情变得有点抽象和难以理解。相反,本节将通过开发一个名为“MyFilter”的示例音频过滤器插件来展示应用程序和代码。示例过滤器元件将从单个输入Pag和单个输出Pad开始。过滤器首先只需将媒体和事件数据从其接收器板传递到源板,而无需修改。但是在本部分的末尾,您将学习添加一些更有趣的功能,包括属性和信号处理程序。在阅读了指南的下一部分“高级原创 2021-05-10 17:48:08 · 2929 阅读 · 0 评论 -
在 Jetson Nano 上编写 GStreamer 插件 ——实现自己的第一个作品
这个 git 模块包含可能的 GStreamer 项目的模板代码。gst-app用于编写基于GStreamer的应用程序的基本自动工具布局。gst-plugin基本的自动工具布局和基本的过滤代码,用于编写GStreamer插件。这段代码是在麻省理工学院的许可证1下提供的,这基本上意味着“按你的意愿处理它,但如果它不起作用,不要责怪我们”。您可以根据自己的意愿,在任何许可证下,将此代码用于任何项目。我们建议对应用程序和插件使用LGPL2许可证,因为多媒体现在是专利的雷区。详情请参见我们的网站3原创 2021-05-10 14:59:37 · 2361 阅读 · 0 评论 -
编写 GStreamer 插件1:概述
GStreamer是一个非常强大和通用的框架,用于创建流媒体应用程序。GStreamer框架的许多优点来自于它的模块化:GStreamer可以无缝地合并新的插件模块。但由于模块化和强大的功能往往以更高的复杂性为代价(例如,考虑CORBA),编写新插件并不总是那么容易。本指南旨在帮助您理解GStreamer框架,以便开发新插件来扩展现有功能。本指南通过开发一个用C编写的示例插件(音频过滤器插件)来解决大多数问题。但是,本指南后面的部分还介绍了编写其他类型插件所涉及的一些问题,并且本指南的结尾描述了GStre原创 2021-05-09 12:40:55 · 1751 阅读 · 0 评论 -
GStreamer 官方资源大全
官网链接:https://gstreamer.freedesktop.org/documentation/application-development/?gi-language=c原创 2021-05-08 16:28:45 · 267 阅读 · 0 评论 -
GStreamer 相关概念参考清单
Table of ConceptsGStreamer 官网提供了一些列学习课程,下面的列表以 GStreamer 基本概念为线索,给出了相关的参考课程。概念课程Action signalsPlayback tutorial 1: Playbin usageAudio switchingPlayback tutorial 1: Playbin usageBuffersBasic tutorial 8: Short-cutting the pipelineBus原创 2021-05-08 11:23:46 · 192 阅读 · 0 评论 -
走向必然王国:如何有把握地构建 GStreamer 管道?
GStreamer 是一款非常优秀的媒体流构建工具。由于相关参考资料缺乏,官网介绍不够详尽,初学者往往费尽周折,也搞不定一个定制的管道架构,最后只好从网络上东拼西凑,摸着别人的例子过河。如果您有类似的困惑,本文将带领您走出这个困境,迈出正确构建 GStreamer 管道的第一步。1. 最简单的视频管道由于一个管道至少有一个起点和一个终点,因此最简单的管道至少有两个元素,一个用来做 src(流的起点),另一个做 sink(流的终点)。videotestsrc:提供测试视频信号源。它绝对不会出错,可以原创 2021-05-07 11:58:43 · 1330 阅读 · 2 评论 -
如何设置 DeepStream 输出 RTSP 流
连接:https://docs.nvidia.com/metropolis/deepstream/dev-guide/text/DS_FAQ.html?highlight=rtsp 给出了解决方案。Q:How can I specify RTSP streaming of DeepStream output?A:You can enable remote display by adding an RTSP sink in the application configuration file. The原创 2021-05-06 09:22:29 · 3477 阅读 · 0 评论 -
gst-rtsp-server 的第一个程序:建立自己的 rtsp 服务器
1. 源代码:demo.c建立项目目录:demo,并在其中创建 C 语言源代码 demo.c。代码如下:#include <gst/gst.h>#include <gst/rtsp-server/rtsp-server.h>int main (int argc, char *argv[]) { GMainLoop *loop; GstRTSPServer *server; GstRTSPMountPoints *mounts; GstRTSPMediaFac原创 2021-05-04 16:59:48 · 2439 阅读 · 3 评论 -
DeepStream 官方应用示例源代码目录
C/C++ Sample Apps Source DetailsPlugin and Library Source DetailsPython Sample Apps Source DetailsPython BindingsMetaData AccessSample Application Source DetailsDeepStream Reference Application - deepstream-appApplication ArchitectureReference原创 2021-04-30 17:52:04 · 756 阅读 · 2 评论 -
DeepStream:插件和代码库细节
Plugin or libraryPath inside sources directoryDescriptionDsExample GStreamer plugingst-plugins/gst-dsexampleTemplate plugin for integrating custom algorithms into DeepStream SDK graph.GStreamer Gst-nvmsgconv plugingst-plugins/gst-nvmsgconv...原创 2021-04-30 17:29:14 · 633 阅读 · 2 评论 -
DreepStream 官方示例程序概览
DeepStream SDK 软件包包括插件、库、应用程序和源代码的存档。sources 目录位于 /opt/nvidia/deepstream/deepstream-5.1/sources,可用 Debian 安装(在 Jetson 或 dGPU 上)或 SDK 管理器安装。对于 tar 包,源文件位于解压缩的 deepstream 包中。DeepStream Python 绑定和示例应用程序作为单独的包提供。有关详细信息,请参阅 https://github.com/NVIDIA-AI-IOT/deep原创 2021-04-30 17:12:35 · 1045 阅读 · 1 评论 -
DeepStream 快速入门
英伟达® DeepStream软件开发工具包(SDK)是一个用于构建智能视频分析(IVA)管道的加速人工智能框架。DeepStream 可运行在 NVIDIA T4、NVIDIA Ampere 和 NVIDIA® Jetson™ Nano、NVIDIA® Jetson AGX Xavier™、NVIDIA® Jetson Xavier NX™、 NVIDIA® Jetson™ TX1 和 TX2。1. 安装 Jetson在安装 DeepStream SDK 之前,本节介绍如何准备 Jetson。1.原创 2021-04-30 15:35:06 · 7287 阅读 · 3 评论 -
Jetson Nano:用 gst-launch-1.0 显示摄像头捕获的图像
gst-launch-1.0 nvarguscamerasrc ! 'video/x-raw(memory:NVMM),width=3820, height=2464, framerate=21/1, format=NV12' ! nvvidconv flip-method=0 ! 'video/x-raw,width=960, height=616' ! nvvidconv ! nvegltransform ! nveglglessink -e原创 2021-04-30 15:10:09 · 3247 阅读 · 2 评论 -
Jetson Nano:设置 DeepStream 的 include 路径
如果不设置 DeepStream 的 include 路径,自己编写的 C 语言程序是无法编译的。设置方法如下:编辑 /etc/profile 文件,在文件最后加入下面两行,重启系统后正常。C_INCLUDE_PATH=$C_INCLUDE_PATH:/opt/nvidia/deepstream/deepstream-5.1/sources/includesexport C_INCLUDE_PATH...原创 2021-04-30 14:24:32 · 184 阅读 · 0 评论 -
DeepStream Hello World:deepstream_test1_app 源代码深入剖析
0. 概述DeepStream Hello World:deepstream_test1_app 提供了 DeepStream 一个最简单的演示。我在 Jetson Nano 上安装的 DeepStream,这个项目的位置是:/opt/nvidia/deepstream/deepstream-5.1/sources/apps/sample_apps/deepstream-test1关于这程序的结构,官网有一幅图说得很明白:简单地说,deepstream-test1:从文件中获取单一视频流,并在屏幕上原创 2021-04-29 20:23:37 · 1359 阅读 · 0 评论 -
NVIDIA DeepStream 概览
DeepStream是一个流分析工具包,用于构建人工智能驱动的应用程序。它将来自USB/CSI摄像头的流式数据、来自文件的视频或通过RTSP的流式数据作为输入,并使用人工智能和计算机视觉从像素生成细节,以便更好地了解环境。DeepStream SDK 可以是许多视频分析解决方案的基础层,如理解智能城市中的交通和行人、医院的健康和安全监控、零售中的自我检测和分析、检测制造设施中的组件缺陷等。请在此处阅读有关DeepStream的更多信息。DeepStream通过Python绑定支持C/C++和Python原创 2021-04-26 18:50:14 · 973 阅读 · 0 评论 -
快速入门:GStreamer 常用元素及其用法
0. 目标本教程提供了一个值得了解的方便的 GStreamer 元素列表。它们的范围从允许您轻松构建复杂管道的强大的一体式元素(如 playbin)到在调试时非常有用的小助手元素。为了简单起见,下面的例子是使用 gst-launch-1.0 工具给出的(在《基础教程10: GStreamer工具》中了解它)。如果要查看正在协商的焊盘封口,请使用-v命令行参数。1. BinsBin 的英文原意是箱子的意思,在 GStreamer 中表示若干元素的集合。利用多个元素组合在一起,可以完成一件复杂的任务。G原创 2021-04-22 14:37:28 · 4219 阅读 · 1 评论 -
为 Jetson Nano 配置 GStreamer
Jetson Nano 已经安装了 GStreamer,但是,nVidia 并没有完成配置, include 路径需要自己在配置一下才行。方法如下:在 /etc/profile 文件最后添加以下两行内容即可(文件名 basic-tutorial-1.c ):export C_INCLUDE_PATH=/usr/include/gstreamer-1.0:/usr/include/glib-2.0:/usr/lib/aarch64-linux-gnu/glib-2.0/include:$C_INCLUDE原创 2021-04-16 16:51:59 · 2385 阅读 · 0 评论 -
gst-inspect-1.0 命令详解
这是 `gst-inspect-1.0` 工具的Linux手册页。因此,在路径规范和插件名称方面,它非常以Linux为中心。请耐心等待,因为它是重写为更一般。1. 名称gst-inspect-1.0 打印有关GStreame r插件或元素的信息2. 命令格式gst-inspect-1.0 [OPTION…] [PLUGIN|ELEMENT]3. 说明gst-inspect-1.0是一个工具,它可以打印出可用 GStreamer 插件的信息、特定插件的信息或特定元素的信息。当在没有PLUGIN原创 2021-04-16 11:26:53 · 4501 阅读 · 0 评论 -
gStreamer 官方教程资源大全
1. 入门教程:Basic tutorials这里列一个GStreamer入门课程清单,大家按需选择吧。基础教程1:Hello world!—— 惯例性的 “Hello world” 程序基本教程2:GStreamer概念基础教程3:动态管道基础教程4:时间管理基础教程5: GUI工具包集成基础教程6:媒体格式和Pad功能基本教程7:多线程和Pad可用性基础教程8:管道短路操作基础教程9:媒体信息收集基本教程10:GStreamer工具基本教程11:调试工具基础教程12:流媒体基原创 2021-04-16 10:33:52 · 2003 阅读 · 0 评论 -
gst-rtsp-server 开源包的说明
gst-rtsp-server 开源包提供了一份 readme 文件,以下是相关内容的整理:说明:相关内容更新于2013年7月15日(周一),版本0.11.90.1本 HOWTO 介绍 GStreamer RTSP 库的基本用法以及如何可以用它构建简单的服务器应用程序。0. 概述服务器严重依赖 GStreamer 的 RTSP 基础设施。这包括所有的媒体采集、解码、编码、付费和 UDP/TCP 流。我们将 rtpbin 元素用于所有会话管理。服务器中的大多数 RTSP 消息解析和构造都是使用gst插原创 2021-04-14 14:29:44 · 3246 阅读 · 0 评论 -
gStreamer 的 gst-rtsp-server 安装方法
1. 安装依赖包$ sudo apt-get install gtk-doc-tools libgstreamer1.0-0 gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly gstreamer1.0-libav gstreamer1.0-doc gstreamer1.0-tools gstreamer1.0-x gstreamer1.0-alsa g原创 2021-04-13 18:30:59 · 4081 阅读 · 5 评论 -
Nvidia Jetson 开发套件,视频编码的相关源码解读:videoOutput.h、videoOutput.cpp
类 videoOutput 的定义如下。查看了一下 videoOutput.cpp,发现它作为一个抽象类,依然很流氓地引用了其衍生类 glDisplay.h、gstEncoder.h。1. videoOutput 的定义class videoOutput{public: static videoOutput* Create( const videoOptions& options ); static videoOutput* Create( const char* URI, const原创 2021-03-20 14:54:08 · 559 阅读 · 0 评论 -
Nvidia Jetson 开发套件,视频解码的相关源码解读:videoSource.h、videoSource.cpp
为了解 Nvidia Jetson 视频解码过程,搜索了其中的代码,发现解码器是类 videoSource 的衍生类。于是决定先看看 videoSource 是如何定义的搜了一下, 发现 videoSource.h、videoSource.cpp 位于目录 /home/jetson/jetson-inference/utils/video。1. videoSource 的定义我们先来看看 videoSource.h 的内容。class videoSource{public: static vi原创 2021-03-20 14:32:05 · 1430 阅读 · 0 评论 -
GStreamer官方入门课程8:短切管道——如何把数据灵活读出或写入管道
使用GStreamer建造的管道不需要完全封闭。数据可以随时以各种方式注入管道并从中提取。本教程显示:如何将外部数据注入通用GStreamer管道。如何从通用GStreamer管道中提取数据。如何访问和操作这些数据。回放教程3:缩短管道说明如何在基于playbin的管道中实现相同的目标。1. 引言应用程序可以通过多种方式与通过GStreamer管道的数据交互。本教程介绍了最简单的一个,因为它使用的元素都是为此目的创建的。用于将应用程序数据注入GStreamer管道的元素是appsrc,用于原创 2020-06-20 18:23:43 · 1747 阅读 · 0 评论