【GStreamer 】3-1 gstreamer插件之 videotestsrc 介绍

article/2025/11/8 2:13:20

目录

​编辑

1、简介

2、videotestsrc

3、videotestsrc 不同pattern参数测试罗列

3.1 (0): smpte - SMPTE 100% color bars

3.2 (1): snow - Random (television snow)

3.3 (2): black - 100% Black

​编辑

3.4 checkers 方块

​编辑

3.5 几何图形

4、videotestsrc 提供任意测试视频流


 

1、简介

        书接上回,在第3章中我们做了雪球测试,其命令是:

#需要显示器支持
gst-launch-1.0 videotestsrc pattern=ball ! videoconvert ! autovideosink
#不需要硬件显示器支持 推荐
gst-launch-1.0 videotestsrc pattern=ball ! xvimagesink

        其中有好几个插件我们其实都不是很清楚细节,这一部分,我们就补充说明,如何学习这些插件。也可以参考这个英文文档

videotestsrc

2、videotestsrc

        videotestsrc 插件是一个视频源的插件,只有src pad,所以他只能生产数据,具体生产什么数据,需要一些参数指定,这个数据源可以帮助我们再没有硬件输出的时候,快速的实现一些测试。

#gst-inspect 工具查看插件信息 跟Element名。会列出Element的详细信息。例如,下面的命令会列出videotestsrc所支持的输入数据类型,Pad信息,支持的属性及值。我们主要关注Pad Template,以及Element的属性信息。
gst-inspect-1.0  videotestsrc

        查询的输出内容

nvidia@nvidia-desktop:~$ gst-inspect-1.0  videotestsrc
Factory Details:Rank                     none (0)Long-name                Video test sourceKlass                    Source/VideoDescription              Creates a test video streamAuthor                   David A. Schleef <ds@schleef.org>
​
Plugin Details:Name                     videotestsrcDescription              Creates a test video streamFilename                 /usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstvideotestsrc.soVersion                  1.14.5License                  LGPLSource module            gst-plugins-baseSource release date      2019-05-29Binary package           GStreamer Base Plugins (Ubuntu)Origin URL               https://launchpad.net/distros/ubuntu/+source/gst-plugins-base1.0
​
GObject+----GInitiallyUnowned+----GstObject+----GstElement+----GstBaseSrc+----GstPushSrc+----GstVideoTestSrc
​
Pad Templates:SRC template: 'src'Availability: AlwaysCapabilities:video/x-rawformat: { (string)I420, (string)YV12, (string)YUY2, (string)UYVY, (string)AYUV, (string)RGBx, (string)BGRx, (string)xRGB, (string)xBGR, (string)RGBA, (string)BGRA, (string)ARGB, (string)ABGR, (string)RGB, (string)BGR, (string)Y41B, (string)Y42B, (string)YVYU, (string)Y444, (string)v210, (string)v216, (string)NV12, (string)NV21, (string)GRAY8, (string)GRAY16_BE, (string)GRAY16_LE, (string)v308, (string)RGB16, (string)BGR16, (string)RGB15, (string)BGR15, (string)UYVP, (string)A420, (string)RGB8P, (string)YUV9, (string)YVU9, (string)IYU1, (string)ARGB64, (string)AYUV64, (string)r210, (string)I420_10BE, (string)I420_10LE, (string)I422_10BE, (string)I422_10LE, (string)Y444_10BE, (string)Y444_10LE, (string)GBR, (string)GBR_10BE, (string)GBR_10LE, (string)NV16, (string)NV24, (string)NV12_64Z32, (string)A420_10BE, (string)A420_10LE, (string)A422_10BE, (string)A422_10LE, (string)A444_10BE, (string)A444_10LE, (string)NV61, (string)P010_10BE, (string)P010_10LE, (string)IYU2, (string)VYUY, (string)GBRA, (string)GBRA_10BE, (string)GBRA_10LE, (string)GBR_12BE, (string)GBR_12LE, (string)GBRA_12BE, (string)GBRA_12LE, (string)I420_12BE, (string)I420_12LE, (string)I422_12BE, (string)I422_12LE, (string)Y444_12BE, (string)Y444_12LE, (string)GRAY10_LE32, (string)NV12_10LE32, (string)NV16_10LE32 }width: [ 1, 2147483647 ]height: [ 1, 2147483647 ]framerate: [ 0/1, 2147483647/1 ]multiview-mode: { (string)mono, (string)left, (string)right }video/x-bayerformat: { (string)bggr, (string)rggb, (string)grbg, (string)gbrg }width: [ 1, 2147483647 ]height: [ 1, 2147483647 ]framerate: [ 0/1, 2147483647/1 ]multiview-mode: { (string)mono, (string)left, (string)right }
​
Element has no clocking capabilities.
Element has no URI handling capabilities.
​
Pads:SRC: 'src'Pad Template: 'src'
​
Element Properties:name                : The name of the objectflags: readable, writableString. Default: "videotestsrc0"parent              : The parent of the objectflags: readable, writableObject of type "GstObject"blocksize           : Size in bytes to read per buffer (-1 = default)flags: readable, writableUnsigned Integer. Range: 0 - 4294967295 Default: 4096 num-buffers         : Number of buffers to output before sending EOS (-1 = unlimited)flags: readable, writableInteger. Range: -1 - 2147483647 Default: -1 typefind            : Run typefind before negotiating (deprecated, non-functional)flags: readable, writable, deprecatedBoolean. Default: falsedo-timestamp        : Apply current stream time to buffersflags: readable, writableBoolean. Default: falsepattern             : Type of test pattern to generateflags: readable, writableEnum "GstVideoTestSrcPattern" Default: 0, "smpte"(0): smpte            - SMPTE 100% color bars(1): snow             - Random (television snow)(2): black            - 100% Black(3): white            - 100% White(4): red              - Red(5): green            - Green(6): blue             - Blue(7): checkers-1       - Checkers 1px(8): checkers-2       - Checkers 2px(9): checkers-4       - Checkers 4px(10): checkers-8       - Checkers 8px(11): circular         - Circular(12): blink            - Blink(13): smpte75          - SMPTE 75% color bars(14): zone-plate       - Zone plate(15): gamut            - Gamut checkers(16): chroma-zone-plate - Chroma zone plate(17): solid-color      - Solid color(18): ball             - Moving ball(19): smpte100         - SMPTE 100% color bars(20): bar              - Bar(21): pinwheel         - Pinwheel(22): spokes           - Spokes(23): gradient         - Gradient(24): colors           - Colorstimestamp-offset    : An offset added to timestamps set on buffers (in ns)flags: readable, writableInteger64. Range: 0 - 9223372036854775807 Default: 0 is-live             : Whether to act as a live sourceflags: readable, writableBoolean. Default: falsek0                  : Zoneplate zero order phase, for generating plain fields or phase offsetsflags: readable, writableInteger. Range: -2147483648 - 2147483647 Default: 0 kx                  : Zoneplate 1st order x phase, for generating constant horizontal frequenciesflags: readable, writableInteger. Range: -2147483648 - 2147483647 Default: 0 ky                  : Zoneplate 1st order y phase, for generating contant vertical frequenciesflags: readable, writableInteger. Range: -2147483648 - 2147483647 Default: 0 kt                  : Zoneplate 1st order t phase, for generating phase rotation as a function of timeflags: readable, writableInteger. Range: -2147483648 - 2147483647 Default: 0 kxt                 : Zoneplate x*t product phase, normalised to kxy/256 cycles per vertical pixel at width/2 from originflags: readable, writableInteger. Range: -2147483648 - 2147483647 Default: 0 kyt                 : Zoneplate y*t product phaseflags: readable, writableInteger. Range: -2147483648 - 2147483647 Default: 0 kxy                 : Zoneplate x*y product phaseflags: readable, writableInteger. Range: -2147483648 - 2147483647 Default: 0 kx2                 : Zoneplate 2nd order x phase, normalised to kx2/256 cycles per horizontal pixel at width/2 from originflags: readable, writableInteger. Range: -2147483648 - 2147483647 Default: 0 ky2                 : Zoneplate 2nd order y phase, normailsed to ky2/256 cycles per vertical pixel at height/2 from originflags: readable, writableInteger. Range: -2147483648 - 2147483647 Default: 0 kt2                 : Zoneplate 2nd order t phase, t*t/256 cycles per pictureflags: readable, writableInteger. Range: -2147483648 - 2147483647 Default: 0 xoffset             : Zoneplate 2nd order products x offsetflags: readable, writableInteger. Range: -2147483648 - 2147483647 Default: 0 yoffset             : Zoneplate 2nd order products y offsetflags: readable, writableInteger. Range: -2147483648 - 2147483647 Default: 0 foreground-color    : Foreground color to use (big-endian ARGB)flags: readable, writable, controllableUnsigned Integer. Range: 0 - 4294967295 Default: 4294967295 background-color    : Background color to use (big-endian ARGB)flags: readable, writable, controllableUnsigned Integer. Range: 0 - 4294967295 Default: 4278190080 horizontal-speed    : Scroll image number of pixels per frame (positive is scroll to the left)flags: readable, writableInteger. Range: -2147483648 - 2147483647 Default: 0 animation-mode      : For pattern=ball, which counter defines the position of the ball.flags: readable, writableEnum "GstVideoTestSrcAnimationMode" Default: 0, "frames"(0): frames           - frame count(1): wall-time        - wall clock time(2): running-time     - running timemotion              : For pattern=ball, what motion the ball doesflags: readable, writableEnum "GstVideoTestSrcMotionType" Default: 0, "wavy"(0): wavy             - Ball waves back and forth, up and down(1): sweep            - 1 revolution per second(2): hsweep           - 1/2 revolution per second, then reset to topflip                : For pattern=ball, invert colors every second.flags: readable, writableBoolean. Default: false

从所有信息中可以看到这个插件只有src,其次输出格式是 video/x-raw数据。

Pad Templates:SRC template: 'src'Availability: AlwaysCapabilities:video/x-rawPads:SRC: 'src'Pad Template: 'src'

        从测试命令中我们可以看到gst-launch-1.0 videotestsrc pattern=ball ! xvimagesink,pattern参数,这个也在详细信息中有一一列举。

pattern             : Type of test pattern to generateflags: readable, writableEnum "GstVideoTestSrcPattern" Default: 0, "smpte"(0): smpte            - SMPTE 100% color bars(1): snow             - Random (television snow)(2): black            - 100% Black(3): white            - 100% White(4): red              - Red(5): green            - Green(6): blue             - Blue(7): checkers-1       - Checkers 1px(8): checkers-2       - Checkers 2px(9): checkers-4       - Checkers 4px(10): checkers-8       - Checkers 8px(11): circular         - Circular(12): blink            - Blink(13): smpte75          - SMPTE 75% color bars(14): zone-plate       - Zone plate(15): gamut            - Gamut checkers(16): chroma-zone-plate - Chroma zone plate(17): solid-color      - Solid color(18): ball             - Moving ball(19): smpte100         - SMPTE 100% color bars(20): bar              - Bar(21): pinwheel         - Pinwheel(22): spokes           - Spokes(23): gradient         - Gradient(24): colors           - Colors

3、videotestsrc 不同pattern参数测试罗列

3.1 (0): smpte - SMPTE 100% color bars

gst-launch-1.0 videotestsrc pattern=smpte ! xvimagesink

3.2 (1): snow - Random (television snow)

gst-launch-1.0 videotestsrc pattern=snow ! xvimagesink

 

 

3.3 (2): black - 100% Black

gst-launch-1.0 videotestsrc pattern=black ! xvimagesink

                       (3): white            - 100% White(4): red              - Red(5): green            - Green(6): blue             - Blue
#白色
gst-launch-1.0 videotestsrc pattern=white ! xvimagesink
#红色
gst-launch-1.0 videotestsrc pattern=red ! xvimagesink
#绿色
gst-launch-1.0 videotestsrc pattern=green ! xvimagesink
#蓝色
gst-launch-1.0 videotestsrc pattern=blue ! xvimagesink

 

 

3.4 checkers 方块

                           (7): checkers-1       - Checkers 1px(8): checkers-2       - Checkers 2px(9): checkers-4       - Checkers 4px(10): checkers-8       - Checkers 8px
#棕色
gst-launch-1.0 videotestsrc pattern=checkers-1 ! xvimagesink
#米字格 checkers-4
gst-launch-1.0 videotestsrc pattern=checkers-4 ! xvimagesink
#米字格 checkers-8
gst-launch-1.0 videotestsrc pattern=checkers-8 ! xvimagesink

3.5 几何图形

(11): circular         - Circular
(18): ball             - Moving ball
(20): bar              - Bar
(21): pinwheel         - Pinwheel
(22): spokes           - Spokes
(23): gradient         - Gradient
#圆形
gst-launch-1.0 videotestsrc pattern=circular ! xvimagesink

#圆形
gst-launch-1.0 videotestsrc pattern=pinwheel ! xvimagesink

4、videotestsrc 提供任意测试视频流

        pattern既可以是数字 [0,24] 也可以是符号。某些模式可以使用其他参数进行调整。要以给定的帧率,大小 生成测试模式,可以使用“过滤器”:

#很早的旧版本写法
gst-launch videotestsrc ! video/x-raw-rgb, framerate=25/1, width=640, height=360 ! ximagesink
#现在的写法
gst-launch-1.0 videotestsrc ! video/x-raw, framerate=25/1, width=640, height=360 ! ximagesink

 

所以可以用上述命令自己调整,生成很多测试视频格式,来提升测试效率。

觉得以上有点用处,点个赞呗,谢谢。


http://chatgpt.dhexx.cn/article/EaLTfoI0.shtml

相关文章

Gstreamer概述

1、什么是GStreamer GStreamer 是用来构建流媒体应用的开源多媒体框架(framework)&#xff0c;其基本设计思想来自于俄勒冈(Oregon)研究生学院有关视频管道的创意, 同时也借鉴了DirectShow的设计思想。其目标是要简化音/视频应用程序的开发&#xff0c;已经能够被用来处理像 M…

gstreamer简介

常用 gchar * caps_string gst_caps_to_string (new_selected_caps); g_free (caps_string); 需要弄懂的问题 tunnel tee queue 最后列一下Gstreamer中常见的时间宏&#xff0c;注意Gstreamer中的时间单位是&#xff1a;纳秒 #define G_USEC_PER_SEC 1000000 #define GST_S…

Gstreamer基础知识介绍

由于deepstream是基于gstreamer的&#xff0c;所以要想在deepstream上做拓展&#xff0c;需要对gstreamer有一定的认识。以下主要介绍Gstreamer整体框架和Gstreamer基础概念。 一、Gstreamer整体框架 gstreamer是一个用于开发流式多媒体应用的开源框架。本身这个框架是为了更…

【GStreamer 】1-扫盲介绍

从历史的角度来看&#xff0c;Linux 在多媒体方面已经远远落后于其它的操作系统。微软的Windows和苹果的MacOS它们对多媒体设备、多媒体创作、播放和实时处理等方面已经有了很好的支持。另一方面&#xff0c;Linux对多媒体应用的综合贡献比较少&#xff0c;这也使得Linux很难在…

详细的GStreamer开发教程

详细的GStreamer开发教程 文章目录 详细的GStreamer开发教程1. 什么是GStreamer&#xff1f;2. GStreamer架构2.1 Media Applications2.2 Core Framework2.3 Plugins 3. GStreamer组件3.1 Element创建一个 GstElement 3.2 箱柜&#xff08;bin&#xff09;元件的状态 3.3 衬垫&…

gstreamer(一)入门和概述

一&#xff0e;概述 在音视频领域接触最多实现的方案通常是通过ffmpeg&#xff08;PC和sever端居多&#xff09;或者硬件厂家的的SDK实现特定硬件的编解码功能&#xff08;机顶盒&#xff0c;电视等嵌入式设备&#xff09;。这里我们介绍一个在国内不太常用的解决方案----gstr…

二、什么是GStreamer

GStreamer是一个用于创建流媒体应用程序的框架。基本的设计来自俄勒冈研究生院的视频管道&#xff0c;还有一些来自DirectShow的想法。 GStreamer的开发框架使编写任何类型的流媒体应用程序成为可能。GStreamer框架旨在使编写处理音频或视频或两者同时处理的应用程序变得容易。…

Gstreamer 应用开发:1-基础介绍

我们之前的系列&#xff0c;正式的介绍了Gstreamer&#xff0c;并且围绕如何使用USB相机推流实现RTSP服务器来做了介绍&#xff0c;并在Jeston TX1 平台上做了优化急速的一些探索。 今天我们开始围绕如何用命令实现一个音视频混合&#xff0c;或者单独的音频&#xff0c;和单独…

【gstreamer】入门介绍

概述 GStreamer是一个基于流媒体的框架&#xff0c;是一个开放源代码的多媒体框架&#xff0c;用于创建音频和视频处理应用程序。它是一个运行在多个操作系统上的跨平台框架&#xff0c;支持多种不同的多媒体格式。 GStreamer框架的核心是基于插件的体系结构&#xff0c;插件…

Gstreamer基础讲解

Gstreamer讲解 文章目录 Gstreamer讲解基础背景小结 元件&#xff08;Element&#xff09;衬垫(Pads)Gstreamer的面向对象Gstreamer的多线程 实用工具Gstreamer常用插件介绍gstreamer工程记录关于YUV的补充知识 基础 背景 ​ 从历史的角度来看&#xff0c;Linux在多媒体方面已…

Gstreamer 简介

转载自&#xff1a;John.Leng - 博客园http://www.cnblogs.com/xleng/ 什么是Gstreamer&#xff1f; Gstreamer是一个支持Windows&#xff0c;Linux&#xff0c;Android&#xff0c; iOS的跨平台的多媒体框架&#xff0c;应用程序可以通过管道&#xff08;Pipeline&#xff0…

微博视频怎么下载?微博视频下载和保存工具

本文转载自&#xff1a;怎么下载微博视频 ​​​微博视频怎么下载&#xff1f;当你刷微博看到自己特别喜欢的视频时&#xff0c;除了转发该视频到自己的微博外&#xff0c;你可能还想把这个微博视频保存到自己电脑或者手机中&#xff0c;那应该怎么实现weibo视频的下载呢&#…

GitHub 标星 120K+!这些神器仅需一行代码即可下载全网视频!

大家好&#xff0c;我是 JackTian。 今天这篇文章的内容对于经常浏览各大视频网站的同学来说&#xff0c;是一大神器工具。当你看到自己目前所需的视频时想尽各种办法保存至本地&#xff0c;方便后期再次回看。恰巧有些视频可能需要会员才能够下载&#xff0c;有些第三方的视频…

那些你可能不知道的视频下载奇技淫巧

之前已经写过好几篇的奇技淫巧系列了&#xff0c;今天说说怎么快速下载视频。 我平常经常看视频的网站就是爱奇艺&#xff0c;b站&#xff0c;微博&#xff0c;知乎&#xff0c;网易这些。 这里以微博为例&#xff0c;下载周杰伦的《晴天》&#xff0c;微博地址是 https://w…

部分主流视频网站下载方法

如果在微博或其他视频网站上看到非常喜欢的视频&#xff0c;想下载下来&#xff0c;但是又苦于不知如何下载。 这里我推荐一个网站&#xff0c;支持主流的86视频网站&#xff08;发表博客时&#xff09;的视频下载。 主流视频网站(16)&#xff1a; 搜狐视频 乐视网 酷6网 56…

快手火山抖音视频怎么快速去重消重和去水印秒拍视频批量采集下载怎么快速去重消重去水印视频批量采...

快手火山抖音视频怎么快速去重消重和去水印 秒拍视频批量采集下载 怎么快速去重消重去水印 视频批量采集下载软件&#xff0c;怎么找到视频批量采集下载软件 趣头条今日头条等自媒体视频批量采集下载软件有哪些&#xff1f; 大鱼号视频批量采集下载去重消重去水印软件 视频怎么…

硕鼠——前些年很好用的视频下载神器

前言 首先解释一下为什么要说是前几年。因为它太好用&#xff0c;知道的人越来越多&#xff0c;导致引起了视频平台的注意&#xff0c;以版权为由禁止自己的视频从硕鼠下载。这里推荐小众软件Annie&#xff0c;在我的另一篇中有介绍&#xff0c;传送门。 官方网站 http://w…

网页保存视频最有效的几种方法

最近朋友问我了这样的问题&#xff1a; 如何才能把网络上的视频下载下来当做课堂资料播放呢&#xff1f; 的确&#xff0c;这个问题也困过我&#xff1a; 想要下载视频作为课件素材播放&#xff1a; 在微博收藏了许多有关「技能学习」的视频&#xff0c;但等到想看的时候发…

性能比肩美拍秒拍的Android视频录制编辑特效解决方案

前言 众所周知&#xff0c;Android平台开发分为Java层和C层&#xff0c;即Android SDK和Android NDK。常规产品功能只需要涉及到Java层即可&#xff0c;除非特殊需要是不需要引入NDK的。但如果是进行音视频开发呢&#xff1f; Android系统Java层API对音视频的支持在MediaCode…

仿秒拍视频网UI主题模板+Emlog内核开发

介绍: 高仿秒拍视频网emlog主题模板&#xff0c;相似度非常高&#xff0c;EMLOG加上这款模板完全可以用来当做视频网站使用&#xff0c;这款模板可以插入秒拍网的视频&#xff0c;只需要输入秒拍网的视频ID就可以直接调用播放&#xff0c;并且支持直接调用MP4视频链接播放&…