selkies-project / selkies-gstreamer

Open-Source Low-Latency Linux WebRTC HTML5 Remote Desktop and 3D Graphics / Game Streaming Platform with GStreamer
Mozilla Public License 2.0
224 stars 42 forks source link

[META] Codec improvement and additional support including AV1/H.265, Intel/AMD GPU encoding support #34

Open ehfd opened 2 years ago

ehfd commented 2 years ago

Looking for contributors to help out.

Guide for improving video encoder parameters (also applicable to non-NVIDIA encoders): https://docs.nvidia.com/video-technologies/video-codec-sdk/12.2/nvenc-video-encoder-api-prog-guide/index.html#recommended-nvenc-settings__table-nvenc-settings

Remember that live (as in < 100 ms) streaming is all about keeping the bitrate consistent at all frames to minimize congestion from unexpected bandwidth spikes (which lead to stutters and latency spikes) and keeping the buffer small. Use the configured Constant Bitrate bandwidth as possible at all times but do not go over it (ideal maximum overshoot tolerance = 10%).

Priority: Latency > Quality (minimum sacrifices of <= 5% in latency for quality or bandwidth consistency is acceptable, using more GPU resources or CPU cores also acceptable if without latency impact) >> Overall Bandwidth Efficiency (since encoded frames are only used once unlike .mp4/.mkv)

This is also applicable to other encoders if available.

*: These features are useful for error recovery during transmission across noisy mediums. For usecases where the client requires reduced video memory footprint (this typically means reducing any buffer that exists, preventing frame lag, except the ones unrelated to latency, stated below**), following guidelines should be followed.

ehfd commented 1 year ago

#42 implements vaapih264enc. However, for Intel GPUs this is only limited to LIBVA_DRIVER_NAME=i965, which means that the iHD driver is unable to be used. Moreover, performance with ximagesrc is very low with Xorg on Intel GPUs somehow.

vah264enc is going to come in GStreamer 1.21 or 1.22. This is a more modern implementation, and vaapih264enc will get frozen. Investigate this when it comes. Implemented on both i965 and iHD.

AMD's AMF API and Intel's Media SDK may also deliver better performance. Therefore, this issue is not being closed and more contribution is needed.

Note: https://blogs.igalia.com/vjaquez/2018/03/28/gstreamer-va-api-troubleshooting/

Relevant code: https://github.com/selkies-project/selkies-gstreamer/blob/master/src/selkies_gstreamer/gstwebrtc_app.py Anyone with GStreamer experience, or willing to learn can solve this.

Supporting GPU statistics is also needed. GPUtils only supports NVIDIA.

ehfd commented 1 year ago

AV1 encoders will come soon to NVIDIA and Intel. AV1 should be possible to be used as a decoding codec for major web browsers. This should be available to GStreamer soon and confirmed it is in the works.

ehfd commented 1 year ago

Relevant: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1489 https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1494

ehfd commented 1 year ago

More discussions are going on related to the VAAPI plugin in https://github.com/selkies-project/selkies-gstreamer/pull/42.

maxpain commented 10 months ago

Does selkies-gstreamer support AV1 codec for now?

ehfd commented 9 months ago

https://github.com/selkies-project/selkies-gstreamer/commit/bce15bac9c455cf24ab5cca5ec6d6e3406b90811

Thanks to austriangam3r:

got the amd hardware acceleration working with the newest gstreamer version, the segfaults happen when some property of the data channel is accessed in newer gstreamer versions Change this in gstwebrtc_app.py and the segfaults disappear image

ehfd commented 9 months ago

Does selkies-gstreamer support AV1 codec for now?

@maxpain Depends on the web browser. I'm trying to make updates.

maxpain commented 9 months ago

@ehfd Chrome supports WebRTC AV1 encoder starting from v90 beta

ehfd commented 9 months ago

We need this. https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1489

AV1 support tends to be meaningless without support from NVIDIA.

ehfd commented 9 months ago

vah264enc is added in commit https://github.com/selkies-project/selkies-gstreamer/commit/736292ca1ef7e1a705330d1b70f9d23bb09d9d0f as well as the upgrade to GStreamer 1.22.

The msdk plugins for Intel GPUs and amf plugins for AMD GPUs may provide additional improvements.

https://gstreamer.freedesktop.org/documentation/msdk/msdkh264enc.html https://gstreamer.freedesktop.org/documentation/msdk/msdkh265enc.html https://gstreamer.freedesktop.org/documentation/msdk/msdkav1enc.html https://gstreamer.freedesktop.org/documentation/msdk/msdkvp9enc.html

https://gstreamer.freedesktop.org/documentation/amfcodec/amfh264enc.html https://gstreamer.freedesktop.org/documentation/amfcodec/amfh265enc.html

ehfd commented 9 months ago

The above addition is NOT tested, thus everyone is encouraged to feedback.

ehfd commented 8 months ago

subprojects/gst-plugins-bad/sys/amfcodec/meson.build:53:4: ERROR: Problem encountered: amf plugin supports only Windows

AMD users on Linux are stuck with va until the Vulkan backend is implemented to GStreamer.

Check https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5811

ehfd commented 8 months ago

Look for ADD_ENCODER in gstwebrtc_app.py and add details in order to add a new encoder.

I will implement these after 6-12 months if there are no contributions.

Anything other than these will be done after GStreamer 1.24 is out.

ehfd commented 7 months ago

https://webrtc.googlesource.com/src/+/972f28335a7f989ee1ffccb7c64fda1f29e09747

H.265 coming to Chromium?

https://github.com/WebKit/WebKit/pull/15494

And an apparent solution to the packetization issue in Apple.

ehfd commented 7 months ago

Note to self regarding x264enc - option added to the pipeline:

https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3034

ehfd commented 6 months ago

Encoder settings: https://github.com/LizardByte/Sunshine/blob/29a1b1539fb2e0e82d02e521954b163c6d9d55d1/src/video.cpp#L568-L994

ehfd commented 2 months ago

H.264 is implemented and tested via vah264enc with Intel and AMD GPUs.

ehfd commented 2 months ago

vaav1enc arrived in GStreamer 1.24.0.

ehfd commented 2 months ago

GStreamer 1.24.0 and Rust plugins are now enabled.

ehfd commented 1 month ago

openh264enc and rav1enc encoders are implemented and AV1 is finally supported.

H.265 is currently not in Chromium. I cannot test Safari without the device.

Waiting for VA AV1/VP9 encoders and NVIDIA AV1 encoders. SVT-AV1 is also good.

ehfd commented 1 month ago
Plugin Details:
  Name                     va
  Description              VA-API codecs plugin
  Filename                 /opt/gstreamer/lib/x86_64-linux-gnu/gstreamer-1.0/libgstva.so
  Version                  1.24.3
  License                  LGPL
  Source module            gst-plugins-bad
  Documentation            https://gstreamer.freedesktop.org/documentation/va/
  Source release date      2024-04-30
  Binary package           GStreamer Bad Plug-ins source release
  Origin URL               Unknown package origin

  vaav1dec: VA-API AV1 Decoder in Intel(R) Gen Graphics
  vaav1lpenc: VA-API AV1 Low Power Encoder in Intel(R) Gen Graphics
  vacompositor: VA-API Video Compositor in Intel(R) Gen Graphics
  vadeinterlace: VA-API Deinterlacer in Intel(R) Gen Graphics
  vah264dec: VA-API H.264 Decoder in Intel(R) Gen Graphics
  vah264lpenc: VA-API H.264 Low Power Encoder in Intel(R) Gen Graphics
  vah265dec: VA-API H.265 Decoder in Intel(R) Gen Graphics
  vah265lpenc: VA-API H.265 Low Power Encoder in Intel(R) Gen Graphics
  vajpegdec: VA-API JPEG Decoder in Intel(R) Gen Graphics
  vampeg2dec: VA-API Mpeg2 Decoder in Intel(R) Gen Graphics
  vapostproc: VA-API Video Postprocessor in Intel(R) Gen Graphics
  varenderD129compositor: VA-API Video Compositor in AMD Radeon Vega Frontier Edition in renderD129
  varenderD129deinterlace: VA-API Deinterlacer in AMD Radeon Vega Frontier Edition in renderD129
  varenderD129h264dec: VA-API H.264 Decoder in AMD Radeon Vega Frontier Edition in renderD129
  varenderD129h264enc: VA-API H.264 Encoder in AMD Radeon Vega Frontier Edition in renderD129
  varenderD129h265dec: VA-API H.265 Decoder in AMD Radeon Vega Frontier Edition in renderD129
  varenderD129h265enc: VA-API H.265 Encoder in AMD Radeon Vega Frontier Edition in renderD129
  varenderD129mpeg2dec: VA-API Mpeg2 Decoder in AMD Radeon Vega Frontier Edition in renderD129
  varenderD129postproc: VA-API Video Postprocessor in AMD Radeon Vega Frontier Edition in renderD129
  vavp9dec: VA-API VP9 Decoder in Intel(R) Gen Graphics
Plugin Details:
  Name                     va
  Description              VA-API codecs plugin
  Filename                 /opt/gstreamer/lib/x86_64-linux-gnu/gstreamer-1.0/libgstva.so
  Version                  1.25.0.1
  License                  LGPL
  Source module            gst-plugins-bad
  Documentation            https://gstreamer.freedesktop.org/documentation/va/
  Binary package           GStreamer Bad Plug-ins git
  Origin URL               Unknown package origin

  vaav1dec: VA-API AV1 Decoder in Intel(R) Gen Graphics
  vaav1lpenc: VA-API AV1 Low Power Encoder in Intel(R) Gen Graphics
  vacompositor: VA-API Video Compositor in Intel(R) Gen Graphics
  vadeinterlace: VA-API Deinterlacer in Intel(R) Gen Graphics
  vah264dec: VA-API H.264 Decoder in Intel(R) Gen Graphics
  vah264lpenc: VA-API H.264 Low Power Encoder in Intel(R) Gen Graphics
  vah265dec: VA-API H.265 Decoder in Intel(R) Gen Graphics
  vah265lpenc: VA-API H.265 Low Power Encoder in Intel(R) Gen Graphics
  vajpegdec: VA-API JPEG Decoder in Intel(R) Gen Graphics
  vampeg2dec: VA-API Mpeg2 Decoder in Intel(R) Gen Graphics
  vapostproc: VA-API Video Postprocessor in Intel(R) Gen Graphics
  vavp9dec: VA-API VP9 Decoder in Intel(R) Gen Graphics
  vavp9lpenc: VA-API VP9 Low Power Encoder in Intel(R) Gen Graphics

  13 features:
  +-- 13 elements
Factory Details:
  Rank                     none (0)
  Long-name                VA-API VP9 Low Power Encoder in Intel(R) Gen Graphics
  Klass                    Codec/Encoder/Video/Hardware
  Description              VA-API based VP9 low power video encoder
  Author                   He Junyan <junyan.he@intel.com>
  Documentation            https://gstreamer.freedesktop.org/documentation/va/vavp9lpenc.html

Plugin Details:
  Name                     va
  Description              VA-API codecs plugin
  Filename                 /opt/gstreamer/lib/x86_64-linux-gnu/gstreamer-1.0/libgstva.so
  Version                  1.25.0.1
  License                  LGPL
  Source module            gst-plugins-bad
  Documentation            https://gstreamer.freedesktop.org/documentation/va/
  Binary package           GStreamer Bad Plug-ins git
  Origin URL               Unknown package origin

GObject
 +----GInitiallyUnowned
       +----GstObject
             +----GstElement
                   +----GstVideoEncoder
                         +----GstVaBaseEnc
                               +----GstVaVP9LPEnc

Implemented Interfaces:
  GstPreset

Pad Templates:
  SINK template: 'sink'
    Availability: Always
    Capabilities:
      video/x-raw(memory:VAMemory)
                  width: [ 128, 8192 ]
                 height: [ 96, 8192 ]
                 format: { (string)NV12, (string)VUYA, (string)P010_10LE, (string)P012_LE, (string)Y410, (string)Y412_LE, (string)ARGB, (string)ABGR }
      video/x-raw(memory:DMABuf)
                  width: [ 128, 8192 ]
                 height: [ 96, 8192 ]
                 format: DMA_DRM
             drm-format: { (string)NV12:0x0100000000000009, (string)AYUV:0x0100000000000009, (string)P010:0x0100000000000009, (string)P012:0x0100000000000009, (string)Y410:0x0100000000000009, (string)Y412:0x0100000000000009, (string)AR24:0xfefffffffffffffe, (string)AB24:0xfefffffffffffffe }
      video/x-raw
                  width: [ 128, 8192 ]
                 height: [ 96, 8192 ]
                 format: { (string)NV12, (string)VUYA, (string)P010_10LE, (string)P012_LE, (string)Y410, (string)Y412_LE, (string)ARGB, (string)ABGR }

  SRC template: 'src'
    Availability: Always
    Capabilities:
      video/x-vp9
                profile: { (string)0, (string)1, (string)2, (string)3 }
                  width: [ 1, 8192 ]
                 height: [ 1, 8192 ]
              alignment: super-frame

Element has no clocking capabilities.
Element has no URI handling capabilities.

Pads:
  SINK: 'sink'
    Pad Template: 'sink'
  SRC: 'src'
    Pad Template: 'src'

Element Properties:

  bitrate             : The desired bitrate expressed in kbps (0: auto-calculate)
                        flags: readable, writable, changeable in NULL, READY, PAUSED or PLAYING state
                        Unsigned Integer. Range: 0 - 2048000 Default: 0

  cpb-size            : The desired max CPB size in Kb (0: auto-calculate)
                        flags: readable, writable, changeable in NULL, READY, PAUSED or PLAYING state
                        Unsigned Integer. Range: 0 - 2048000 Default: 0

  device-path         : DRM device path
                        flags: readable
                        String. Default: "/dev/dri/renderD128"

  gf-group-size       : The size of the golden frame group.
                        flags: readable, writable
                        Unsigned Integer. Range: 1 - 32 Default: 8

  hierarchical-level  : The hierarchical level for golden frame group. Setting to 1 disables all future reference
                        flags: readable, writable
                        Unsigned Integer. Range: 1 - 6 Default: 6

  key-int-max         : The maximal distance between two keyframes. It decides the size of GOP (0: auto-calculate)
                        flags: readable, writable
                        Unsigned Integer. Range: 0 - 1024 Default: 60

  loop-filter-level   : Controls the deblocking filter strength, -1 means auto calculation
                        flags: readable, writable, changeable in NULL, READY, PAUSED or PLAYING state
                        Integer. Range: -1 - 63 Default: -1

  max-qp              : Maximum quantizer value for each frame
                        flags: readable, writable
                        Unsigned Integer. Range: 1 - 255 Default: 255

  mbbrc               : Macroblock level Bitrate Control. It is not compatible with CQP
                        flags: readable, writable
                        Enum "GstVaFeature" Default: 0, "disabled"
                           (0): disabled         - GST_VA_FEATURE_DISABLED
                           (1): enabled          - GST_VA_FEATURE_ENABLED
                           (2): auto             - GST_VA_FEATURE_AUTO

  min-force-key-unit-interval: Minimum interval between force-keyunit requests in nanoseconds
                        flags: readable, writable
                        Unsigned Integer64. Range: 0 - 18446744073709551615 Default: 0

  min-qp              : Minimum quantizer value for each frame
                        flags: readable, writable
                        Unsigned Integer. Range: 0 - 255 Default: 0

  name                : The name of the object
                        flags: readable, writable
                        String. Default: "vavp9lpenc0"

  parent              : The parent of the object
                        flags: readable, writable
                        Object of type "GstObject"

  qos                 : Handle Quality-of-Service events from downstream
                        flags: readable, writable
                        Boolean. Default: false

  qp                  : In CQP mode, it specifies the basic quantizer value for all frames. In ICQ and QVBR modes, it specifies a quality factor. In other modes, it is ignored
                        flags: readable, writable, changeable in NULL, READY, PAUSED or PLAYING state
                        Unsigned Integer. Range: 0 - 255 Default: 60

  rate-control        : The desired rate control mode for the encoder
                        flags: readable, writable, conditionally available, changeable in NULL, READY, PAUSED or PLAYING state
                        Enum "GstVaEncoderRateControl_VP90_LP_renderD128" Default: 2, "cbr"
                           (2): cbr              - Constant Bitrate
                           (4): vbr              - Variable Bitrate
                           (16): cqp              - Constant Quantizer
                           (64): icq              - Intelligent Constant Quality

  ref-frames          : Number of reference frames, including both the forward and the backward
                        flags: readable, writable
                        Unsigned Integer. Range: 0 - 3 Default: 3

  sharpness-level     : Controls the deblocking filter sensitivity
                        flags: readable, writable, changeable in NULL, READY, PAUSED or PLAYING state
                        Unsigned Integer. Range: 0 - 7 Default: 0

  target-percentage   : The percentage for 'target bitrate'/'maximum bitrate' (Only in VBR)
                        flags: readable, writable, changeable in NULL, READY, PAUSED or PLAYING state
                        Unsigned Integer. Range: 50 - 100 Default: 66

  target-usage        : The target usage to control and balance the encoding speed/quality
                        flags: readable, writable, changeable in NULL, READY, PAUSED or PLAYING state
                        Unsigned Integer. Range: 1 - 7 Default: 4
Factory Details:
  Rank                     none (0)
  Long-name                VA-API AV1 Low Power Encoder in Intel(R) Gen Graphics
  Klass                    Codec/Encoder/Video/Hardware
  Description              VA-API based AV1 low power video encoder
  Author                   He Junyan <junyan.he@intel.com>
  Documentation            https://gstreamer.freedesktop.org/documentation/va/vaav1lpenc.html

Plugin Details:
  Name                     va
  Description              VA-API codecs plugin
  Filename                 /opt/gstreamer/lib/x86_64-linux-gnu/gstreamer-1.0/libgstva.so
  Version                  1.24.3
  License                  LGPL
  Source module            gst-plugins-bad
  Documentation            https://gstreamer.freedesktop.org/documentation/va/
  Source release date      2024-04-30
  Binary package           GStreamer Bad Plug-ins source release
  Origin URL               Unknown package origin

GObject
 +----GInitiallyUnowned
       +----GstObject
             +----GstElement
                   +----GstVideoEncoder
                         +----GstVaBaseEnc
                               +----GstVaAV1LPEnc

Implemented Interfaces:
  GstPreset

Pad Templates:
  SINK template: 'sink'
    Availability: Always
    Capabilities:
      video/x-raw(memory:VAMemory)
                  width: [ 32, 8192 ]
                 height: [ 32, 8192 ]
                 format: { (string)NV12, (string)P010_10LE }
      video/x-raw(memory:DMABuf)
                  width: [ 32, 8192 ]
                 height: [ 32, 8192 ]
                 format: DMA_DRM
             drm-format: { (string)NV12:0x0100000000000009, (string)P010:0x0100000000000009 }
      video/x-raw
                  width: [ 32, 8192 ]
                 height: [ 32, 8192 ]
                 format: { (string)NV12, (string)P010_10LE }

  SRC template: 'src'
    Availability: Always
    Capabilities:
      video/x-av1
                profile: main
                  width: [ 1, 8192 ]
                 height: [ 1, 8192 ]
              alignment: tu
          stream-format: obu-stream

Element has no clocking capabilities.
Element has no URI handling capabilities.

Pads:
  SINK: 'sink'
    Pad Template: 'sink'
  SRC: 'src'
    Pad Template: 'src'

Element Properties:

  bitrate             : The desired bitrate expressed in kbps (0: auto-calculate)
                        flags: readable, writable
                        Unsigned Integer. Range: 0 - 2048000 Default: 0

  cpb-size            : The desired max CPB size in Kb (0: auto-calculate)
                        flags: readable, writable
                        Unsigned Integer. Range: 0 - 2048000 Default: 0

  device-path         : DRM device path
                        flags: readable
                        String. Default: "/dev/dri/renderD128"

  gf-group-size       : The size of the golden frame group.
                        flags: readable, writable
                        Unsigned Integer. Range: 1 - 32 Default: 32

  hierarchical-level  : The hierarchical level for golden frame group. Setting to 1 disables all future reference
                        flags: readable, writable
                        Unsigned Integer. Range: 1 - 6 Default: 6

  key-int-max         : The maximal distance between two keyframes. It decides the size of GOP (0: auto-calculate)
                        flags: readable, writable
                        Unsigned Integer. Range: 0 - 1024 Default: 60

  max-qp              : Maximum quantizer value for each frame
                        flags: readable, writable
                        Unsigned Integer. Range: 1 - 255 Default: 255

  mbbrc               : Macroblock level Bitrate Control. It is not compatible with CQP
                        flags: readable, writable
                        Enum "GstVaFeature" Default: 0, "disabled"
                           (0): disabled         - GST_VA_FEATURE_DISABLED
                           (1): enabled          - GST_VA_FEATURE_ENABLED
                           (2): auto             - GST_VA_FEATURE_AUTO

  min-force-key-unit-interval: Minimum interval between force-keyunit requests in nanoseconds
                        flags: readable, writable
                        Unsigned Integer64. Range: 0 - 18446744073709551615 Default: 0

  min-qp              : Minimum quantizer value for each frame
                        flags: readable, writable
                        Unsigned Integer. Range: 0 - 255 Default: 0

  name                : The name of the object
                        flags: readable, writable
                        String. Default: "vaav1lpenc0"

  num-tile-cols       : The number of columns for tile encoding
                        flags: readable, writable
                        Unsigned Integer. Range: 1 - 64 Default: 1

  num-tile-rows       : The number of rows for tile encoding
                        flags: readable, writable
                        Unsigned Integer. Range: 1 - 64 Default: 1

  parent              : The parent of the object
                        flags: readable, writable
                        Object of type "GstObject"

  qos                 : Handle Quality-of-Service events from downstream
                        flags: readable, writable
                        Boolean. Default: false

  qp                  : The basic quantizer value for all frames.
                        flags: readable, writable
                        Unsigned Integer. Range: 0 - 255 Default: 128

  rate-control        : The desired rate control mode for the encoder
                        flags: readable, writable, conditionally available
                        Enum "GstVaEncoderRateControl_AV01_LP_renderD128" Default: 2, "cbr"
                           (2): cbr              - Constant Bitrate
                           (4): vbr              - Variable Bitrate
                           (16): cqp              - Constant Quantizer

  ref-frames          : Number of reference frames, including both the forward and the backward
                        flags: readable, writable
                        Unsigned Integer. Range: 0 - 7 Default: 7

  superblock-128x128  : Enable the 128x128 superblock mode
                        flags: readable, writable
                        Boolean. Default: false

  target-percentage   : The percentage for 'target bitrate'/'maximum bitrate' (Only in VBR)
                        flags: readable, writable
                        Unsigned Integer. Range: 50 - 100 Default: 66

  target-usage        : The target usage to control and balance the encoding speed/quality
                        flags: readable, writable
                        Unsigned Integer. Range: 1 - 7 Default: 4

  tile-groups         : Number of tile groups for each frame
                        flags: readable, writable
                        Unsigned Integer. Range: 1 - 4096 Default: 1
Factory Details:
  Rank                     none (0)
  Long-name                VA-API H.264 Low Power Encoder in Intel(R) Gen Graphics
  Klass                    Codec/Encoder/Video/Hardware
  Description              VA-API based H.264 low power video encoder
  Author                   He Junyan <junyan.he@intel.com>
  Documentation            https://gstreamer.freedesktop.org/documentation/va/vah264lpenc.html

Plugin Details:
  Name                     va
  Description              VA-API codecs plugin
  Filename                 /opt/gstreamer/lib/x86_64-linux-gnu/gstreamer-1.0/libgstva.so
  Version                  1.24.3
  License                  LGPL
  Source module            gst-plugins-bad
  Documentation            https://gstreamer.freedesktop.org/documentation/va/
  Source release date      2024-04-30
  Binary package           GStreamer Bad Plug-ins source release
  Origin URL               Unknown package origin

GObject
 +----GInitiallyUnowned
       +----GstObject
             +----GstElement
                   +----GstVideoEncoder
                         +----GstVaBaseEnc
                               +----GstVaH264LPEnc

Implemented Interfaces:
  GstPreset

Pad Templates:
  SINK template: 'sink'
    Availability: Always
    Capabilities:
      video/x-raw(memory:VAMemory)
                  width: [ 32, 4096 ]
                 height: [ 32, 4096 ]
                 format: NV12
      video/x-raw(memory:DMABuf)
                  width: [ 32, 4096 ]
                 height: [ 32, 4096 ]
                 format: DMA_DRM
             drm-format: NV12:0x0100000000000009
      video/x-raw
                  width: [ 32, 4096 ]
                 height: [ 32, 4096 ]
                 format: NV12

  SRC template: 'src'
    Availability: Always
    Capabilities:
      video/x-h264
                profile: { (string)main, (string)high, (string)constrained-baseline }
                  width: [ 1, 4096 ]
                 height: [ 1, 4096 ]
              alignment: au
          stream-format: byte-stream

Element has no clocking capabilities.
Element has no URI handling capabilities.

Pads:
  SINK: 'sink'
    Pad Template: 'sink'
  SRC: 'src'
    Pad Template: 'src'

Element Properties:

  aud                 : Insert AU (Access Unit) delimeter for each frame
                        flags: readable, writable
                        Boolean. Default: false

  b-frames            : Number of B frames between I and P reference frames
                        flags: readable, writable
                        Unsigned Integer. Range: 0 - 31 Default: 0

  b-pyramid           : Enable the b-pyramid reference structure in the GOP
                        flags: readable, writable
                        Boolean. Default: false

  bitrate             : The desired bitrate expressed in kbps (0: auto-calculate)
                        flags: readable, writable, changeable in NULL, READY, PAUSED or PLAYING state
                        Unsigned Integer. Range: 0 - 2048000 Default: 0

  cabac               : Enable CABAC entropy coding mode
                        flags: readable, writable
                        Boolean. Default: true

  cc-insert           : Insert CEA-708 Closed Captions
                        flags: readable, writable
                        Boolean. Default: true

  cpb-size            : The desired max CPB size in Kb (0: auto-calculate)
                        flags: readable, writable, changeable in NULL, READY, PAUSED or PLAYING state
                        Unsigned Integer. Range: 0 - 2048000 Default: 0

  dct8x8              : Enable adaptive use of 8x8 transforms in I-frames
                        flags: readable, writable
                        Boolean. Default: true

  device-path         : DRM device path
                        flags: readable
                        String. Default: "/dev/dri/renderD128"

  i-frames            : Force the number of I frames insertion within one GOP, not including the first IDR frame
                        flags: readable, writable
                        Unsigned Integer. Range: 0 - 1023 Default: 0

  key-int-max         : The maximal distance between two keyframes. It decides the size of GOP (0: auto-calculate)
                        flags: readable, writable
                        Unsigned Integer. Range: 0 - 1024 Default: 0

  max-qp              : Maximum quantizer value for each frame
                        flags: readable, writable
                        Unsigned Integer. Range: 0 - 51 Default: 51

  mbbrc               : Macroblock level Bitrate Control. Not available in CQP mode
                        flags: readable, writable
                        Enum "GstVaFeature" Default: 2, "auto"
                           (0): disabled         - GST_VA_FEATURE_DISABLED
                           (1): enabled          - GST_VA_FEATURE_ENABLED
                           (2): auto             - GST_VA_FEATURE_AUTO

  min-force-key-unit-interval: Minimum interval between force-keyunit requests in nanoseconds
                        flags: readable, writable
                        Unsigned Integer64. Range: 0 - 18446744073709551615 Default: 0

  min-qp              : Minimum quantizer value for each frame
                        flags: readable, writable
                        Unsigned Integer. Range: 0 - 51 Default: 1

  name                : The name of the object
                        flags: readable, writable
                        String. Default: "vah264lpenc0"

  num-slices          : Number of slices per frame
                        flags: readable, writable
                        Unsigned Integer. Range: 1 - 200 Default: 1

  parent              : The parent of the object
                        flags: readable, writable
                        Object of type "GstObject"

  qos                 : Handle Quality-of-Service events from downstream
                        flags: readable, writable
                        Boolean. Default: false

  qpb                 : The quantizer value for B frame. Available only in CQP mode
                        flags: readable, writable, changeable in NULL, READY, PAUSED or PLAYING state
                        Unsigned Integer. Range: 0 - 51 Default: 26

  qpi                 : The quantizer value for I frame. In CQP mode, it specifies the QP of I frame, in other mode, it specifies the init QP of all frames
                        flags: readable, writable, changeable in NULL, READY, PAUSED or PLAYING state
                        Unsigned Integer. Range: 0 - 51 Default: 26

  qpp                 : The quantizer value for P frame. Available only in CQP mode
                        flags: readable, writable, changeable in NULL, READY, PAUSED or PLAYING state
                        Unsigned Integer. Range: 0 - 51 Default: 26

  rate-control        : The desired rate control mode for the encoder
                        flags: readable, writable, conditionally available, changeable in NULL, READY, PAUSED or PLAYING state
                        Enum "GstVaEncoderRateControl_H264_LP_renderD128" Default: 2, "cbr"
                           (2): cbr              - Constant Bitrate
                           (4): vbr              - Variable Bitrate
                           (16): cqp              - Constant Quantizer

  ref-frames          : Number of reference frames, including both the forward and the backward
                        flags: readable, writable
                        Unsigned Integer. Range: 0 - 16 Default: 3

  target-percentage   : The percentage for 'target bitrate'/'maximum bitrate' (Only in VBR)
                        flags: readable, writable, changeable in NULL, READY, PAUSED or PLAYING state
                        Unsigned Integer. Range: 50 - 100 Default: 66

  target-usage        : The target usage to control and balance the encoding speed/quality
                        flags: readable, writable, changeable in NULL, READY, PAUSED or PLAYING state
                        Unsigned Integer. Range: 1 - 7 Default: 4

  trellis             : Enable the trellis quantization method
                        flags: readable, writable
                        Boolean. Default: false
Factory Details:
  Rank                     none (0)
  Long-name                VA-API H.265 Low Power Encoder in Intel(R) Gen Graphics
  Klass                    Codec/Encoder/Video/Hardware
  Description              VA-API based H.265 low power video encoder
  Author                   He Junyan <junyan.he@intel.com>
  Documentation            https://gstreamer.freedesktop.org/documentation/va/vah265lpenc.html

Plugin Details:
  Name                     va
  Description              VA-API codecs plugin
  Filename                 /opt/gstreamer/lib/x86_64-linux-gnu/gstreamer-1.0/libgstva.so
  Version                  1.24.3
  License                  LGPL
  Source module            gst-plugins-bad
  Documentation            https://gstreamer.freedesktop.org/documentation/va/
  Source release date      2024-04-30
  Binary package           GStreamer Bad Plug-ins source release
  Origin URL               Unknown package origin

GObject
 +----GInitiallyUnowned
       +----GstObject
             +----GstElement
                   +----GstVideoEncoder
                         +----GstVaBaseEnc
                               +----GstVaH265LPEnc

Implemented Interfaces:
  GstPreset

Pad Templates:
  SINK template: 'sink'
    Availability: Always
    Capabilities:
      video/x-raw(memory:VAMemory)
                  width: [ 128, 16384 ]
                 height: [ 128, 12288 ]
                 format: { (string)NV12, (string)P010_10LE, (string)YUY2, (string)Y210, (string)VUYA, (string)Y410 }
      video/x-raw(memory:DMABuf)
                  width: [ 128, 16384 ]
                 height: [ 128, 12288 ]
                 format: DMA_DRM
             drm-format: { (string)NV12:0x0100000000000009, (string)P010:0x0100000000000009, (string)YUYV:0x0100000000000009, (string)Y210:0x0100000000000009, (string)AYUV:0x0100000000000009, (string)Y410:0x0100000000000009 }
      video/x-raw
                  width: [ 128, 16384 ]
                 height: [ 128, 12288 ]
                 format: { (string)NV12, (string)P010_10LE, (string)YUY2, (string)Y210, (string)VUYA, (string)Y410 }

  SRC template: 'src'
    Availability: Always
    Capabilities:
      video/x-h265
                profile: { (string)main, (string)main-10, (string)main-422-10, (string)main-444, (string)main-444-10, (string)screen-extended-main, (string)screen-extended-main-10, (string)screen-extended-main-444, (string)screen-extended-main-444-10 }
                  width: [ 1, 16384 ]
                 height: [ 1, 12288 ]
              alignment: au
          stream-format: byte-stream

Element has no clocking capabilities.
Element has no URI handling capabilities.

Pads:
  SINK: 'sink'
    Pad Template: 'sink'
  SRC: 'src'
    Pad Template: 'src'

Element Properties:

  aud                 : Insert AU (Access Unit) delimeter for each frame
                        flags: readable, writable
                        Boolean. Default: false

  b-frames            : Number of B frames between I and P reference frames
                        flags: readable, writable
                        Unsigned Integer. Range: 0 - 31 Default: 0

  b-pyramid           : Enable the b-pyramid reference structure in the GOP
                        flags: readable, writable
                        Boolean. Default: false

  bitrate             : The desired bitrate expressed in kbps (0: auto-calculate)
                        flags: readable, writable, changeable in NULL, READY, PAUSED or PLAYING state
                        Unsigned Integer. Range: 0 - 2048000 Default: 0

  cpb-size            : The desired max CPB size in Kb (0: auto-calculate)
                        flags: readable, writable
                        Unsigned Integer. Range: 0 - 2048000 Default: 0

  device-path         : DRM device path
                        flags: readable
                        String. Default: "/dev/dri/renderD128"

  i-frames            : Force the number of I frames insertion within one GOP, not including the first IDR frame
                        flags: readable, writable
                        Unsigned Integer. Range: 0 - 1023 Default: 0

  key-int-max         : The maximal distance between two keyframes. It decides the size of GOP (0: auto-calculate)
                        flags: readable, writable
                        Unsigned Integer. Range: 0 - 1024 Default: 0

  max-qp              : Maximum quantizer value for each frame
                        flags: readable, writable
                        Unsigned Integer. Range: 0 - 51 Default: 51

  mbbrc               : Macroblock level Bitrate Control. It is not compatible with CQP
                        flags: readable, writable
                        Enum "GstVaFeature" Default: 2, "auto"
                           (0): disabled         - GST_VA_FEATURE_DISABLED
                           (1): enabled          - GST_VA_FEATURE_ENABLED
                           (2): auto             - GST_VA_FEATURE_AUTO

  min-force-key-unit-interval: Minimum interval between force-keyunit requests in nanoseconds
                        flags: readable, writable
                        Unsigned Integer64. Range: 0 - 18446744073709551615 Default: 0

  min-qp              : Minimum quantizer value for each frame
                        flags: readable, writable
                        Unsigned Integer. Range: 0 - 51 Default: 1

  name                : The name of the object
                        flags: readable, writable
                        String. Default: "vah265lpenc0"

  num-slices          : Number of slices per frame
                        flags: readable, writable
                        Unsigned Integer. Range: 1 - 200 Default: 1

  num-tile-cols       : The number of columns for tile encoding
                        flags: readable, writable
                        Unsigned Integer. Range: 1 - 20 Default: 1

  num-tile-rows       : The number of rows for tile encoding
                        flags: readable, writable
                        Unsigned Integer. Range: 1 - 22 Default: 1

  parent              : The parent of the object
                        flags: readable, writable
                        Object of type "GstObject"

  qos                 : Handle Quality-of-Service events from downstream
                        flags: readable, writable
                        Boolean. Default: false

  qpb                 : The quantizer value for B frame. This is available only in CQP mode
                        flags: readable, writable, changeable in NULL, READY, PAUSED or PLAYING state
                        Unsigned Integer. Range: 0 - 51 Default: 26

  qpi                 : The quantizer value for I frame. In CQP mode, it specifies the QP of I frame, in other mode, it specifies the init QP of all frames
                        flags: readable, writable, changeable in NULL, READY, PAUSED or PLAYING state
                        Unsigned Integer. Range: 0 - 51 Default: 26

  qpp                 : The quantizer value for P frame. This is available only in CQP mode
                        flags: readable, writable, changeable in NULL, READY, PAUSED or PLAYING state
                        Unsigned Integer. Range: 0 - 51 Default: 26

  rate-control        : The desired rate control mode for the encoder
                        flags: readable, writable, conditionally available, changeable in NULL, READY, PAUSED or PLAYING state
                        Enum "GstVaEncoderRateControl_H265_LP_renderD128" Default: 2, "cbr"
                           (2): cbr              - Constant Bitrate
                           (4): vbr              - Variable Bitrate
                           (8): vcm              - Video Conferencing Mode (Non HRD compliant)
                           (16): cqp              - Constant Quantizer

  ref-frames          : Number of reference frames, including both the forward and the backward
                        flags: readable, writable
                        Unsigned Integer. Range: 0 - 15 Default: 3

  target-percentage   : The percentage for 'target bitrate'/'maximum bitrate' (Only in VBR)
                        flags: readable, writable, changeable in NULL, READY, PAUSED or PLAYING state
                        Unsigned Integer. Range: 50 - 100 Default: 66

  target-usage        : The target usage to control and balance the encoding speed/quality
                        flags: readable, writable, changeable in NULL, READY, PAUSED or PLAYING state
                        Unsigned Integer. Range: 1 - 7 Default: 4

  trellis             : Enable the trellis quantization method
                        flags: readable, writable
                        Boolean. Default: false
Factory Details:
  Rank                     none (0)
  Long-name                VA-API H.264 Encoder in AMD Radeon Vega Frontier Edition in renderD129
  Klass                    Codec/Encoder/Video/Hardware
  Description              VA-API based H.264 video encoder
  Author                   He Junyan <junyan.he@intel.com>
  Documentation            https://gstreamer.freedesktop.org/documentation/va/varenderD129h264enc.html

Plugin Details:
  Name                     va
  Description              VA-API codecs plugin
  Filename                 /opt/gstreamer/lib/x86_64-linux-gnu/gstreamer-1.0/libgstva.so
  Version                  1.24.3
  License                  LGPL
  Source module            gst-plugins-bad
  Documentation            https://gstreamer.freedesktop.org/documentation/va/
  Source release date      2024-04-30
  Binary package           GStreamer Bad Plug-ins source release
  Origin URL               Unknown package origin

GObject
 +----GInitiallyUnowned
       +----GstObject
             +----GstElement
                   +----GstVideoEncoder
                         +----GstVaBaseEnc
                               +----GstVarenderD129H264Enc

Implemented Interfaces:
  GstPreset

Pad Templates:
  SINK template: 'sink'
    Availability: Always
    Capabilities:
      video/x-raw(memory:VAMemory)
                  width: [ 256, 4096 ]
                 height: [ 128, 2304 ]
                 format: NV12
      video/x-raw(memory:DMABuf)
                  width: [ 256, 4096 ]
                 height: [ 128, 2304 ]
                 format: DMA_DRM
             drm-format: NV12
      video/x-raw
                  width: [ 256, 4096 ]
                 height: [ 128, 2304 ]
                 format: NV12

  SRC template: 'src'
    Availability: Always
    Capabilities:
      video/x-h264
                profile: { (string)constrained-baseline, (string)main, (string)high }
                  width: [ 1, 4096 ]
                 height: [ 1, 2304 ]
              alignment: au
          stream-format: byte-stream

Element has no clocking capabilities.
Element has no URI handling capabilities.

Pads:
  SINK: 'sink'
    Pad Template: 'sink'
  SRC: 'src'
    Pad Template: 'src'

Element Properties:

  aud                 : Insert AU (Access Unit) delimeter for each frame
                        flags: readable, writable
                        Boolean. Default: false

  b-frames            : Number of B frames between I and P reference frames
                        flags: readable, writable
                        Unsigned Integer. Range: 0 - 31 Default: 0

  b-pyramid           : Enable the b-pyramid reference structure in the GOP
                        flags: readable, writable
                        Boolean. Default: false

  bitrate             : The desired bitrate expressed in kbps (0: auto-calculate)
                        flags: readable, writable, changeable in NULL, READY, PAUSED or PLAYING state
                        Unsigned Integer. Range: 0 - 2048000 Default: 0

  cabac               : Enable CABAC entropy coding mode
                        flags: readable, writable
                        Boolean. Default: true

  cc-insert           : Insert CEA-708 Closed Captions
                        flags: readable, writable
                        Boolean. Default: true

  cpb-size            : The desired max CPB size in Kb (0: auto-calculate)
                        flags: readable, writable, changeable in NULL, READY, PAUSED or PLAYING state
                        Unsigned Integer. Range: 0 - 2048000 Default: 0

  dct8x8              : Enable adaptive use of 8x8 transforms in I-frames
                        flags: readable, writable
                        Boolean. Default: true

  device-path         : DRM device path
                        flags: readable
                        String. Default: "/dev/dri/renderD129"

  i-frames            : Force the number of I frames insertion within one GOP, not including the first IDR frame
                        flags: readable, writable
                        Unsigned Integer. Range: 0 - 1023 Default: 0

  key-int-max         : The maximal distance between two keyframes. It decides the size of GOP (0: auto-calculate)
                        flags: readable, writable
                        Unsigned Integer. Range: 0 - 1024 Default: 0

  max-qp              : Maximum quantizer value for each frame
                        flags: readable, writable
                        Unsigned Integer. Range: 0 - 51 Default: 51

  mbbrc               : Macroblock level Bitrate Control. Not available in CQP mode
                        flags: readable, writable
                        Enum "GstVaFeature" Default: 2, "auto"
                           (0): disabled         - GST_VA_FEATURE_DISABLED
                           (1): enabled          - GST_VA_FEATURE_ENABLED
                           (2): auto             - GST_VA_FEATURE_AUTO

  min-force-key-unit-interval: Minimum interval between force-keyunit requests in nanoseconds
                        flags: readable, writable
                        Unsigned Integer64. Range: 0 - 18446744073709551615 Default: 0

  min-qp              : Minimum quantizer value for each frame
                        flags: readable, writable
                        Unsigned Integer. Range: 0 - 51 Default: 1

  name                : The name of the object
                        flags: readable, writable
                        String. Default: "varenderd129h264enc0"

  num-slices          : Number of slices per frame
                        flags: readable, writable
                        Unsigned Integer. Range: 1 - 200 Default: 1

  parent              : The parent of the object
                        flags: readable, writable
                        Object of type "GstObject"

  qos                 : Handle Quality-of-Service events from downstream
                        flags: readable, writable
                        Boolean. Default: false

  qpb                 : The quantizer value for B frame. Available only in CQP mode
                        flags: readable, writable, changeable in NULL, READY, PAUSED or PLAYING state
                        Unsigned Integer. Range: 0 - 51 Default: 26

  qpi                 : The quantizer value for I frame. In CQP mode, it specifies the QP of I frame, in other mode, it specifies the init QP of all frames
                        flags: readable, writable, changeable in NULL, READY, PAUSED or PLAYING state
                        Unsigned Integer. Range: 0 - 51 Default: 26

  qpp                 : The quantizer value for P frame. Available only in CQP mode
                        flags: readable, writable, changeable in NULL, READY, PAUSED or PLAYING state
                        Unsigned Integer. Range: 0 - 51 Default: 26

  rate-control        : The desired rate control mode for the encoder
                        flags: readable, writable, conditionally available, changeable in NULL, READY, PAUSED or PLAYING state
                        Enum "GstVaEncoderRateControl_H264_renderD129" Default: 2, "cbr"
                           (2): cbr              - Constant Bitrate
                           (4): vbr              - Variable Bitrate
                           (16): cqp              - Constant Quantizer

  ref-frames          : Number of reference frames, including both the forward and the backward
                        flags: readable, writable
                        Unsigned Integer. Range: 0 - 16 Default: 3

  target-percentage   : The percentage for 'target bitrate'/'maximum bitrate' (Only in VBR)
                        flags: readable, writable, changeable in NULL, READY, PAUSED or PLAYING state
                        Unsigned Integer. Range: 50 - 100 Default: 66

  target-usage        : The target usage to control and balance the encoding speed/quality
                        flags: readable, writable, changeable in NULL, READY, PAUSED or PLAYING state
                        Unsigned Integer. Range: 1 - 7 Default: 4

  trellis             : Enable the trellis quantization method
                        flags: readable, writable
                        Boolean. Default: false
Factory Details:
  Rank                     none (0)
  Long-name                VA-API H.265 Encoder in AMD Radeon Vega Frontier Edition in renderD129
  Klass                    Codec/Encoder/Video/Hardware
  Description              VA-API based H.265 video encoder
  Author                   He Junyan <junyan.he@intel.com>
  Documentation            https://gstreamer.freedesktop.org/documentation/va/varenderD129h265enc.html

Plugin Details:
  Name                     va
  Description              VA-API codecs plugin
  Filename                 /opt/gstreamer/lib/x86_64-linux-gnu/gstreamer-1.0/libgstva.so
  Version                  1.24.3
  License                  LGPL
  Source module            gst-plugins-bad
  Documentation            https://gstreamer.freedesktop.org/documentation/va/
  Source release date      2024-04-30
  Binary package           GStreamer Bad Plug-ins source release
  Origin URL               Unknown package origin

GObject
 +----GInitiallyUnowned
       +----GstObject
             +----GstElement
                   +----GstVideoEncoder
                         +----GstVaBaseEnc
                               +----GstVarenderD129H265Enc

Implemented Interfaces:
  GstPreset

Pad Templates:
  SINK template: 'sink'
    Availability: Always
    Capabilities:
      video/x-raw(memory:VAMemory)
                  width: [ 256, 4096 ]
                 height: [ 128, 2304 ]
                 format: { (string)NV12, (string)P010_10LE }
      video/x-raw(memory:DMABuf)
                  width: [ 256, 4096 ]
                 height: [ 128, 2304 ]
                 format: DMA_DRM
             drm-format: { (string)NV12, (string)P010 }
      video/x-raw
                  width: [ 256, 4096 ]
                 height: [ 128, 2304 ]
                 format: { (string)NV12, (string)P010_10LE }

  SRC template: 'src'
    Availability: Always
    Capabilities:
      video/x-h265
                profile: main
                  width: [ 1, 4096 ]
                 height: [ 1, 2304 ]
              alignment: au
          stream-format: byte-stream

Element has no clocking capabilities.
Element has no URI handling capabilities.

Pads:
  SINK: 'sink'
    Pad Template: 'sink'
  SRC: 'src'
    Pad Template: 'src'

Element Properties:

  aud                 : Insert AU (Access Unit) delimeter for each frame
                        flags: readable, writable
                        Boolean. Default: false

  b-frames            : Number of B frames between I and P reference frames
                        flags: readable, writable
                        Unsigned Integer. Range: 0 - 31 Default: 0

  b-pyramid           : Enable the b-pyramid reference structure in the GOP
                        flags: readable, writable
                        Boolean. Default: false

  bitrate             : The desired bitrate expressed in kbps (0: auto-calculate)
                        flags: readable, writable, changeable in NULL, READY, PAUSED or PLAYING state
                        Unsigned Integer. Range: 0 - 2048000 Default: 0

  cpb-size            : The desired max CPB size in Kb (0: auto-calculate)
                        flags: readable, writable
                        Unsigned Integer. Range: 0 - 2048000 Default: 0

  device-path         : DRM device path
                        flags: readable
                        String. Default: "/dev/dri/renderD129"

  i-frames            : Force the number of I frames insertion within one GOP, not including the first IDR frame
                        flags: readable, writable
                        Unsigned Integer. Range: 0 - 1023 Default: 0

  key-int-max         : The maximal distance between two keyframes. It decides the size of GOP (0: auto-calculate)
                        flags: readable, writable
                        Unsigned Integer. Range: 0 - 1024 Default: 0

  max-qp              : Maximum quantizer value for each frame
                        flags: readable, writable
                        Unsigned Integer. Range: 0 - 51 Default: 51

  mbbrc               : Macroblock level Bitrate Control. It is not compatible with CQP
                        flags: readable, writable
                        Enum "GstVaFeature" Default: 2, "auto"
                           (0): disabled         - GST_VA_FEATURE_DISABLED
                           (1): enabled          - GST_VA_FEATURE_ENABLED
                           (2): auto             - GST_VA_FEATURE_AUTO

  min-force-key-unit-interval: Minimum interval between force-keyunit requests in nanoseconds
                        flags: readable, writable
                        Unsigned Integer64. Range: 0 - 18446744073709551615 Default: 0

  min-qp              : Minimum quantizer value for each frame
                        flags: readable, writable
                        Unsigned Integer. Range: 0 - 51 Default: 1

  name                : The name of the object
                        flags: readable, writable
                        String. Default: "varenderd129h265enc0"

  num-slices          : Number of slices per frame
                        flags: readable, writable
                        Unsigned Integer. Range: 1 - 200 Default: 1

  num-tile-cols       : The number of columns for tile encoding
                        flags: readable, writable
                        Unsigned Integer. Range: 1 - 20 Default: 1

  num-tile-rows       : The number of rows for tile encoding
                        flags: readable, writable
                        Unsigned Integer. Range: 1 - 22 Default: 1

  parent              : The parent of the object
                        flags: readable, writable
                        Object of type "GstObject"

  qos                 : Handle Quality-of-Service events from downstream
                        flags: readable, writable
                        Boolean. Default: false

  qpb                 : The quantizer value for B frame. This is available only in CQP mode
                        flags: readable, writable, changeable in NULL, READY, PAUSED or PLAYING state
                        Unsigned Integer. Range: 0 - 51 Default: 26

  qpi                 : The quantizer value for I frame. In CQP mode, it specifies the QP of I frame, in other mode, it specifies the init QP of all frames
                        flags: readable, writable, changeable in NULL, READY, PAUSED or PLAYING state
                        Unsigned Integer. Range: 0 - 51 Default: 26

  qpp                 : The quantizer value for P frame. This is available only in CQP mode
                        flags: readable, writable, changeable in NULL, READY, PAUSED or PLAYING state
                        Unsigned Integer. Range: 0 - 51 Default: 26

  rate-control        : The desired rate control mode for the encoder
                        flags: readable, writable, conditionally available, changeable in NULL, READY, PAUSED or PLAYING state
                        Enum "GstVaEncoderRateControl_H265_renderD129" Default: 2, "cbr"
                           (2): cbr              - Constant Bitrate
                           (4): vbr              - Variable Bitrate
                           (16): cqp              - Constant Quantizer

  ref-frames          : Number of reference frames, including both the forward and the backward
                        flags: readable, writable
                        Unsigned Integer. Range: 0 - 15 Default: 3

  target-percentage   : The percentage for 'target bitrate'/'maximum bitrate' (Only in VBR)
                        flags: readable, writable, changeable in NULL, READY, PAUSED or PLAYING state
                        Unsigned Integer. Range: 50 - 100 Default: 66

  target-usage        : The target usage to control and balance the encoding speed/quality
                        flags: readable, writable, changeable in NULL, READY, PAUSED or PLAYING state
                        Unsigned Integer. Range: 1 - 7 Default: 4

  trellis             : Enable the trellis quantization method
                        flags: readable, writable
                        Boolean. Default: false
Factory Details:
  Rank                     none (0)
  Long-name                VA-API Video Postprocessor in Intel(R) Gen Graphics
  Klass                    Effect/Converter/Filter/Colorspace/Scaler/Video/Hardware
  Description              VA-API based video postprocessor
  Author                   Víctor Jáquez <vjaquez@igalia.com>
  Documentation            https://gstreamer.freedesktop.org/documentation/va/vapostproc.html

Plugin Details:
  Name                     va
  Description              VA-API codecs plugin
  Filename                 /opt/gstreamer/lib/x86_64-linux-gnu/gstreamer-1.0/libgstva.so
  Version                  1.24.3
  License                  LGPL
  Source module            gst-plugins-bad
  Documentation            https://gstreamer.freedesktop.org/documentation/va/
  Source release date      2024-04-30
  Binary package           GStreamer Bad Plug-ins source release
  Origin URL               Unknown package origin

GObject
 +----GInitiallyUnowned
       +----GstObject
             +----GstElement
                   +----GstBaseTransform
                         +----GstVaBaseTransform
                               +----GstVaPostProc

Implemented Interfaces:
  GstColorBalance

Pad Templates:
  SINK template: 'sink'
    Availability: Always
    Capabilities:
      video/x-raw(memory:VAMemory)
                  width: [ 16, 16384 ]
                 height: [ 16, 16384 ]
                 format: { (string)NV12, (string)I420, (string)YV12, (string)YUY2, (string)Y42B, (string)RGBP, (string)P010_10LE, (string)RGB, (string)BGRA, (string)RGBA, (string)BGR10A2_LE, (string)VUYA, (string)Y210, (string)Y410, (string)P012_LE, (string)Y212_LE, (string)Y412_LE }
      video/x-raw(memory:DMABuf)
                  width: [ 16, 16384 ]
                 height: [ 16, 16384 ]
                 format: DMA_DRM
             drm-format: { (string)NV12:0x0100000000000009, (string)YU12, (string)YV12, (string)YUYV:0x0100000000000009, (string)YU16:0x0100000000000009, (string)P010:0x0100000000000009, (string)AR24:0x0100000000000002, (string)AB24:0x0100000000000002, (string)AR30:0x0100000000000002, (string)AYUV:0x0100000000000009, (string)Y210:0x0100000000000009, (string)Y410:0x0100000000000009, (string)P012:0x0100000000000009, (string)Y212:0x0100000000000009, (string)Y412:0x0100000000000009 }
      video/x-raw
                  width: [ 16, 16384 ]
                 height: [ 16, 16384 ]
                 format: { (string)ARGB, (string)BGRA, (string)ABGR, (string)RGBA, (string)xRGB, (string)BGRx, (string)xBGR, (string)RGBx, (string)BGR10A2_LE, (string)RGB16, (string)VUYA, (string)GRAY8, (string)NV12, (string)NV21, (string)YUY2, (string)UYVY, (string)YV12, (string)I420, (string)Y42B, (string)Y444, (string)P010_10LE, (string)P012_LE, (string)Y210, (string)Y212_LE, (string)Y410, (string)Y412_LE, (string)RGBP }
      video/x-raw(ANY)

  SRC template: 'src'
    Availability: Always
    Capabilities:
      video/x-raw(memory:VAMemory)
                  width: [ 16, 16384 ]
                 height: [ 16, 16384 ]
                 format: { (string)NV12, (string)I420, (string)YV12, (string)YUY2, (string)Y42B, (string)RGBP, (string)P010_10LE, (string)RGB, (string)BGRA, (string)RGBA, (string)BGR10A2_LE, (string)VUYA, (string)Y210, (string)Y410, (string)P012_LE, (string)Y212_LE, (string)Y412_LE }
      video/x-raw(memory:DMABuf)
                  width: [ 16, 16384 ]
                 height: [ 16, 16384 ]
                 format: DMA_DRM
             drm-format: { (string)NV12:0x0100000000000009, (string)YU12, (string)YV12, (string)YUYV:0x0100000000000009, (string)YU16:0x0100000000000009, (string)P010:0x0100000000000009, (string)AR24:0x0100000000000002, (string)AB24:0x0100000000000002, (string)AR30:0x0100000000000002, (string)AYUV:0x0100000000000009, (string)Y210:0x0100000000000009, (string)Y410:0x0100000000000009, (string)P012:0x0100000000000009, (string)Y212:0x0100000000000009, (string)Y412:0x0100000000000009 }
      video/x-raw
                  width: [ 16, 16384 ]
                 height: [ 16, 16384 ]
                 format: { (string)ARGB, (string)BGRA, (string)ABGR, (string)RGBA, (string)xRGB, (string)BGRx, (string)xBGR, (string)RGBx, (string)BGR10A2_LE, (string)RGB16, (string)VUYA, (string)GRAY8, (string)NV12, (string)NV21, (string)YUY2, (string)UYVY, (string)YV12, (string)I420, (string)Y42B, (string)Y444, (string)P010_10LE, (string)P012_LE, (string)Y210, (string)Y212_LE, (string)Y410, (string)Y412_LE, (string)RGBP }
      video/x-raw(ANY)

Element has no clocking capabilities.
Element has no URI handling capabilities.

Pads:
  SINK: 'sink'
    Pad Template: 'sink'
  SRC: 'src'
    Pad Template: 'src'

Element Properties:

  add-borders         : Add black borders if necessary to keep the display aspect ratio
                        flags: readable, writable, changeable in NULL, READY, PAUSED or PLAYING state
                        Boolean. Default: false

  auto-contrast       : Enable auto contrast
                        flags: readable, writable, controllable, conditionally available, changeable in NULL, READY, PAUSED or PLAYING state
                        Boolean. Default: false

  brightness          : Color brightness value
                        flags: readable, writable, controllable, conditionally available, changeable in NULL, READY, PAUSED or PLAYING state
                        Float. Range:            -100 -             100 Default:               0

  contrast            : Color contrast value
                        flags: readable, writable, controllable, conditionally available, changeable in NULL, READY, PAUSED or PLAYING state
                        Float. Range:               0 -              10 Default:               1

  denoise             : Noise reduction factor
                        flags: readable, writable, controllable, conditionally available, changeable in NULL, READY, PAUSED or PLAYING state
                        Float. Range:               0 -              64 Default:               0

  device-path         : DRM device path
                        flags: readable
                        String. Default: "/dev/dri/renderD128"

  disable-passthrough : Forces passing buffers through the postprocessor
                        flags: readable, writable, changeable only in NULL or READY state
                        Boolean. Default: false

  hdr-tone-mapping    : Enable HDR to SDR tone mapping
                        flags: readable, writable, controllable, conditionally available, changeable in NULL, READY, PAUSED or PLAYING state
                        Boolean. Default: false

  hue                 : Color hue value
                        flags: readable, writable, controllable, conditionally available, changeable in NULL, READY, PAUSED or PLAYING state
                        Float. Range:            -180 -             180 Default:               0

  name                : The name of the object
                        flags: readable, writable
                        String. Default: "vapostproc0"

  parent              : The parent of the object
                        flags: readable, writable
                        Object of type "GstObject"

  qos                 : Handle Quality-of-Service events
                        flags: readable, writable
                        Boolean. Default: true

  saturation          : Color saturation value
                        flags: readable, writable, controllable, conditionally available, changeable in NULL, READY, PAUSED or PLAYING state
                        Float. Range:               0 -              10 Default:               1

  scale-method        : Scale method to use
                        flags: readable, writable, changeable in NULL, READY, PAUSED or PLAYING state
                        Enum "GstVaScaleMethod" Default: 0, "default"
                           (0): default          - Default scaling method
                           (256): fast             - Fast scaling method
                           (512): hq               - High quality scaling method

  sharpen             : Sharpening/blurring filter
                        flags: readable, writable, controllable, conditionally available, changeable in NULL, READY, PAUSED or PLAYING state
                        Float. Range:               0 -              64 Default:              44

  skin-tone           : Skin Tone Enhancenment filter
                        flags: readable, writable, controllable, conditionally available, changeable in NULL, READY, PAUSED or PLAYING state
                        Float. Range:               0 -               9 Default:               3

  video-direction     : Video direction: rotation and flipping
                        flags: readable, writable, controllable, conditionally available, changeable in NULL, READY, PAUSED or PLAYING state
                        Enum "GstVideoOrientationMethod" Default: 0, "identity"
                           (0): identity         - GST_VIDEO_ORIENTATION_IDENTITY
                           (1): 90r              - GST_VIDEO_ORIENTATION_90R
                           (2): 180              - GST_VIDEO_ORIENTATION_180
                           (3): 90l              - GST_VIDEO_ORIENTATION_90L
                           (4): horiz            - GST_VIDEO_ORIENTATION_HORIZ
                           (5): vert             - GST_VIDEO_ORIENTATION_VERT
                           (6): ul-lr            - GST_VIDEO_ORIENTATION_UL_LR
                           (7): ur-ll            - GST_VIDEO_ORIENTATION_UR_LL
                           (8): auto             - GST_VIDEO_ORIENTATION_AUTO
                           (9): custom           - GST_VIDEO_ORIENTATION_CUSTOM
Factory Details:
  Rank                     none (0)
  Long-name                VA-API Video Postprocessor in AMD Radeon Vega Frontier Edition in renderD129
  Klass                    Converter/Filter/Colorspace/Scaler/Video/Hardware
  Description              VA-API based video postprocessor
  Author                   Víctor Jáquez <vjaquez@igalia.com>
  Documentation            https://gstreamer.freedesktop.org/documentation/va/varenderD129postproc.html

Plugin Details:
  Name                     va
  Description              VA-API codecs plugin
  Filename                 /opt/gstreamer/lib/x86_64-linux-gnu/gstreamer-1.0/libgstva.so
  Version                  1.24.3
  License                  LGPL
  Source module            gst-plugins-bad
  Documentation            https://gstreamer.freedesktop.org/documentation/va/
  Source release date      2024-04-30
  Binary package           GStreamer Bad Plug-ins source release
  Origin URL               Unknown package origin

GObject
 +----GInitiallyUnowned
       +----GstObject
             +----GstElement
                   +----GstBaseTransform
                         +----GstVaBaseTransform
                               +----GstVarenderD129PostProc

Pad Templates:
  SINK template: 'sink'
    Availability: Always
    Capabilities:
      video/x-raw(memory:VAMemory)
                  width: [ 1, 16384 ]
                 height: [ 1, 16384 ]
                 format: { (string)ARGB, (string)ABGR, (string)xRGB, (string)xBGR, (string)NV12, (string)P010_10LE }
      video/x-raw(memory:DMABuf)
                  width: [ 1, 16384 ]
                 height: [ 1, 16384 ]
                 format: DMA_DRM
             drm-format: { (string)BA24, (string)RA24, (string)BX24, (string)RX24, (string)NV12, (string)P010 }
      video/x-raw
                  width: [ 1, 16384 ]
                 height: [ 1, 16384 ]
                 format: { (string)NV12, (string)P010_10LE, (string)I420, (string)YV12, (string)YUY2, (string)UYVY, (string)GRAY8, (string)Y444, (string)RGBP }
      video/x-raw(ANY)

  SRC template: 'src'
    Availability: Always
    Capabilities:
      video/x-raw(memory:VAMemory)
                  width: [ 1, 16384 ]
                 height: [ 1, 16384 ]
                 format: { (string)ARGB, (string)ABGR, (string)xRGB, (string)xBGR, (string)NV12, (string)P010_10LE }
      video/x-raw(memory:DMABuf)
                  width: [ 1, 16384 ]
                 height: [ 1, 16384 ]
                 format: DMA_DRM
             drm-format: { (string)BA24, (string)RA24, (string)BX24, (string)RX24, (string)NV12, (string)P010 }
      video/x-raw
                  width: [ 1, 16384 ]
                 height: [ 1, 16384 ]
                 format: { (string)NV12, (string)P010_10LE, (string)I420, (string)YV12, (string)YUY2, (string)UYVY, (string)GRAY8, (string)Y444, (string)RGBP }
      video/x-raw(ANY)

Element has no clocking capabilities.
Element has no URI handling capabilities.

Pads:
  SINK: 'sink'
    Pad Template: 'sink'
  SRC: 'src'
    Pad Template: 'src'

Element Properties:

  add-borders         : Add black borders if necessary to keep the display aspect ratio
                        flags: readable, writable, changeable in NULL, READY, PAUSED or PLAYING state
                        Boolean. Default: false

  device-path         : DRM device path
                        flags: readable
                        String. Default: "/dev/dri/renderD129"

  disable-passthrough : Forces passing buffers through the postprocessor
                        flags: readable, writable, changeable only in NULL or READY state
                        Boolean. Default: false

  name                : The name of the object
                        flags: readable, writable
                        String. Default: "varenderd129postproc0"

  parent              : The parent of the object
                        flags: readable, writable
                        Object of type "GstObject"

  qos                 : Handle Quality-of-Service events
                        flags: readable, writable
                        Boolean. Default: true

  scale-method        : Scale method to use
                        flags: readable, writable, changeable in NULL, READY, PAUSED or PLAYING state
                        Enum "GstVaScaleMethod" Default: 0, "default"
                           (0): default          - Default scaling method
                           (256): fast             - Fast scaling method
                           (512): hq               - High quality scaling method
ehfd commented 1 month ago
Plugin Details:
  Name                     nvcodec
  Description              GStreamer NVCODEC plugin
  Filename                 /opt/gstreamer/lib/x86_64-linux-gnu/gstreamer-1.0/libgstnvcodec.so
  Version                  1.24.1
  License                  LGPL
  Source module            gst-plugins-bad
  Documentation            https://gstreamer.freedesktop.org/documentation/nvcodec/
  Source release date      2024-03-21
  Binary package           GStreamer Bad Plug-ins source release
  Origin URL               Unknown package origin

  cudaconvert: CUDA colorspace converter
  cudaconvertscale: CUDA colorspace converter and scaler
  cudadownload: CUDA downloader
  cudaipcsink: CUDA IPC Sink
  cudaipcsrc: CUDA IPC Src
  cudascale: CUDA video scaler
  cudaupload: CUDA uploader
  nvautogpuh264enc: NVENC H.264 Video Encoder Auto GPU select Mode
  nvautogpuh265enc: NVENC H.265 Video Encoder Auto GPU select Mode
  nvcudah264enc: NVENC H.264 Video Encoder CUDA Mode
  nvcudah265enc: NVENC H.265 Video Encoder CUDA Mode
  nvh264dec: NVDEC H.264 Decoder
  nvh264enc: NVENC H.264 Video Encoder
  nvh265dec: NVDEC H.265 Decoder
  nvh265enc: NVENC HEVC Video Encoder
  nvjpegdec: NVDEC jpeg Video Decoder
  nvmpeg2videodec: NVDEC mpeg2video Video Decoder
  nvmpeg4videodec: NVDEC mpeg4video Video Decoder
  nvmpegvideodec: NVDEC mpegvideo Video Decoder
  nvvp9dec: NVDEC VP9 Decoder

  20 features:
  +-- 20 elements
Factory Details:
  Rank                     none (0)
  Long-name                CUDA colorspace converter
  Klass                    Filter/Converter/Video/Hardware
  Description              Converts video from one colorspace to another using CUDA
  Author                   Seungha Yang <seungha.yang@navercorp.com>
  Documentation            https://gstreamer.freedesktop.org/documentation/nvcodec/cudaconvert.html

Plugin Details:
  Name                     nvcodec
  Description              GStreamer NVCODEC plugin
  Filename                 /opt/gstreamer/lib/x86_64-linux-gnu/gstreamer-1.0/libgstnvcodec.so
  Version                  1.24.1
  License                  LGPL
  Source module            gst-plugins-bad
  Documentation            https://gstreamer.freedesktop.org/documentation/nvcodec/
  Source release date      2024-03-21
  Binary package           GStreamer Bad Plug-ins source release
  Origin URL               Unknown package origin

GObject
 +----GInitiallyUnowned
       +----GstObject
             +----GstElement
                   +----GstBaseTransform
                         +----GstCudaBaseTransform
                               +----GstCudaBaseConvert
                                     +----GstCudaConvert

Pad Templates:
  SINK template: 'sink'
    Availability: Always
    Capabilities:
      video/x-raw(memory:CUDAMemory)
                 format: { (string)I420, (string)YV12, (string)NV12, (string)NV21, (string)P010_10LE, (string)P012_LE, (string)P016_LE, (string)I420_10LE, (string)I420_12LE, (string)Y444, (string)Y444_10LE, (string)Y444_12LE, (string)Y444_16LE, (string)BGRA, (string)RGBA, (string)RGBx, (string)BGRx, (string)ARGB, (string)ABGR, (string)RGB, (string)BGR, (stri
ng)BGR10A2_LE, (string)RGB10A2_LE, (string)Y42B, (string)I422_10LE, (string)I422_12LE, (string)RGBP, (string)BGRP, (string)GBR, (string)GBRA, (string)GBR_10LE, (string)GBR_12LE, (string)GBR_16LE }
                  width: [ 1, 2147483647 ]
                 height: [ 1, 2147483647 ]
              framerate: [ 0/1, 2147483647/1 ]

  SRC template: 'src'
    Availability: Always
    Capabilities:
      video/x-raw(memory:CUDAMemory)
                 format: { (string)I420, (string)YV12, (string)NV12, (string)NV21, (string)P010_10LE, (string)P012_LE, (string)P016_LE, (string)I420_10LE, (string)I420_12LE, (string)Y444, (string)Y444_10LE, (string)Y444_12LE, (string)Y444_16LE, (string)BGRA, (string)RGBA, (string)RGBx, (string)BGRx, (string)ARGB, (string)ABGR, (string)RGB, (string)BGR, (string)BGR10A2_LE, (string)RGB10A2_LE, (string)Y42B, (string)I422_10LE, (string)I422_12LE, (string)RGBP, (string)BGRP, (string)GBR, (string)GBRA, (string)GBR_10LE, (string)GBR_12LE, (string)GBR_16LE }
                  width: [ 1, 2147483647 ]
                 height: [ 1, 2147483647 ]
              framerate: [ 0/1, 2147483647/1 ]

Element has no clocking capabilities.
Element has no URI handling capabilities.

Pads:
  SINK: 'sink'
    Pad Template: 'sink'
  SRC: 'src'
    Pad Template: 'src'

Element Properties:

  cuda-device-id      : Set the GPU device to use for operations (-1 = auto)
                        flags: readable, writable, changeable only in NULL or READY state
                        Integer. Range: -1 - 2147483647 Default: -1

  name                : The name of the object
                        flags: readable, writable
                        String. Default: "cudaconvert0"

  parent              : The parent of the object
                        flags: readable, writable
                        Object of type "GstObject"

  qos                 : Handle Quality-of-Service events
                        flags: readable, writable
                        Boolean. Default: false
Factory Details:
  Rank                     none (0)
  Long-name                CUDA uploader
  Klass                    Filter/Video
  Description              Uploads data into NVIDA GPU via CUDA APIs
  Author                   Seungha Yang <seungha.yang@navercorp.com>
  Documentation            https://gstreamer.freedesktop.org/documentation/nvcodec/cudaupload.html

Plugin Details:
  Name                     nvcodec
  Description              GStreamer NVCODEC plugin
  Filename                 /opt/gstreamer/lib/x86_64-linux-gnu/gstreamer-1.0/libgstnvcodec.so
  Version                  1.24.1
  License                  LGPL
  Source module            gst-plugins-bad
  Documentation            https://gstreamer.freedesktop.org/documentation/nvcodec/
  Source release date      2024-03-21
  Binary package           GStreamer Bad Plug-ins source release
  Origin URL               Unknown package origin

GObject
 +----GInitiallyUnowned
       +----GstObject
             +----GstElement
                   +----GstBaseTransform
                         +----GstCudaBaseTransform
                               +----GstCudaMemoryCopy
                                     +----GstCudaUpload

Pad Templates:
  SINK template: 'sink'
    Availability: Always
    Capabilities:
      video/x-raw
                 format: { (string)I420, (string)YV12, (string)NV12, (string)NV21, (string)P010_10LE, (string)P012_LE, (string)P016_LE, (string)I420_10LE, (string)I420_12LE, (string)Y444, (string)Y444_10LE, (string)Y444_12LE, (string)Y444_16LE, (string)BGRA, (string)RGBA, (string)RGBx, (string)BGRx, (string)ARGB, (string)ABGR, (string)RGB, (string)BGR, (string)BGR10A2_LE, (string)RGB10A2_LE, (string)Y42B, (string)I422_10LE, (string)I422_12LE, (string)YUY2, (string)UYVY, (string)RGBP, (string)BGRP, (string)GBR, (string)GBR_10LE, (string)GBR_12LE, (string)GBR_16LE, (string)GBRA }
                  width: [ 1, 2147483647 ]
                 height: [ 1, 2147483647 ]
              framerate: [ 0/1, 2147483647/1 ]
      video/x-raw(memory:GLMemory)
                 format: { (string)I420, (string)YV12, (string)NV12, (string)NV21, (string)P010_10LE, (string)P012_LE, (string)P016_LE, (string)Y444, (string)BGRA, (string)RGBA, (string)RGBx, (string)BGRx, (string)ARGB, (string)ABGR, (string)RGB, (string)BGR, (string)BGR10A2_LE, (string)RGB10A2_LE, (string)YUY2, (string)UYVY, (string)RGBP, (string)BGRP, (string)GBR, (string)GBRA }
                  width: [ 1, 2147483647 ]
                 height: [ 1, 2147483647 ]
              framerate: [ 0/1, 2147483647/1 ]
      video/x-raw(memory:CUDAMemory)
                 format: { (string)I420, (string)YV12, (string)NV12, (string)NV21, (string)P010_10LE, (string)P012_LE, (string)P016_LE, (string)I420_10LE, (string)I420_12LE, (string)Y444, (string)Y444_10LE, (string)Y444_12LE, (string)Y444_16LE, (string)BGRA, (string)RGBA, (string)RGBx, (string)BGRx, (string)ARGB, (string)ABGR, (string)RGB, (string)BGR, (string)BGR10A2_LE, (string)RGB10A2_LE, (string)Y42B, (string)I422_10LE, (string)I422_12LE, (string)YUY2, (string)UYVY, (string)RGBP, (string)BGRP, (string)GBR, (string)GBR_10LE, (string)GBR_12LE, (string)GBR_16LE, (string)GBRA }
                  width: [ 1, 2147483647 ]
                 height: [ 1, 2147483647 ]
              framerate: [ 0/1, 2147483647/1 ]

  SRC template: 'src'
    Availability: Always
    Capabilities:
      video/x-raw(memory:CUDAMemory)
                 format: { (string)I420, (string)YV12, (string)NV12, (string)NV21, (string)P010_10LE, (string)P012_LE, (string)P016_LE, (string)I420_10LE, (string)I420_12LE, (string)Y444, (string)Y444_10LE, (string)Y444_12LE, (string)Y444_16LE, (string)BGRA, (string)RGBA, (string)RGBx, (string)BGRx, (string)ARGB, (string)ABGR, (string)RGB, (string)BGR, (string)BGR10A2_LE, (string)RGB10A2_LE, (string)Y42B, (string)I422_10LE, (string)I422_12LE, (string)YUY2, (string)UYVY, (string)RGBP, (string)BGRP, (string)GBR, (string)GBR_10LE, (string)GBR_12LE, (string)GBR_16LE, (string)GBRA }
                  width: [ 1, 2147483647 ]
                 height: [ 1, 2147483647 ]
              framerate: [ 0/1, 2147483647/1 ]
      video/x-raw
                 format: { (string)I420, (string)YV12, (string)NV12, (string)NV21, (string)P010_10LE, (string)P012_LE, (string)P016_LE, (string)I420_10LE, (string)I420_12LE, (string)Y444, (string)Y444_10LE, (string)Y444_12LE, (string)Y444_16LE, (string)BGRA, (string)RGBA, (string)RGBx, (string)BGRx, (string)ARGB, (string)ABGR, (string)RGB, (string)BGR, (string)BGR10A2_LE, (string)RGB10A2_LE, (string)Y42B, (string)I422_10LE, (string)I422_12LE, (string)YUY2, (string)UYVY, (string)RGBP, (string)BGRP, (string)GBR, (string)GBR_10LE, (string)GBR_12LE, (string)GBR_16LE, (string)GBRA }
                  width: [ 1, 2147483647 ]
                 height: [ 1, 2147483647 ]
              framerate: [ 0/1, 2147483647/1 ]

Element has no clocking capabilities.
Element has no URI handling capabilities.

Pads:
  SINK: 'sink'
    Pad Template: 'sink'
  SRC: 'src'
    Pad Template: 'src'

Element Properties:

  cuda-device-id      : Set the GPU device to use for operations (-1 = auto)
                        flags: readable, writable, changeable only in NULL or READY state
                        Integer. Range: -1 - 2147483647 Default: -1

  name                : The name of the object
                        flags: readable, writable
                        String. Default: "cudaupload0"

  parent              : The parent of the object
                        flags: readable, writable
                        Object of type "GstObject"

  qos                 : Handle Quality-of-Service events
                        flags: readable, writable
                        Boolean. Default: false
Factory Details:
  Rank                     none (0)
  Long-name                NVENC H.264 Video Encoder CUDA Mode
  Klass                    Codec/Encoder/Video/Hardware
  Description              Encode H.264 video streams using NVCODEC API CUDA Mode
  Author                   Seungha Yang <seungha@centricular.com>
  Documentation            https://gstreamer.freedesktop.org/documentation/nvcodec/nvcudah264enc.html

Plugin Details:
  Name                     nvcodec
  Description              GStreamer NVCODEC plugin
  Filename                 /opt/gstreamer/lib/x86_64-linux-gnu/gstreamer-1.0/libgstnvcodec.so
  Version                  1.24.1
  License                  LGPL
  Source module            gst-plugins-bad
  Documentation            https://gstreamer.freedesktop.org/documentation/nvcodec/
  Source release date      2024-03-21
  Binary package           GStreamer Bad Plug-ins source release
  Origin URL               Unknown package origin

GObject
 +----GInitiallyUnowned
       +----GstObject
             +----GstElement
                   +----GstVideoEncoder
                         +----GstNvEncoder
                               +----GstNvCudaH264Enc

Implemented Interfaces:
  GstPreset

Pad Templates:
  SINK template: 'sink'
    Availability: Always
    Capabilities:
      video/x-raw(memory:CUDAMemory)
                 format: { (string)NV12, (string)Y444 }
                  width: [ 48, 4096 ]
                 height: [ 32, 4096 ]
         interlace-mode: { (string)progressive, (string)interleaved, (string)mixed }
      video/x-raw(memory:GLMemory)
                 format: { (string)NV12, (string)Y444 }
                  width: [ 48, 4096 ]
                 height: [ 32, 4096 ]
         interlace-mode: { (string)progressive, (string)interleaved, (string)mixed }
      video/x-raw
                 format: { (string)NV12, (string)Y444 }
                  width: [ 48, 4096 ]
                 height: [ 32, 4096 ]
         interlace-mode: { (string)progressive, (string)interleaved, (string)mixed }

  SRC template: 'src'
    Availability: Always
    Capabilities:
      video/x-h264
                  width: [ 48, 4096 ]
                 height: [ 32, 4096 ]
                profile: { (string)main, (string)high, (string)constrained-baseline, (string)baseline, (string)high-4:4:4 }
          stream-format: { (string)avc, (string)byte-stream }
              alignment: au

Element has no clocking capabilities.
Element has no URI handling capabilities.

Pads:
  SINK: 'sink'
    Pad Template: 'sink'
  SRC: 'src'
    Pad Template: 'src'

Element Properties:

  aq-strength         : Adaptive Quantization Strength when spatial-aq is enabled from 1 (low) to 15 (aggressive), (0 = autoselect)
                        flags: readable, writable, changeable in NULL, READY, PAUSED or PLAYING state
                        Unsigned Integer. Range: 0 - 15 Default: 0

  aud                 : Use AU (Access Unit) delimiter
                        flags: readable, writable, changeable in NULL, READY, PAUSED or PLAYING state
                        Boolean. Default: true

  b-adapt             : Enable adaptive B-frame insert when lookahead is enabled
                        flags: readable, writable, conditionally available, changeable in NULL, READY, PAUSED or PLAYING state
                        Boolean. Default: false

  b-frames            : Number of B-frames between I and P
                        flags: readable, writable, conditionally available, changeable in NULL, READY, PAUSED or PLAYING state
                        Unsigned Integer. Range: 0 - 4 Default: 0

  bitrate             : Bitrate in kbit/sec (0 = automatic)
                        flags: readable, writable, changeable in NULL, READY, PAUSED or PLAYING state
                        Unsigned Integer. Range: 0 - 2048000 Default: 0

  cabac               : Enable CABAC entropy coding
                        flags: readable, writable, conditionally available, changeable in NULL, READY, PAUSED or PLAYING state
                        Boolean. Default: true

  cc-insert           : Closed Caption Insert mode
                        flags: readable, writable
                        Enum "GstNvEncoderSeiInsertMode" Default: 0, "insert"
                           (0): insert           - Insert SEI
                           (1): insert-and-drop  - Insert SEI and remove corresponding meta from output buffer
                           (2): disabled         - Disable SEI insertion

  const-quality       : Target Constant Quality level for VBR mode (0 = automatic)
                        flags: readable, writable, changeable in NULL, READY, PAUSED or PLAYING state
                        Double. Range:               0 -              51 Default:               0

  cuda-device-id      : CUDA device ID of associated GPU
                        flags: readable
                        Unsigned Integer. Range: 0 - 2147483647 Default: 0

  gop-size            : Number of frames between intra frames (-1 = infinite)
                        flags: readable, writable, changeable in NULL, READY, PAUSED or PLAYING state
                        Integer. Range: -1 - 2147483647 Default: 30

  i-adapt             : Enable adaptive I-frame insert when lookahead is enabled
                        flags: readable, writable, conditionally available, changeable in NULL, READY, PAUSED or PLAYING state
                        Boolean. Default: false

  max-bitrate         : Maximum Bitrate in kbit/sec (ignored in CBR mode)
                        flags: readable, writable, changeable in NULL, READY, PAUSED or PLAYING state
                        Unsigned Integer. Range: 0 - 2048000 Default: 0

  max-qp-b            : Maximum QP value for B frame, (-1 = automatic)
                        flags: readable, writable, changeable in NULL, READY, PAUSED or PLAYING state
                        Integer. Range: -1 - 51 Default: -1

  max-qp-i            : Maximum QP value for I frame, (-1 = disabled)
                        flags: readable, writable, changeable in NULL, READY, PAUSED or PLAYING state
                        Integer. Range: -1 - 51 Default: -1

  max-qp-p            : Maximum QP value for P frame, (-1 = automatic)
                        flags: readable, writable, changeable in NULL, READY, PAUSED or PLAYING state
                        Integer. Range: -1 - 51 Default: -1

  min-force-key-unit-interval: Minimum interval between force-keyunit requests in nanoseconds
                        flags: readable, writable
                        Unsigned Integer64. Range: 0 - 18446744073709551615 Default: 0

  min-qp-b            : Minimum QP value for B frame, (-1 = automatic)
                        flags: readable, writable, changeable in NULL, READY, PAUSED or PLAYING state
                        Integer. Range: -1 - 51 Default: -1

  min-qp-i            : Minimum QP value for I frame, (-1 = disabled)
                        flags: readable, writable, changeable in NULL, READY, PAUSED or PLAYING state
                        Integer. Range: -1 - 51 Default: -1

  min-qp-p            : Minimum QP value for P frame, (-1 = automatic)
                        flags: readable, writable, changeable in NULL, READY, PAUSED or PLAYING state
                        Integer. Range: -1 - 51 Default: -1

  multi-pass          : Multi pass encoding
                        flags: readable, writable, changeable in NULL, READY, PAUSED or PLAYING state
                        Enum "GstNvEncoderMultiPass" Default: 0, "default"
                           (0): default          - Disable multi-pass when cqp, vbr or cbr is used. Otherwise encoder will select it based on rc-mode
                           (1): disabled         - Disabled
                           (2): two-pass-quarter - Two pass with quarter resolution encoding in first pass
                           (3): two-pass         - Two pass

  name                : The name of the object
                        flags: readable, writable
                        String. Default: "nvcudah264enc0"

  nonref-p            : Automatic insertion of non-reference P-frames
                        flags: readable, writable, changeable in NULL, READY, PAUSED or PLAYING state
                        Boolean. Default: false

  parent              : The parent of the object
                        flags: readable, writable
                        Object of type "GstObject"

  preset              : Encoding Preset
                        flags: readable, writable, changeable in NULL, READY, PAUSED or PLAYING state
                        Enum "GstNvEncoderPreset" Default: 11, "p4"
                           (0): default          - Default (deprecated, use p1~7 with tune)
                           (1): hp               - High Performance (deprecated, use p1~7 with tune)
                           (2): hq               - High Quality (deprecated, use p1~7 with tune)
                           (3): low-latency      - Low Latency (deprecated, use p1~7 with tune)
                           (4): low-latency-hq   - Low Latency (deprecated, use p1~7 with tune), High Quality
                           (5): low-latency-hp   - Low Latency (deprecated, use p1~7 with tune), High Performance
                           (6): lossless         - Lossless (deprecated, use p1~7 with tune)
                           (7): lossless-hp      - Lossless (deprecated, use p1~7 with tune), High Performance
                           (8): p1               - P1, fastest
                           (9): p2               - P2, faster
                           (10): p3               - P3, fast
                           (11): p4               - P4, medium
                           (12): p5               - P5, slow
                           (13): p6               - P6, slower
                           (14): p7               - P7, slowest

  qos                 : Handle Quality-of-Service events from downstream
                        flags: readable, writable
                        Boolean. Default: false

  qp-b                : Constant QP value for B frame (-1 = default)
                        flags: readable, writable, changeable in NULL, READY, PAUSED or PLAYING state
                        Integer. Range: -1 - 51 Default: -1

  qp-i                : Constant QP value for I frame (-1 = default)
                        flags: readable, writable, changeable in NULL, READY, PAUSED or PLAYING state
                        Integer. Range: -1 - 51 Default: -1

  qp-p                : Constant QP value for P frame (-1 = default)
                        flags: readable, writable, changeable in NULL, READY, PAUSED or PLAYING state
                        Integer. Range: -1 - 51 Default: -1

  rate-control        : Rate Control Method
                        flags: readable, writable, changeable in NULL, READY, PAUSED or PLAYING state
                        Enum "GstNvEncoderRCMode" Default: 1, "vbr"
                           (0): cqp              - Constant Quantization
                           (1): vbr              - Variable Bit Rate
                           (2): cbr              - Constant Bit Rate
                           (3): cbr-ld-hq        - Low-Delay CBR, High Quality (deprecated, use cbr with tune and multipass)
                           (4): cbr-hq           - CBR, High Quality (deprecated, use cbr with tune and multipass)
                           (5): vbr-hq           - VBR, High Quality (deprecated, use vbr with tune and multipass)

  rc-lookahead        : Number of frames for frame type lookahead
                        flags: readable, writable, conditionally available, changeable in NULL, READY, PAUSED or PLAYING state
                        Unsigned Integer. Range: 0 - 32 Default: 0

  repeat-sequence-header: Insert sequence headers (SPS/PPS) per IDR
                        flags: readable, writable, changeable in NULL, READY, PAUSED or PLAYING state
                        Boolean. Default: false

  spatial-aq          : Spatial Adaptive Quantization
                        flags: readable, writable, changeable in NULL, READY, PAUSED or PLAYING state
                        Boolean. Default: false

  strict-gop          : Minimize GOP-to-GOP rate fluctuations
                        flags: readable, writable, changeable in NULL, READY, PAUSED or PLAYING state
                        Boolean. Default: false

  temporal-aq         : Temporal Adaptive Quantization
                        flags: readable, writable, conditionally available, changeable in NULL, READY, PAUSED or PLAYING state
                        Boolean. Default: false

  tune                : Encoding tune
                        flags: readable, writable, changeable in NULL, READY, PAUSED or PLAYING state
                        Enum "GstNvEncoderTune" Default: 0, "default"
                           (0): default          - High quality when p1~7 preset is used. Otherwise encoder will select it based on preset
                           (1): high-quality     - High quality
                           (2): low-latency      - Low latency
                           (3): ultra-low-latency - Ultra low latency
                           (4): lossless         - Lossless

  vbv-buffer-size     : VBV(HRD) Buffer Size in kbits (0 = NVENC default)
                        flags: readable, writable, conditionally available, changeable in NULL, READY, PAUSED or PLAYING state
                        Unsigned Integer. Range: 0 - 4294967295 Default: 0

  weighted-pred       : Enables Weighted Prediction
                        flags: readable, writable, conditionally available, changeable in NULL, READY, PAUSED or PLAYING state
                        Boolean. Default: false

  zero-reorder-delay  : Zero latency operation (i.e., num_reorder_frames = 0)
                        flags: readable, writable, changeable in NULL, READY, PAUSED or PLAYING state
                        Boolean. Default: false
Factory Details:
  Rank                     none (0)
  Long-name                NVENC H.265 Video Encoder CUDA Mode
  Klass                    Codec/Encoder/Video/Hardware
  Description              Encode H.265 video streams using NVCODEC API CUDA Mode
  Author                   Seungha Yang <seungha@centricular.com>
  Documentation            https://gstreamer.freedesktop.org/documentation/nvcodec/nvcudah265enc.html

Plugin Details:
  Name                     nvcodec
  Description              GStreamer NVCODEC plugin
  Filename                 /opt/gstreamer/lib/x86_64-linux-gnu/gstreamer-1.0/libgstnvcodec.so
  Version                  1.24.1
  License                  LGPL
  Source module            gst-plugins-bad
  Documentation            https://gstreamer.freedesktop.org/documentation/nvcodec/
  Source release date      2024-03-21
  Binary package           GStreamer Bad Plug-ins source release
  Origin URL               Unknown package origin

GObject
 +----GInitiallyUnowned
       +----GstObject
             +----GstElement
                   +----GstVideoEncoder
                         +----GstNvEncoder
                               +----GstNvCudaH265Enc

Implemented Interfaces:
  GstPreset

Pad Templates:
  SINK template: 'sink'
    Availability: Always
    Capabilities:
      video/x-raw(memory:CUDAMemory)
                 format: { (string)NV12, (string)P010_10LE, (string)Y444, (string)Y444_16LE, (string)GBR, (string)GBR_16LE }
                  width: [ 80, 8192 ]
                 height: [ 48, 8192 ]
         interlace-mode: progressive
      video/x-raw(memory:GLMemory)
                 format: { (string)NV12, (string)P010_10LE, (string)Y444, (string)Y444_16LE, (string)GBR, (string)GBR_16LE }
                  width: [ 80, 8192 ]
                 height: [ 48, 8192 ]
         interlace-mode: progressive
      video/x-raw
                 format: { (string)NV12, (string)P010_10LE, (string)Y444, (string)Y444_16LE, (string)GBR, (string)GBR_16LE }
                  width: [ 80, 8192 ]
                 height: [ 48, 8192 ]
         interlace-mode: progressive

  SRC template: 'src'
    Availability: Always
    Capabilities:
      video/x-h265
                  width: [ 80, 8192 ]
                 height: [ 48, 8192 ]
                profile: { (string)main, (string)main-10, (string)main-444, (string)main-444-10 }
          stream-format: { (string)hvc1, (string)hev1, (string)byte-stream }
              alignment: au

Element has no clocking capabilities.
Element has no URI handling capabilities.

Pads:
  SINK: 'sink'
    Pad Template: 'sink'
  SRC: 'src'
    Pad Template: 'src'

Element Properties:

  aq-strength         : Adaptive Quantization Strength when spatial-aq is enabled from 1 (low) to 15 (aggressive), (0 = autoselect)
                        flags: readable, writable, changeable in NULL, READY, PAUSED or PLAYING state
                        Unsigned Integer. Range: 0 - 15 Default: 0

  aud                 : Use AU (Access Unit) delimiter
                        flags: readable, writable, changeable in NULL, READY, PAUSED or PLAYING state
                        Boolean. Default: true

  bitrate             : Bitrate in kbit/sec (0 = automatic)
                        flags: readable, writable, changeable in NULL, READY, PAUSED or PLAYING state
                        Unsigned Integer. Range: 0 - 2048000 Default: 0

  cc-insert           : Closed Caption Insert mode
                        flags: readable, writable
                        Enum "GstNvEncoderSeiInsertMode" Default: 0, "insert"
                           (0): insert           - Insert SEI
                           (1): insert-and-drop  - Insert SEI and remove corresponding meta from output buffer
                           (2): disabled         - Disable SEI insertion

  const-quality       : Target Constant Quality level for VBR mode (0 = automatic)
                        flags: readable, writable, changeable in NULL, READY, PAUSED or PLAYING state
                        Double. Range:               0 -              51 Default:               0

  cuda-device-id      : CUDA device ID of associated GPU
                        flags: readable
                        Unsigned Integer. Range: 0 - 2147483647 Default: 0

  gop-size            : Number of frames between intra frames (-1 = infinite)
                        flags: readable, writable, changeable in NULL, READY, PAUSED or PLAYING state
                        Integer. Range: -1 - 2147483647 Default: 30

  i-adapt             : Enable adaptive I-frame insert when lookahead is enabled
                        flags: readable, writable, conditionally available, changeable in NULL, READY, PAUSED or PLAYING state
                        Boolean. Default: false

  max-bitrate         : Maximum Bitrate in kbit/sec (ignored in CBR mode)
                        flags: readable, writable, changeable in NULL, READY, PAUSED or PLAYING state
                        Unsigned Integer. Range: 0 - 2048000 Default: 0

  max-qp-b            : Maximum QP value for B frame, (-1 = automatic)
                        flags: readable, writable, changeable in NULL, READY, PAUSED or PLAYING state
                        Integer. Range: -1 - 51 Default: -1

  max-qp-i            : Maximum QP value for I frame, (-1 = disabled)
                        flags: readable, writable, changeable in NULL, READY, PAUSED or PLAYING state
                        Integer. Range: -1 - 51 Default: -1

  max-qp-p            : Maximum QP value for P frame, (-1 = automatic)
                        flags: readable, writable, changeable in NULL, READY, PAUSED or PLAYING state
                        Integer. Range: -1 - 51 Default: -1

  min-force-key-unit-interval: Minimum interval between force-keyunit requests in nanoseconds
                        flags: readable, writable
                        Unsigned Integer64. Range: 0 - 18446744073709551615 Default: 0

  min-qp-b            : Minimum QP value for B frame, (-1 = automatic)
                        flags: readable, writable, changeable in NULL, READY, PAUSED or PLAYING state
                        Integer. Range: -1 - 51 Default: -1

  min-qp-i            : Minimum QP value for I frame, (-1 = disabled)
                        flags: readable, writable, changeable in NULL, READY, PAUSED or PLAYING state
                        Integer. Range: -1 - 51 Default: -1

  min-qp-p            : Minimum QP value for P frame, (-1 = automatic)
                        flags: readable, writable, changeable in NULL, READY, PAUSED or PLAYING state
                        Integer. Range: -1 - 51 Default: -1

  multi-pass          : Multi pass encoding
                        flags: readable, writable, changeable in NULL, READY, PAUSED or PLAYING state
                        Enum "GstNvEncoderMultiPass" Default: 0, "default"
                           (0): default          - Disable multi-pass when cqp, vbr or cbr is used. Otherwise encoder will select it based on rc-mode
                           (1): disabled         - Disabled
                           (2): two-pass-quarter - Two pass with quarter resolution encoding in first pass
                           (3): two-pass         - Two pass

  name                : The name of the object
                        flags: readable, writable
                        String. Default: "nvcudah265enc0"

  nonref-p            : Automatic insertion of non-reference P-frames
                        flags: readable, writable, changeable in NULL, READY, PAUSED or PLAYING state
                        Boolean. Default: false

  parent              : The parent of the object
                        flags: readable, writable
                        Object of type "GstObject"

  preset              : Encoding Preset
                        flags: readable, writable, changeable in NULL, READY, PAUSED or PLAYING state
                        Enum "GstNvEncoderPreset" Default: 11, "p4"
                           (0): default          - Default (deprecated, use p1~7 with tune)
                           (1): hp               - High Performance (deprecated, use p1~7 with tune)
                           (2): hq               - High Quality (deprecated, use p1~7 with tune)
                           (3): low-latency      - Low Latency (deprecated, use p1~7 with tune)
                           (4): low-latency-hq   - Low Latency (deprecated, use p1~7 with tune), High Quality
                           (5): low-latency-hp   - Low Latency (deprecated, use p1~7 with tune), High Performance
                           (6): lossless         - Lossless (deprecated, use p1~7 with tune)
                           (7): lossless-hp      - Lossless (deprecated, use p1~7 with tune), High Performance
                           (8): p1               - P1, fastest
                           (9): p2               - P2, faster
                           (10): p3               - P3, fast
                           (11): p4               - P4, medium
                           (12): p5               - P5, slow
                           (13): p6               - P6, slower
                           (14): p7               - P7, slowest

  qos                 : Handle Quality-of-Service events from downstream
                        flags: readable, writable
                        Boolean. Default: false

  qp-b                : Constant QP value for B frame (-1 = default)
                        flags: readable, writable, changeable in NULL, READY, PAUSED or PLAYING state
                        Integer. Range: -1 - 51 Default: -1

  qp-i                : Constant QP value for I frame (-1 = default)
                        flags: readable, writable, changeable in NULL, READY, PAUSED or PLAYING state
                        Integer. Range: -1 - 51 Default: -1

  qp-p                : Constant QP value for P frame (-1 = default)
                        flags: readable, writable, changeable in NULL, READY, PAUSED or PLAYING state
                        Integer. Range: -1 - 51 Default: -1

  rate-control        : Rate Control Method
                        flags: readable, writable, changeable in NULL, READY, PAUSED or PLAYING state
                        Enum "GstNvEncoderRCMode" Default: 1, "vbr"
                           (0): cqp              - Constant Quantization
                           (1): vbr              - Variable Bit Rate
                           (2): cbr              - Constant Bit Rate
                           (3): cbr-ld-hq        - Low-Delay CBR, High Quality (deprecated, use cbr with tune and multipass)
                           (4): cbr-hq           - CBR, High Quality (deprecated, use cbr with tune and multipass)
                           (5): vbr-hq           - VBR, High Quality (deprecated, use vbr with tune and multipass)

  rc-lookahead        : Number of frames for frame type lookahead
                        flags: readable, writable, conditionally available, changeable in NULL, READY, PAUSED or PLAYING state
                        Unsigned Integer. Range: 0 - 32 Default: 0

  repeat-sequence-header: Insert sequence headers (SPS/PPS) per IDR, ignored if negotiated stream-format is "hvc1"
                        flags: readable, writable, changeable in NULL, READY, PAUSED or PLAYING state
                        Boolean. Default: false

  spatial-aq          : Spatial Adaptive Quantization
                        flags: readable, writable, changeable in NULL, READY, PAUSED or PLAYING state
                        Boolean. Default: false

  strict-gop          : Minimize GOP-to-GOP rate fluctuations
                        flags: readable, writable, changeable in NULL, READY, PAUSED or PLAYING state
                        Boolean. Default: false

  tune                : Encoding tune
                        flags: readable, writable, changeable in NULL, READY, PAUSED or PLAYING state
                        Enum "GstNvEncoderTune" Default: 0, "default"
                           (0): default          - High quality when p1~7 preset is used. Otherwise encoder will select it based on preset
                           (1): high-quality     - High quality
                           (2): low-latency      - Low latency
                           (3): ultra-low-latency - Ultra low latency
                           (4): lossless         - Lossless

  vbv-buffer-size     : VBV(HRD) Buffer Size in kbits (0 = NVENC default)
                        flags: readable, writable, conditionally available, changeable in NULL, READY, PAUSED or PLAYING state
                        Unsigned Integer. Range: 0 - 4294967295 Default: 0

  weighted-pred       : Enables Weighted Prediction
                        flags: readable, writable, conditionally available, changeable in NULL, READY, PAUSED or PLAYING state
                        Boolean. Default: false

  zero-reorder-delay  : Zero latency operation (i.e., num_reorder_frames = 0)
                        flags: readable, writable, changeable in NULL, READY, PAUSED or PLAYING state
                        Boolean. Default: false
Factory Details:
  Rank                     marginal (64)
  Long-name                OpenH264 video encoder
  Klass                    Encoder/Video
  Description              OpenH264 video encoder
  Author                   Ericsson AB, http://www.ericsson.com
  Documentation            https://gstreamer.freedesktop.org/documentation/openh264/openh264enc.html

Plugin Details:
  Name                     openh264
  Description              OpenH264 encoder/decoder plugin
  Filename                 /opt/gstreamer/lib/x86_64-linux-gnu/gstreamer-1.0/libgstopenh264.so
  Version                  1.25.0.1
  License                  BSD
  Source module            gst-plugins-bad
  Documentation            https://gstreamer.freedesktop.org/documentation/openh264/
  Binary package           GStreamer Bad Plug-ins git
  Origin URL               Unknown package origin

GObject
 +----GInitiallyUnowned
       +----GstObject
             +----GstElement
                   +----GstVideoEncoder
                         +----GstOpenh264Enc

Implemented Interfaces:
  GstPreset

Pad Templates:
  SINK template: 'sink'
    Availability: Always
    Capabilities:
      video/x-raw
                 format: I420
                  width: [ 1, 2147483647 ]
                 height: [ 1, 2147483647 ]
              framerate: [ 0/1, 2147483647/1 ]

  SRC template: 'src'
    Availability: Always
    Capabilities:
      video/x-h264
          stream-format: byte-stream
              alignment: au
                profile: { (string)constrained-baseline, (string)baseline, (string)main, (string)constrained-high, (string)high }

Element has no clocking capabilities.
Element has no URI handling capabilities.

Pads:
  SINK: 'sink'
    Pad Template: 'sink'
  SRC: 'src'
    Pad Template: 'src'

Element Properties:

  adaptive-quantization: Adaptive quantization
                        flags: readable, writable
                        Boolean. Default: true

  background-detection: Background detection
                        flags: readable, writable
                        Boolean. Default: true

  bitrate             : Bitrate (in bits per second)
                        flags: readable, writable, changeable in NULL, READY, PAUSED or PLAYING state
                        Unsigned Integer. Range: 0 - 4294967295 Default: 128000

  complexity          : Complexity
                        flags: readable, writable
                        Enum "GstOpenh264encComplexity" Default: 1, "medium"
                           (0): low              - Low complexity / high speed encoding
                           (1): medium           - Medium complexity / medium speed encoding
                           (2): high             - High complexity / low speed encoding

  deblocking          : Deblocking mode
                        flags: readable, writable
                        Enum "GstOpenh264encDeblockingModes" Default: 0, "on"
                           (0): on               - Deblocking on
                           (1): off              - Deblocking off
                           (2): not-slice-boundaries - Deblocking on, except for slice boundaries

  enable-denoise      : Denoise control
                        flags: readable, writable
                        Boolean. Default: false

  enable-frame-skip   : Skip frames to reach target bitrate
                        flags: readable, writable
                        Boolean. Default: false

  gop-size            : Number of frames between intra frames
                        flags: readable, writable
                        Unsigned Integer. Range: 0 - 4294967295 Default: 90

  max-bitrate         : Maximum Bitrate (in bits per second)
                        flags: readable, writable, changeable in NULL, READY, PAUSED or PLAYING state
                        Unsigned Integer. Range: 0 - 4294967295 Default: 0

  max-slice-size      : The maximum size of one slice (in bytes).
                        flags: readable, writable
                        Unsigned Integer. Range: 0 - 4294967295 Default: 1500000

  min-force-key-unit-interval: Minimum interval between force-keyunit requests in nanoseconds
                        flags: readable, writable
                        Unsigned Integer64. Range: 0 - 18446744073709551615 Default: 0

  multi-thread        : The number of threads.
                        flags: readable, writable
                        Unsigned Integer. Range: 0 - 4294967295 Default: 0

  name                : The name of the object
                        flags: readable, writable
                        String. Default: "openh264enc0"

  num-slices          : The number of slices (needs slice-mode=n-slices)
                        flags: readable, writable
                        Unsigned Integer. Range: 0 - 4294967295 Default: 1

  parent              : The parent of the object
                        flags: readable, writable
                        Object of type "GstObject"

  qos                 : Handle Quality-of-Service events from downstream
                        flags: readable, writable
                        Boolean. Default: false

  qp-max              : Maximum quantizer
                        flags: readable, writable
                        Unsigned Integer. Range: 0 - 51 Default: 51

  qp-min              : Minimum quantizer
                        flags: readable, writable
                        Unsigned Integer. Range: 0 - 51 Default: 0

  rate-control        : Rate control mode
                        flags: readable, writable
                        Enum "RC_MODES" Default: 0, "quality"
                           (0): quality          - Quality mode
                           (1): bitrate          - Bitrate mode
                           (2): buffer           - No bitrate control, just using buffer status
                           (-1): off              - Rate control off mode

  scene-change-detection: Scene change detection
                        flags: readable, writable
                        Boolean. Default: true

  slice-mode          : Slice mode
                        flags: readable, writable
                        Enum "GstOpenh264EncSliceModes" Default: 1, "n-slices"
                           (1): n-slices         - Fixed number of slices
                           (5): auto             - Number of slices equal to number of threads

  usage-type          : Type of video content
                        flags: readable, writable
                        Enum "EUsageType" Default: 0, "camera"
                           (0): camera           - video from camera
                           (1): screen           - screen content
Factory Details:
  Rank                     primary (256)
  Long-name                x264 H.264 Encoder
  Klass                    Codec/Encoder/Video
  Description              libx264-based H.264 video encoder
  Author                   Josef Zlomek <josef.zlomek@itonis.tv>, Mark Nauwelaerts <mnauw@users.sf.net>
  Documentation            https://gstreamer.freedesktop.org/documentation/x264/#x264enc-page

Plugin Details:
  Name                     x264
  Description              libx264-based H.264 encoder plugin
  Filename                 /opt/gstreamer/lib/x86_64-linux-gnu/gstreamer-1.0/libgstx264.so
  Version                  1.24.2
  License                  GPL
  Source module            gst-plugins-ugly
  Documentation            https://gstreamer.freedesktop.org/documentation/x264/
  Source release date      2024-04-09
  Binary package           GStreamer Ugly Plug-ins source release
  Origin URL               Unknown package origin

GObject
 +----GInitiallyUnowned
       +----GstObject
             +----GstElement
                   +----GstVideoEncoder
                         +----GstX264Enc

Implemented Interfaces:
  GstPreset

Pad Templates:
  SINK template: 'sink'
    Availability: Always
    Capabilities:
      video/x-raw
              framerate: [ 0/1, 2147483647/1 ]
                  width: [ 1, 2147483647 ]
                 height: [ 1, 2147483647 ]
                 format: { (string)Y444, (string)Y42B, (string)I420, (string)YV12, (string)NV12, (string)GRAY8 }

  SRC template: 'src'
    Availability: Always
    Capabilities:
      video/x-h264
              framerate: [ 0/1, 2147483647/1 ]
                  width: [ 1, 2147483647 ]
                 height: [ 1, 2147483647 ]
          stream-format: { (string)avc, (string)byte-stream }
              alignment: au
                profile: { (string)high-4:4:4, (string)high-4:2:2, (string)high-10, (string)high, (string)main, (string)baseline, (string)constrained-baseline, (string)high-4:4:4-intra, (string)high-4:2:2-intra, (string)high-10-intra }

Element has no clocking capabilities.
Element has no URI handling capabilities.

Pads:
  SINK: 'sink'
    Pad Template: 'sink'
  SRC: 'src'
    Pad Template: 'src'

Element Properties:

  analyse             : Partitions to consider
                        flags: readable, writable
                        Flags "GstX264EncAnalyse" Default: 0x00000000, "(none)"
                           (0x00000001): i4x4             - i4x4
                           (0x00000002): i8x8             - i8x8
                           (0x00000010): p8x8             - p8x8
                           (0x00000020): p4x4             - p4x4
                           (0x00000100): b8x8             - b8x8

  aud                 : Use AU (Access Unit) delimiter
                        flags: readable, writable
                        Boolean. Default: true

  b-adapt             : Automatically decide how many B-frames to use
                        flags: readable, writable
                        Boolean. Default: true

  b-pyramid           : Keep some B-frames as references
                        flags: readable, writable
                        Boolean. Default: false

  bframes             : Number of B-frames between I and P
                        flags: readable, writable
                        Unsigned Integer. Range: 0 - 16 Default: 0

  bitrate             : Bitrate in kbit/sec
                        flags: readable, writable, changeable in NULL, READY, PAUSED or PLAYING state
                        Unsigned Integer. Range: 1 - 2048000 Default: 2048

  byte-stream         : Generate byte stream format of NALU
                        flags: readable, writable
                        Boolean. Default: false

  cabac               : Enable CABAC entropy coding
                        flags: readable, writable
                        Boolean. Default: true

  dct8x8              : Adaptive spatial transform size
                        flags: readable, writable
                        Boolean. Default: false

  frame-packing       : Set frame packing mode for Stereoscopic content
                        flags: readable, writable
                        Enum "GstX264EncFramePacking" Default: -1, "auto"
                           (-1): auto             - Automatic (use incoming video information)
                           (0): checkerboard     - checkerboard - Left and Right pixels alternate in a checkerboard pattern
                           (1): column-interleaved - column interleaved - Alternating pixel columns represent Left and Right views
                           (2): row-interleaved  - row interleaved - Alternating pixel rows represent Left and Right views
                           (3): side-by-side     - side by side - The left half of the frame contains the Left eye view, the right half the Right eye view
                           (4): top-bottom       - top bottom - L is on top, R on bottom
                           (5): frame-interleaved - frame interleaved - Each frame contains either Left or Right view alternately

  insert-vui          : Insert VUI NAL in stream
                        flags: readable, writable
                        Boolean. Default: true

  interlaced          : Interlaced material
                        flags: readable, writable
                        Boolean. Default: false

  intra-refresh       : Use Periodic Intra Refresh instead of IDR frames
                        flags: readable, writable
                        Boolean. Default: false

  ip-factor           : Quantizer factor between I- and P-frames
                        flags: readable, writable
                        Float. Range:               0 -               2 Default:             1.4

  key-int-max         : Maximal distance between two key-frames (0 for automatic)
                        flags: readable, writable
                        Unsigned Integer. Range: 0 - 2147483647 Default: 0

  mb-tree             : Macroblock-Tree ratecontrol
                        flags: readable, writable
                        Boolean. Default: true

  me                  : Integer pixel motion estimation method
                        flags: readable, writable
                        Enum "GstX264EncMe" Default: 1, "hex"
                           (0): dia              - dia
                           (1): hex              - hex
                           (2): umh              - umh
                           (3): esa              - esa
                           (4): tesa             - tesa

  min-force-key-unit-interval: Minimum interval between force-keyunit requests in nanoseconds
                        flags: readable, writable
                        Unsigned Integer64. Range: 0 - 18446744073709551615 Default: 0

  multipass-cache-file: Filename for multipass cache file
                        flags: readable, writable
                        String. Default: "x264.log"

  name                : The name of the object
                        flags: readable, writable
                        String. Default: "x264enc0"

  noise-reduction     : Noise reduction strength
                        flags: readable, writable
                        Unsigned Integer. Range: 0 - 100000 Default: 0

  option-string       : String of x264 options (overridden by element properties) in the format "key1=value1:key2=value2".
                        flags: readable, writable
                        String. Default: ""

  parent              : The parent of the object
                        flags: readable, writable
                        Object of type "GstObject"

  pass                : Encoding pass/type
                        flags: readable, writable
                        Enum "GstX264EncPass" Default: 0, "cbr"
                           (0): cbr              - Constant Bitrate Encoding
                           (4): quant            - Constant Quantizer
                           (5): qual             - Constant Quality
                           (17): pass1            - VBR Encoding - Pass 1
                           (18): pass2            - VBR Encoding - Pass 2
                           (19): pass3            - VBR Encoding - Pass 3

  pb-factor           : Quantizer factor between P- and B-frames
                        flags: readable, writable
                        Float. Range:               0 -               2 Default:             1.3

  psy-tune            : Preset name for psychovisual tuning options
                        flags: readable, writable
                        Enum "GstX264EncPsyTune" Default: 0, "none"
                           (0): none             - No tuning
                           (1): film             - Film
                           (2): animation        - Animation
                           (3): grain            - Grain
                           (4): psnr             - PSNR
                           (5): ssim             - SSIM

  qos                 : Handle Quality-of-Service events from downstream
                        flags: readable, writable
                        Boolean. Default: false

  qp-max              : Maximum quantizer
                        flags: readable, writable
                        Unsigned Integer. Range: 0 - 63 Default: 51

  qp-min              : Minimum quantizer
                        flags: readable, writable
                        Unsigned Integer. Range: 0 - 63 Default: 10

  qp-step             : Maximum quantizer difference between frames
                        flags: readable, writable
                        Unsigned Integer. Range: 0 - 63 Default: 4

  quantizer           : Constant quantizer or quality to apply
                        flags: readable, writable
                        Unsigned Integer. Range: 0 - 50 Default: 21

  rc-lookahead        : Number of frames for frametype lookahead
                        flags: readable, writable
                        Integer. Range: 0 - 250 Default: 40

  ref                 : Number of reference frames
                        flags: readable, writable
                        Unsigned Integer. Range: 1 - 16 Default: 3

  sliced-threads      : Low latency but lower efficiency threading
                        flags: readable, writable
                        Boolean. Default: false

  speed-preset        : Preset name for speed/quality tradeoff options (can affect decode compatibility - impose restrictions separately for your target decoder)
                        flags: readable, writable
                        Enum "GstX264EncPreset" Default: 6, "medium"
                           (0): None             - No preset
                           (1): ultrafast        - ultrafast
                           (2): superfast        - superfast
                           (3): veryfast         - veryfast
                           (4): faster           - faster
                           (5): fast             - fast
                           (6): medium           - medium
                           (7): slow             - slow
                           (8): slower           - slower
                           (9): veryslow         - veryslow
                           (10): placebo          - placebo

  sps-id              : SPS and PPS ID number
                        flags: readable, writable
                        Unsigned Integer. Range: 0 - 31 Default: 0

  subme               : Subpixel motion estimation and partition decision quality: 1=fast, 10=best
                        flags: readable, writable
                        Unsigned Integer. Range: 1 - 10 Default: 1

  sync-lookahead      : Number of buffer frames for threaded lookahead (-1 for automatic)
                        flags: readable, writable
                        Integer. Range: -1 - 250 Default: -1

  threads             : Number of threads used by the codec (0 for automatic)
                        flags: readable, writable
                        Unsigned Integer. Range: 0 - 2147483647 Default: 0

  trellis             : Enable trellis searched quantization
                        flags: readable, writable
                        Boolean. Default: true

  tune                : Preset name for non-psychovisual tuning options
                        flags: readable, writable
                        Flags "GstX264EncTune" Default: 0x00000000, "(none)"
                           (0x00000001): stillimage       - Still image
                           (0x00000002): fastdecode       - Fast decode
                           (0x00000004): zerolatency      - Zero latency

  vbv-buf-capacity    : Size of the VBV buffer in milliseconds
                        flags: readable, writable, changeable in NULL, READY, PAUSED or PLAYING state
                        Unsigned Integer. Range: 0 - 10000 Default: 600

  weightb             : Weighted prediction for B-frames
                        flags: readable, writable
                        Boolean. Default: false

Presets:
  "Profile Baseline": Baseline Profile
  "Profile High": High Profile
  "Profile Main": Main Profile
  "Profile YouTube": YouTube recommended settings (https://support.google.com/youtube/answer/1722171)
  "Quality High": High quality
  "Quality Low": Low quality
  "Quality Normal": Normal quality
  "Zero Latency"
Factory Details:
  Rank                     primary (256)
  Long-name                On2 VP8 Encoder
  Klass                    Codec/Encoder/Video
  Description              Encode VP8 video streams
  Author                   David Schleef <ds@entropywave.com>, Sebastian Dröge <sebastian.droege@collabora.co.uk>
  Documentation            https://gstreamer.freedesktop.org/documentation/vpx/vp8enc.html

Plugin Details:
  Name                     vpx
  Description              VP8/VP9 video encoding and decoding based on libvpx
  Filename                 /opt/gstreamer/lib/x86_64-linux-gnu/gstreamer-1.0/libgstvpx.so
  Version                  1.24.3
  License                  LGPL
  Source module            gst-plugins-good
  Documentation            https://gstreamer.freedesktop.org/documentation/vpx/
  Source release date      2024-04-30
  Binary package           GStreamer Good Plug-ins source release
  Origin URL               Unknown package origin

GObject
 +----GInitiallyUnowned
       +----GstObject
             +----GstElement
                   +----GstVideoEncoder
                         +----GstVPXEnc
                               +----GstVP8Enc

Implemented Interfaces:
  GstPreset
  GstTagSetter

Pad Templates:
  SINK template: 'sink'
    Availability: Always
    Capabilities:
      video/x-raw
                 format: I420
                  width: [ 1, 16383 ]
                 height: [ 1, 16383 ]
              framerate: [ 0/1, 2147483647/1 ]

  SRC template: 'src'
    Availability: Always
    Capabilities:
      video/x-vp8
                profile: { (string)0, (string)1, (string)2, (string)3 }

Element has no clocking capabilities.
Element has no URI handling capabilities.

Pads:
  SINK: 'sink'
    Pad Template: 'sink'
  SRC: 'src'
    Pad Template: 'src'

Element Properties:

  arnr-maxframes      : AltRef maximum number of frames
                        flags: readable, writable
                        Integer. Range: 0 - 15 Default: 0

  arnr-strength       : AltRef strength
                        flags: readable, writable
                        Integer. Range: 0 - 6 Default: 3

  arnr-type           : AltRef type
                        flags: readable, writable, deprecated
                        Integer. Range: 1 - 3 Default: 3

  auto-alt-ref        : Automatically generate AltRef frames
                        flags: readable, writable
                        Boolean. Default: false

  bits-per-pixel      : Factor to convert number of pixels to bitrate value (only has an effect if target-bitrate=0)
                        flags: readable, writable
                        Float. Range:               0 -    3.402823e+38 Default:          0.0434

  buffer-initial-size : Initial client buffer size (ms)
                        flags: readable, writable
                        Integer. Range: 0 - 2147483647 Default: 4000

  buffer-optimal-size : Optimal client buffer size (ms)
                        flags: readable, writable
                        Integer. Range: 0 - 2147483647 Default: 5000

  buffer-size         : Client buffer size (ms)
                        flags: readable, writable
                        Integer. Range: 0 - 2147483647 Default: 6000

  cpu-used            : CPU used
                        flags: readable, writable
                        Integer. Range: -16 - 16 Default: 0

  cq-level            : Constrained quality level
                        flags: readable, writable
                        Integer. Range: 0 - 63 Default: 10

  deadline            : Deadline per frame (usec, 0=best, 1=realtime)
                        flags: readable, writable
                        Integer64. Range: 0 - 9223372036854775807 Default: 1000000

  dropframe-threshold : Temporal resampling threshold (buf %)
                        flags: readable, writable
                        Integer. Range: 0 - 100 Default: 0

  end-usage           : Rate control mode
                        flags: readable, writable
                        Enum "GstVPXEncEndUsage" Default: 0, "vbr"
                           (0): vbr              - Variable Bit Rate (VBR) mode
                           (1): cbr              - Constant Bit Rate (CBR) mode
                           (2): cq               - Constant Quality Mode (CQ) mode

  error-resilient     : Error resilience flags
                        flags: readable, writable
                        Flags "GstVPXEncErFlags" Default: 0x00000000, "(none)"
                           (0x00000001): default          - Default error resilience
                           (0x00000002): partitions       - Allow partitions to be decoded independently

  horizontal-scaling-mode: Horizontal scaling mode
                        flags: readable, writable
                        Enum "GstVPXEncScalingMode" Default: 0, "normal"
                           (0): normal           - Normal
                           (1): 4:5              - 4:5
                           (2): 3:5              - 3:5
                           (3): 1:2              - 1:2

  keyframe-max-dist   : Maximum distance between keyframes (number of frames)
                        flags: readable, writable
                        Integer. Range: 0 - 2147483647 Default: 128

  keyframe-mode       : Keyframe placement
                        flags: readable, writable
                        Enum "GstVPXEncKfMode" Default: 1, "auto"
                           (1): auto             - Determine optimal placement automatically
                           (0): disabled         - Don't automatically place keyframes

  lag-in-frames       : Maximum number of frames to lag
                        flags: readable, writable
                        Integer. Range: 0 - 25 Default: 0

  max-intra-bitrate   : Maximum Intra frame bitrate
                        flags: readable, writable
                        Integer. Range: 0 - 2147483647 Default: 0

  max-quantizer       : Maximum Quantizer (worst)
                        flags: readable, writable
                        Integer. Range: 0 - 63 Default: 63

  min-force-key-unit-interval: Minimum interval between force-keyunit requests in nanoseconds
                        flags: readable, writable
                        Unsigned Integer64. Range: 0 - 18446744073709551615 Default: 0

  min-quantizer       : Minimum Quantizer (best)
                        flags: readable, writable
                        Integer. Range: 0 - 63 Default: 4

  multipass-cache-file: Multipass cache file. If stream caps reinited, multiple files will be created: file, file.1, file.2, ... and so on.
                        flags: readable, writable
                        String. Default: "multipass.cache"

  multipass-mode      : Multipass encode mode
                        flags: readable, writable
                        Enum "GstVPXEncMultipassMode" Default: 0, "one-pass"
                           (0): one-pass         - One pass encoding (default)
                           (1): first-pass       - First pass of multipass encoding
                           (2): last-pass        - Last pass of multipass encoding

  name                : The name of the object
                        flags: readable, writable
                        String. Default: "vp8enc0"

  noise-sensitivity   : Noise sensisivity (frames to blur)
                        flags: readable, writable
                        Integer. Range: 0 - 6 Default: 0

  overshoot           : Datarate overshoot (max) target (%)
                        flags: readable, writable
                        Integer. Range: 0 - 1000 Default: 100

  parent              : The parent of the object
                        flags: readable, writable
                        Object of type "GstObject"

  qos                 : Handle Quality-of-Service events from downstream
                        flags: readable, writable
                        Boolean. Default: false

  resize-allowed      : Allow spatial resampling
                        flags: readable, writable
                        Boolean. Default: false

  resize-down-threshold: Downscale threshold (buf %)
                        flags: readable, writable
                        Integer. Range: 0 - 100 Default: 30

  resize-up-threshold : Upscale threshold (buf %)
                        flags: readable, writable
                        Integer. Range: 0 - 100 Default: 60

  sharpness           : Filter sharpness
                        flags: readable, writable
                        Integer. Range: 0 - 7 Default: 0

  static-threshold    : Motion detection threshold. Recommendation is to set 100 for screen/window sharing
                        flags: readable, writable
                        Integer. Range: 0 - 2147483647 Default: 1

  target-bitrate      : Target bitrate (in bits/sec) (0: auto - bitrate depends on resolution, see "bits-per-pixel" property for more info)
                        flags: readable, writable
                        Integer. Range: 0 - 2147483647 Default: 256000

  temporal-scalability-layer-flags: Sequence defining coding layer flags
                        flags: readable, writable
                        Default: "<  >"
                        GstValueArray of GValues of type "GstVPXEncTsLayerFlags"

  temporal-scalability-layer-id: Sequence defining coding layer membership
                        flags: readable, writable
                        Array of GValues of type "gint"

  temporal-scalability-layer-sync-flags: Sequence defining coding layer sync flags
                        flags: readable, writable
                        Default: "<  >"
                        GstValueArray of GValues of type "gboolean"

  temporal-scalability-number-layers: Number of coding layers to use
                        flags: readable, writable
                        Integer. Range: 1 - 5 Default: 1

  temporal-scalability-periodicity: Length of sequence that defines layer membership periodicity
                        flags: readable, writable
                        Integer. Range: 0 - 16 Default: 0

  temporal-scalability-rate-decimator: Rate decimation factors for each layer
                        flags: readable, writable
                        Array of GValues of type "gint"

  temporal-scalability-target-bitrate: Target bitrates (bits/sec) for coding layers (one per layer)
                        flags: readable, writable
                        Array of GValues of type "gint"

  threads             : Number of threads to use
                        flags: readable, writable
                        Integer. Range: 0 - 64 Default: 0

  timebase            : Fraction of one second that is the shortest interframe time - normally left as zero which will default to the framerate
                        flags: readable, writable
                        Fraction. Range: 0/1 - 2147483647/1 Default: 0/1

  token-partitions    : Number of token partitions
                        flags: readable, writable
                        Enum "GstVPXEncTokenPartitions" Default: 0, "1"
                           (0): 1                - One token partition
                           (1): 2                - Two token partitions
                           (2): 4                - Four token partitions
                           (3): 8                - Eight token partitions

  tuning              : Tuning
                        flags: readable, writable
                        Enum "GstVPXEncTuning" Default: 0, "psnr"
                           (0): psnr             - Tune for PSNR
                           (1): ssim             - Tune for SSIM

  twopass-vbr-bias    : CBR/VBR bias (0=CBR, 100=VBR)
                        flags: readable, writable
                        Integer. Range: 0 - 100 Default: 50

  twopass-vbr-maxsection: GOP maximum bitrate (% target)
                        flags: readable, writable
                        Integer. Range: 0 - 2147483647 Default: 400

  twopass-vbr-minsection: GOP minimum bitrate (% target)
                        flags: readable, writable
                        Integer. Range: 0 - 2147483647 Default: 0

  undershoot          : Datarate undershoot (min) target (%)
                        flags: readable, writable
                        Integer. Range: 0 - 1000 Default: 100

  vertical-scaling-mode: Vertical scaling mode
                        flags: readable, writable
                        Enum "GstVPXEncScalingMode" Default: 0, "normal"
                           (0): normal           - Normal
                           (1): 4:5              - 4:5
                           (2): 3:5              - 3:5
                           (3): 1:2              - 1:2

Presets:
  "Profile Realtime"
Factory Details:
  Rank                     primary (256)
  Long-name                On2 VP9 Encoder
  Klass                    Codec/Encoder/Video
  Description              Encode VP9 video streams
  Author                   David Schleef <ds@entropywave.com>, Sebastian Dröge <sebastian.droege@collabora.co.uk>
  Documentation            https://gstreamer.freedesktop.org/documentation/vpx/vp9enc.html

Plugin Details:
  Name                     vpx
  Description              VP8/VP9 video encoding and decoding based on libvpx
  Filename                 /opt/gstreamer/lib/x86_64-linux-gnu/gstreamer-1.0/libgstvpx.so
  Version                  1.24.3
  License                  LGPL
  Source module            gst-plugins-good
  Documentation            https://gstreamer.freedesktop.org/documentation/vpx/
  Source release date      2024-04-30
  Binary package           GStreamer Good Plug-ins source release
  Origin URL               Unknown package origin

GObject
 +----GInitiallyUnowned
       +----GstObject
             +----GstElement
                   +----GstVideoEncoder
                         +----GstVPXEnc
                               +----GstVP9Enc

Implemented Interfaces:
  GstPreset
  GstTagSetter

Pad Templates:
  SINK template: 'sink'
    Availability: Always
    Capabilities:
      video/x-raw
                 format: { (string)I420, (string)YV12, (string)Y444, (string)I420_10LE, (string)I420_12LE, (string)I422_10LE, (string)I422_12LE, (string)Y444_10LE, (string)Y444_12LE }
                  width: [ 1, 2147483647 ]
                 height: [ 1, 2147483647 ]
              framerate: [ 0/1, 2147483647/1 ]

  SRC template: 'src'
    Availability: Always
    Capabilities:
      video/x-vp9
                profile: { (string)0, (string)1, (string)2, (string)3 }

Element has no clocking capabilities.
Element has no URI handling capabilities.

Pads:
  SINK: 'sink'
    Pad Template: 'sink'
  SRC: 'src'
    Pad Template: 'src'

Element Properties:

  aq-mode             : Which adaptive quantization mode should be used
                        flags: readable, writable
                        Enum "GstVPXAQ" Default: 0, "off"
                           (0): off              - GST_VPX_AQ_OFF
                           (1): variance         - GST_VPX_AQ_VARIANCE
                           (2): complexity       - GST_VPX_AQ_COMPLEXITY
                           (3): cyclic-refresh   - GST_VPX_AQ_CYCLIC_REFRESH
                           (4): equator360       - GST_VPX_AQ_EQUATOR360
                           (5): perceptual       - GST_VPX_AQ_PERCEPTUAL
                           (6): psnr             - GST_VPX_AQ_PSNR
                           (7): lookahead        - GST_VPX_AQ_LOOKAHEAD

  arnr-maxframes      : AltRef maximum number of frames
                        flags: readable, writable
                        Integer. Range: 0 - 15 Default: 0

  arnr-strength       : AltRef strength
                        flags: readable, writable
                        Integer. Range: 0 - 6 Default: 3

  arnr-type           : AltRef type
                        flags: readable, writable, deprecated
                        Integer. Range: 1 - 3 Default: 3

  auto-alt-ref        : Automatically generate AltRef frames
                        flags: readable, writable
                        Boolean. Default: false

  bits-per-pixel      : Factor to convert number of pixels to bitrate value (only has an effect if target-bitrate=0)
                        flags: readable, writable
                        Float. Range:               0 -    3.402823e+38 Default:          0.0289

  buffer-initial-size : Initial client buffer size (ms)
                        flags: readable, writable
                        Integer. Range: 0 - 2147483647 Default: 4000

  buffer-optimal-size : Optimal client buffer size (ms)
                        flags: readable, writable
                        Integer. Range: 0 - 2147483647 Default: 5000

  buffer-size         : Client buffer size (ms)
                        flags: readable, writable
                        Integer. Range: 0 - 2147483647 Default: 6000

  cpu-used            : CPU used
                        flags: readable, writable
                        Integer. Range: -16 - 16 Default: 0

  cq-level            : Constrained quality level
                        flags: readable, writable
                        Integer. Range: 0 - 63 Default: 10

  deadline            : Deadline per frame (usec, 0=best, 1=realtime)
                        flags: readable, writable
                        Integer64. Range: 0 - 9223372036854775807 Default: 1000000

  dropframe-threshold : Temporal resampling threshold (buf %)
                        flags: readable, writable
                        Integer. Range: 0 - 100 Default: 0

  end-usage           : Rate control mode
                        flags: readable, writable
                        Enum "GstVPXEncEndUsage" Default: 0, "vbr"
                           (0): vbr              - Variable Bit Rate (VBR) mode
                           (1): cbr              - Constant Bit Rate (CBR) mode
                           (2): cq               - Constant Quality Mode (CQ) mode

  error-resilient     : Error resilience flags
                        flags: readable, writable
                        Flags "GstVPXEncErFlags" Default: 0x00000000, "(none)"
                           (0x00000001): default          - Default error resilience
                           (0x00000002): partitions       - Allow partitions to be decoded independently

  frame-parallel-decoding: Whether encoded bitstream should allow parallel processing of video frames in the decoder (default is on)
                        flags: readable, writable
                        Boolean. Default: true

  horizontal-scaling-mode: Horizontal scaling mode
                        flags: readable, writable
                        Enum "GstVPXEncScalingMode" Default: 0, "normal"
                           (0): normal           - Normal
                           (1): 4:5              - 4:5
                           (2): 3:5              - 3:5
                           (3): 1:2              - 1:2

  keyframe-max-dist   : Maximum distance between keyframes (number of frames)
                        flags: readable, writable
                        Integer. Range: 0 - 2147483647 Default: 128

  keyframe-mode       : Keyframe placement
                        flags: readable, writable
                        Enum "GstVPXEncKfMode" Default: 1, "auto"
                           (1): auto             - Determine optimal placement automatically
                           (0): disabled         - Don't automatically place keyframes

  lag-in-frames       : Maximum number of frames to lag
                        flags: readable, writable
                        Integer. Range: 0 - 25 Default: 25

  max-intra-bitrate   : Maximum Intra frame bitrate
                        flags: readable, writable
                        Integer. Range: 0 - 2147483647 Default: 0

  max-quantizer       : Maximum Quantizer (worst)
                        flags: readable, writable
                        Integer. Range: 0 - 63 Default: 63

  min-force-key-unit-interval: Minimum interval between force-keyunit requests in nanoseconds
                        flags: readable, writable
                        Unsigned Integer64. Range: 0 - 18446744073709551615 Default: 0

  min-quantizer       : Minimum Quantizer (best)
                        flags: readable, writable
                        Integer. Range: 0 - 63 Default: 0

  multipass-cache-file: Multipass cache file. If stream caps reinited, multiple files will be created: file, file.1, file.2, ... and so on.
                        flags: readable, writable
                        String. Default: "multipass.cache"

  multipass-mode      : Multipass encode mode
                        flags: readable, writable
                        Enum "GstVPXEncMultipassMode" Default: 0, "one-pass"
                           (0): one-pass         - One pass encoding (default)
                           (1): first-pass       - First pass of multipass encoding
                           (2): last-pass        - Last pass of multipass encoding

  name                : The name of the object
                        flags: readable, writable
                        String. Default: "vp9enc0"

  noise-sensitivity   : Noise sensisivity (frames to blur)
                        flags: readable, writable
                        Integer. Range: 0 - 6 Default: 0

  overshoot           : Datarate overshoot (max) target (%)
                        flags: readable, writable
                        Integer. Range: 0 - 1000 Default: 25

  parent              : The parent of the object
                        flags: readable, writable
                        Object of type "GstObject"

  qos                 : Handle Quality-of-Service events from downstream
                        flags: readable, writable
                        Boolean. Default: false

  resize-allowed      : Allow spatial resampling
                        flags: readable, writable
                        Boolean. Default: false

  resize-down-threshold: Downscale threshold (buf %)
                        flags: readable, writable
                        Integer. Range: 0 - 100 Default: 30

  resize-up-threshold : Upscale threshold (buf %)
                        flags: readable, writable
                        Integer. Range: 0 - 100 Default: 60

  row-mt              : Whether each row should be encoded using multiple threads
                        flags: readable, writable
                        Boolean. Default: false

  sharpness           : Filter sharpness
                        flags: readable, writable
                        Integer. Range: 0 - 7 Default: 0

  static-threshold    : Motion detection threshold. Recommendation is to set 100 for screen/window sharing
                        flags: readable, writable
                        Integer. Range: 0 - 2147483647 Default: 1

  target-bitrate      : Target bitrate (in bits/sec) (0: auto - bitrate depends on resolution, see "bits-per-pixel" property for more info)
                        flags: readable, writable
                        Integer. Range: 0 - 2147483647 Default: 256000

  temporal-scalability-layer-flags: Sequence defining coding layer flags
                        flags: readable, writable
                        Default: "<  >"
                        GstValueArray of GValues of type "GstVPXEncTsLayerFlags"

  temporal-scalability-layer-id: Sequence defining coding layer membership
                        flags: readable, writable
                        Array of GValues of type "gint"

  temporal-scalability-layer-sync-flags: Sequence defining coding layer sync flags
                        flags: readable, writable
                        Default: "<  >"
                        GstValueArray of GValues of type "gboolean"

  temporal-scalability-number-layers: Number of coding layers to use
                        flags: readable, writable
                        Integer. Range: 1 - 5 Default: 1

  temporal-scalability-periodicity: Length of sequence that defines layer membership periodicity
                        flags: readable, writable
                        Integer. Range: 0 - 16 Default: 0

  temporal-scalability-rate-decimator: Rate decimation factors for each layer
                        flags: readable, writable
                        Array of GValues of type "gint"

  temporal-scalability-target-bitrate: Target bitrates (bits/sec) for coding layers (one per layer)
                        flags: readable, writable
                        Array of GValues of type "gint"

  threads             : Number of threads to use
                        flags: readable, writable
                        Integer. Range: 0 - 64 Default: 8

  tile-columns        : Number of tile columns, log2
                        flags: readable, writable
                        Integer. Range: 0 - 6 Default: 6

  tile-rows           : Number of tile rows, log2
                        flags: readable, writable
                        Integer. Range: 0 - 2 Default: 0

  timebase            : Fraction of one second that is the shortest interframe time - normally left as zero which will default to the framerate
                        flags: readable, writable
                        Fraction. Range: 0/1 - 2147483647/1 Default: 0/1

  token-partitions    : Number of token partitions
                        flags: readable, writable
                        Enum "GstVPXEncTokenPartitions" Default: 0, "1"
                           (0): 1                - One token partition
                           (1): 2                - Two token partitions
                           (2): 4                - Four token partitions
                           (3): 8                - Eight token partitions

  tuning              : Tuning
                        flags: readable, writable
                        Enum "GstVPXEncTuning" Default: 0, "psnr"
                           (0): psnr             - Tune for PSNR
                           (1): ssim             - Tune for SSIM

  twopass-vbr-bias    : CBR/VBR bias (0=CBR, 100=VBR)
                        flags: readable, writable
                        Integer. Range: 0 - 100 Default: 50

  twopass-vbr-maxsection: GOP maximum bitrate (% target)
                        flags: readable, writable
                        Integer. Range: 0 - 2147483647 Default: 2000

  twopass-vbr-minsection: GOP minimum bitrate (% target)
                        flags: readable, writable
                        Integer. Range: 0 - 2147483647 Default: 0

  undershoot          : Datarate undershoot (min) target (%)
                        flags: readable, writable
                        Integer. Range: 0 - 1000 Default: 25

  vertical-scaling-mode: Vertical scaling mode
                        flags: readable, writable
                        Enum "GstVPXEncScalingMode" Default: 0, "normal"
                           (0): normal           - Normal
                           (1): 4:5              - 4:5
                           (2): 3:5              - 3:5
                           (3): 1:2              - 1:2
ehfd commented 1 month ago
Factory Details:
  Rank                     marginal (64)
  Long-name                Video colorspace converter
  Klass                    Filter/Converter/Video/Colorspace
  Description              Converts video from one colorspace to another
  Author                   Wim Taymans <wim.taymans@gmail.com>
  Documentation            https://gstreamer.freedesktop.org/documentation/videoconvertscale/videoconvert.html

Plugin Details:
  Name                     videoconvertscale
  Description              Convert video colorspaces and resizes video frames
  Filename                 /opt/gstreamer/lib/x86_64-linux-gnu/gstreamer-1.0/libgstvideoconvertscale.so
  Version                  1.24.3
  License                  LGPL
  Source module            gst-plugins-base
  Documentation            https://gstreamer.freedesktop.org/documentation/videoconvertscale/
  Source release date      2024-04-30
  Binary package           GStreamer Base Plug-ins source release
  Origin URL               Unknown package origin

GObject
 +----GInitiallyUnowned
       +----GstObject
             +----GstElement
                   +----GstBaseTransform
                         +----GstVideoFilter
                               +----GstVideoConvertScale
                                     +----GstVideoConvert

Pad Templates:
  SINK template: 'sink'
    Availability: Always
    Capabilities:
      video/x-raw
                 format: { (string)A444_16LE, (string)A444_16BE, (string)AYUV64, (string)RGBA64_LE, (string)ARGB64, (string)ARGB64_LE, (string)BGRA64_LE, (string)ABGR64_LE, (string)RGBA64_BE, (string)ARGB64_BE, (string)BGRA64_BE, (string)ABGR64_BE, (string)A422_16LE, (string)A422_16BE, (string)A420_16LE, (string)A420_16BE, (string)A444_12LE, (string)GBRA_12LE, (string)A444_12BE, (string)GBRA_12BE, (string)Y412_LE, (string)Y412_BE, (string)A422_12LE, (string)A422_12BE, (string)A420_12LE, (string)A420_12BE, (string)A444_10LE, (string)GBRA_10LE, (string)A444_10BE, (string)GBRA_10BE, (string)A422_10LE, (string)A422_10BE, (string)A420_10LE, (string)A420_10BE, (string)BGR10A2_LE, (string)RGB10A2_LE, (string)Y410, (string)A444, (string)GBRA, (string)AYUV, (string)VUYA, (string)RGBA, (string)RBGA, (string)ARGB, (string)BGRA, (string)ABGR, (string)A422, (string)A420, (string)AV12, (string)Y444_16LE, (string)GBR_16LE, (string)Y444_16BE, (string)GBR_16BE, (string)v216, (string)P016_LE, (string)P016_BE, (string)Y444_12LE, (string)GBR_12LE, (string)Y444_12BE, (string)GBR_12BE, (string)I422_12LE, (string)I422_12BE, (string)Y212_LE, (string)Y212_BE, (string)I420_12LE, (string)I420_12BE, (string)P012_LE, (string)P012_BE, (string)Y444_10LE, (string)GBR_10LE, (string)Y444_10BE, (string)GBR_10BE, (string)r210, (string)I422_10LE, (string)I422_10BE, (string)NV16_10LE32, (string)Y210, (string)UYVP, (string)v210, (string)I420_10LE, (string)I420_10BE, (string)P010_10LE, (string)NV12_10LE40, (string)NV12_10LE32, (string)P010_10BE, (string)MT2110R, (string)MT2110T, (string)NV12_10BE_8L128, (string)NV12_10LE40_4L4, (string)Y444, (string)BGRP, (string)GBR, (string)RGBP, (string)NV24, (string)v308, (string)IYU2, (string)RGBx, (string)xRGB, (string)BGRx, (string)xBGR, (string)RGB, (string)BGR, (string)Y42B, (string)NV16, (string)NV61, (string)YUY2, (string)YVYU, (string)UYVY, (string)VYUY, (string)I420, (string)YV12, (string)NV12, (string)NV21, (string)NV12_16L32S, (string)NV12_32L32, (string)NV12_4L4, (string)NV12_64Z32, (string)NV12_8L128, (string)Y41B, (string)IYU1, (string)YUV9, (string)YVU9, (string)BGR16, (string)RGB16, (string)BGR15, (string)RGB15, (string)RGB8P, (string)GRAY16_LE, (string)GRAY16_BE, (string)GRAY10_LE32, (string)GRAY8 }
                  width: [ 1, 32767 ]
                 height: [ 1, 32767 ]
              framerate: [ 0/1, 2147483647/1 ]
      video/x-raw(ANY)
                 format: { (string)DMA_DRM, (string)A444_16LE, (string)A444_16BE, (string)AYUV64, (string)RGBA64_LE, (string)ARGB64, (string)ARGB64_LE, (string)BGRA64_LE, (string)ABGR64_LE, (string)RGBA64_BE, (string)ARGB64_BE, (string)BGRA64_BE, (string)ABGR64_BE, (string)A422_16LE, (string)A422_16BE, (string)A420_16LE, (string)A420_16BE, (string)A444_12LE, (string)GBRA_12LE, (string)A444_12BE, (string)GBRA_12BE, (string)Y412_LE, (string)Y412_BE, (string)A422_12LE, (string)A422_12BE, (string)A420_12LE, (string)A420_12BE, (string)A444_10LE, (string)GBRA_10LE, (string)A444_10BE, (string)GBRA_10BE, (string)A422_10LE, (string)A422_10BE, (string)A420_10LE, (string)A420_10BE, (string)BGR10A2_LE, (string)RGB10A2_LE, (string)Y410, (string)A444, (string)GBRA, (string)AYUV, (string)VUYA, (string)RGBA, (string)RBGA, (string)ARGB, (string)BGRA, (string)ABGR, (string)A422, (string)A420, (string)AV12, (string)Y444_16LE, (string)GBR_16LE, (string)Y444_16BE, (string)GBR_16BE, (string)v216, (string)P016_LE, (string)P016_BE, (string)Y444_12LE, (string)GBR_12LE, (string)Y444_12BE, (string)GBR_12BE, (string)I422_12LE, (string)I422_12BE, (string)Y212_LE, (string)Y212_BE, (string)I420_12LE, (string)I420_12BE, (string)P012_LE, (string)P012_BE, (string)Y444_10LE, (string)GBR_10LE, (string)Y444_10BE, (string)GBR_10BE, (string)r210, (string)I422_10LE, (string)I422_10BE, (string)NV16_10LE32, (string)Y210, (string)UYVP, (string)v210, (string)I
420_10LE, (string)I420_10BE, (string)P010_10LE, (string)NV12_10LE40, (string)NV12_10LE32, (string)P010_10BE, (string)MT2110R, (string)MT2110T, (string)NV12_10BE_8L128, (string)NV12_10LE40_4L4, (string)Y444, (string)BGRP, (string)GBR, (string)RGBP, (string)NV24, (string)v308, (string)IYU2, (string)RGBx, (string)xRGB, (string)BGRx, (string)xBGR, (string)RGB, (string)BGR, (string)Y42B, (string)NV16, (string)NV61, (string)YUY2, (string)YVYU, (string)UYVY, (string)VYUY, (string)I420, (string)YV12, (string)NV12, (string)NV21, (string)NV12_16L32S, (string)NV12_32L32, (string)NV12_4L4, (string)NV12_64Z32, (string)NV12_8L128, (string)Y41B, (string)IYU1, (string)YUV9, (string)YVU9, (string)BGR16, (string)RGB16, (string)BGR15, (string)RGB15, (string)RGB8P, (string)GRAY16_LE, (string)GRAY16_BE, (string)GRAY10_LE32, (string)GRAY8 }
                  width: [ 1, 32767 ]
                 height: [ 1, 32767 ]
              framerate: [ 0/1, 2147483647/1 ]

  SRC template: 'src'
    Availability: Always
    Capabilities:
      video/x-raw
                 format: { (string)A444_16LE, (string)A444_16BE, (string)AYUV64, (string)RGBA64_LE, (string)ARGB64, (string)ARGB64_LE, (string)BGRA64_LE, (string)ABGR64_LE, (string)RGBA64_BE, (string)ARGB64_BE, (string)BGRA64_BE, (string)ABGR64_BE, (string)A422_16LE, (string)A422_16BE, (string)A420_16LE, (string)A420_16BE, (string)A444_12LE, (string)GBRA_12LE, (string)A444_12BE, (string)GBRA_12BE, (string)Y412_LE, (string)Y412_BE, (string)A422_12LE, (string)A422_12BE, (string)A420_12LE, (string)A420_12BE, (string)A444_10LE, (string)GBRA_10LE, (string)A444_10BE, (string)GBRA_10BE, (string)A422_10LE, (string)A422_10BE, (string)A420_10LE, (string)A420_10BE, (string)BGR10A2_LE, (string)RGB10A2_LE, (string)Y410, (string)A444, (string)GBRA, (string)AYUV, (string)VUYA, (string)RGBA, (string)RBGA, (string)ARGB, (string)BGRA, (string)ABGR, (string)A422, (string)A420, (string)AV12, (string)Y444_16LE, (string)GBR_16LE, (string)Y444_16BE, (string)GBR_16BE, (string)v216, (string)P016_LE, (string)P016_BE, (string)Y444_12LE, (string)GBR_12LE, (string)Y444_12BE, (string)GBR_12BE, (string)I422_12LE, (string)I422_12BE, (string)Y212_LE, (string)Y212_BE, (string)I420_12LE, (string)I420_12BE, (string)P012_LE, (string)P012_BE, (string)Y444_10LE, (string)GBR_10LE, (string)Y444_10BE, (string)GBR_10BE, (string)r210, (string)I422_10LE, (string)I422_10BE, (string)NV16_10LE32, (string)Y210, (string)UYVP, (string)v210, (string)I420_10LE, (string)I420_10BE, (string)P010_10LE, (string)NV12_10LE40, (string)NV12_10LE32, (string)P010_10BE, (string)MT2110R, (string)MT2110T, (string)NV12_10BE_8L128, (string)NV12_10LE40_4L4, (string)Y444, (string)BGRP, (string)GBR, (string)RGBP, (string)NV24, (string)v308, (string)IYU2, (string)RGBx, (string)xRGB, (string)BGRx, (string)xBGR, (string)RGB, (string)BGR, (string)Y42B, (string)NV16, (string)NV61, (string)YUY2, (string)YVYU, (string)UYVY, (string)VYUY, (string)I420, (string)YV12, (string)NV12, (string)NV21, (string)NV12_16L32S, (string)NV12_32L32, (string)NV12_4L4, (string)NV12_64Z32, (string)NV12_8L128, (string)Y41B, (string)IYU1, (string)YUV9, (string)YVU9, (string)BGR16, (string)RGB16, (string)BGR15, (string)RGB15, (string)RGB8P, (string)GRAY16_LE, (string)GRAY16_BE, (string)GRAY10_LE32, (string)GRAY8 }
                  width: [ 1, 32767 ]
                 height: [ 1, 32767 ]
              framerate: [ 0/1, 2147483647/1 ]
      video/x-raw(ANY)
                 format: { (string)DMA_DRM, (string)A444_16LE, (string)A444_16BE, (string)AYUV64, (string)RGBA64_LE, (string)ARGB64, (string)ARGB64_LE, (string)BGRA64_LE, (string)ABGR64_LE, (string)RGBA64_BE, (string)ARGB64_BE, (string)BGRA64_BE, (string)ABGR64_BE, (string)A422_16LE, (string)A422_16BE, (string)A420_16LE, (string)A420_16BE, (string)A444_12LE, (string)GBRA_12LE, (string)A444_12BE, (string)GBRA_12BE, (string)Y412_LE, (string)Y412_BE, (string)A422_12LE, (string)A422_12BE, (string)A420_12LE, (string)A420_12BE, (string)A444_10LE, (string)GBRA_10LE, (string)A444_10BE, (string)GBRA_10BE, (string)A422_10LE, (string)A422_10BE, (string)A420_10LE, (string)A420_10BE, (string)BGR10A2_LE, (string)RGB10A2_LE, (string)Y410, (string)A444, (string)GBRA, (string)AYUV, (string)VUYA, (string)RGBA, (string)RBGA, (string)ARGB, (string)BGRA, (string)ABGR, (string)A422, (string)A420, (string)AV12, (string)Y444_16LE, (string)GBR_16LE, (string)Y444_16BE, (string)GBR_16BE, (string)v216, (string)P016_LE, (string)P016_BE, (string)Y444_12LE, (string)GBR_12LE, (string)Y444_12BE, (string)GBR_12BE, (string)I422_12LE, (string)I422_12BE, (string)Y212_LE, (string)Y212_BE, (string)I420_12LE, (string)I420_12BE, (string)P012_LE, (string)P012_BE, (string)Y444_10LE, (string)GBR_10LE, (string)Y444_10BE, (string)GBR_10BE, (string)r210, (string)I422_10LE, (string)I422_10BE, (string)NV16_10LE32, (string)Y210, (string)UYVP, (string)v210, (string)I420_10LE, (string)I420_10BE, (string)P010_10LE, (string)NV12_10LE40, (string)NV12_10LE32, (string)P010_10BE, (string)MT2110R, (string)MT2110T, (string)NV12_10BE_8L128, (string)NV12_10LE40_4L4, (string)Y444, (string)BGRP, (string)GBR, (string)RGBP, (string)NV24, (string)v308, (string)IYU2, (string)RGBx, (string)xRGB, (string)BGRx, (string)xBGR, (string)RGB, (string)BGR, (string)Y42B, (string)NV16, (string)NV61, (string)YUY2, (string)YVYU, (string)UYVY, (string)VYUY, (string)I420, (string)YV12, (string)NV12, (string)NV21, (string)NV12_16L32S, (string)NV12_32L32, (string)NV12_4L4, (string)NV12_64Z32, (string)NV12_8L128, (string)Y41B, (string)IYU1, (string)YUV9, (string)YVU9, (string)BGR16, (string)RGB16, (string)BGR15, (string)RGB15, (string)RGB8P, (string)GRAY16_LE, (string)GRAY16_BE, (string)GRAY10_LE32, (string)GRAY8 }
                  width: [ 1, 32767 ]
                 height: [ 1, 32767 ]
              framerate: [ 0/1, 2147483647/1 ]

Element has no clocking capabilities.
Element has no URI handling capabilities.

Pads:
  SINK: 'sink'
    Pad Template: 'sink'
  SRC: 'src'
    Pad Template: 'src'

Element Properties:

  add-borders         : Add black borders if necessary to keep the display aspect ratio
                        flags: readable, writable
                        Boolean. Default: true

  alpha-mode          : Alpha Mode to use
                        flags: readable, writable
                        Enum "GstVideoAlphaMode" Default: 0, "copy"
                           (0): copy             - GST_VIDEO_ALPHA_MODE_COPY
                           (1): set              - GST_VIDEO_ALPHA_MODE_SET
                           (2): mult             - GST_VIDEO_ALPHA_MODE_MULT

  alpha-value         : Alpha Value to use
                        flags: readable, writable
                        Double. Range:               0 -               1 Default:               1

  chroma-mode         : Chroma Resampling Mode
                        flags: readable, writable
                        Enum "GstVideoChromaMode" Default: 0, "full"
                           (0): full             - GST_VIDEO_CHROMA_MODE_FULL
                           (1): upsample-only    - GST_VIDEO_CHROMA_MODE_UPSAMPLE_ONLY
                           (2): downsample-only  - GST_VIDEO_CHROMA_MODE_DOWNSAMPLE_ONLY
                           (3): none             - GST_VIDEO_CHROMA_MODE_NONE

  chroma-resampler    : Chroma resampler method
                        flags: readable, writable
                        Enum "GstVideoResamplerMethod" Default: 1, "linear"
                           (0): nearest          - GST_VIDEO_RESAMPLER_METHOD_NEAREST
                           (1): linear           - GST_VIDEO_RESAMPLER_METHOD_LINEAR
                           (2): cubic            - GST_VIDEO_RESAMPLER_METHOD_CUBIC
                           (3): sinc             - GST_VIDEO_RESAMPLER_METHOD_SINC
                           (4): lanczos          - GST_VIDEO_RESAMPLER_METHOD_LANCZOS

  converter-config    : A GstStructure describing the configuration that should be used. This configuration, if set, takes precedence over the other similar conversion properties.
                        flags: readable, writable
                        Boxed pointer of type "GstStructure"

  dither              : Apply dithering while converting
                        flags: readable, writable
                        Enum "GstVideoDitherMethod" Default: 4, "bayer"
                           (0): none             - GST_VIDEO_DITHER_NONE
                           (1): verterr          - GST_VIDEO_DITHER_VERTERR
                           (2): floyd-steinberg  - GST_VIDEO_DITHER_FLOYD_STEINBERG
                           (3): sierra-lite      - GST_VIDEO_DITHER_SIERRA_LITE
                           (4): bayer            - GST_VIDEO_DITHER_BAYER

  dither-quantization : Quantizer to use
                        flags: readable, writable
                        Unsigned Integer. Range: 0 - 4294967295 Default: 1

  envelope            : Size of filter envelope
                        flags: readable, writable
                        Double. Range:               1 -               5 Default:               2

  gamma-mode          : Gamma Conversion Mode
                        flags: readable, writable
                        Enum "GstVideoGammaMode" Default: 0, "none"
                           (0): none             - GST_VIDEO_GAMMA_MODE_NONE
                           (1): remap            - GST_VIDEO_GAMMA_MODE_REMAP

  matrix-mode         : Matrix Conversion Mode
                        flags: readable, writable
                        Enum "GstVideoMatrixMode" Default: 0, "full"
                           (0): full             - GST_VIDEO_MATRIX_MODE_FULL
                           (1): input-only       - GST_VIDEO_MATRIX_MODE_INPUT_ONLY
                           (2): output-only      - GST_VIDEO_MATRIX_MODE_OUTPUT_ONLY
                           (3): none             - GST_VIDEO_MATRIX_MODE_NONE

  method              : method
                        flags: readable, writable
                        Enum "GstVideoScaleMethod" Default: 1, "bilinear"
                           (0): nearest-neighbour - Nearest Neighbour
                           (1): bilinear         - Bilinear (2-tap)
                           (2): 4-tap            - 4-tap Sinc
                           (3): lanczos          - Lanczos
                           (4): bilinear2        - Bilinear (multi-tap)
                           (5): sinc             - Sinc (multi-tap)
                           (6): hermite          - Hermite (multi-tap)
                           (7): spline           - Spline (multi-tap)
                           (8): catrom           - Catmull-Rom (multi-tap)
                           (9): mitchell         - Mitchell (multi-tap)

  n-threads           : Maximum number of threads to use
                        flags: readable, writable
                        Unsigned Integer. Range: 0 - 4294967295 Default: 1

  name                : The name of the object
                        flags: readable, writable
                        String. Default: "videoconvert0"

  parent              : The parent of the object
                        flags: readable, writable
                        Object of type "GstObject"

  primaries-mode      : Primaries Conversion Mode
                        flags: readable, writable
                        Enum "GstVideoPrimariesMode" Default: 0, "none"
                           (0): none             - GST_VIDEO_PRIMARIES_MODE_NONE
                           (1): merge-only       - GST_VIDEO_PRIMARIES_MODE_MERGE_ONLY
                           (2): fast             - GST_VIDEO_PRIMARIES_MODE_FAST

  qos                 : Handle Quality-of-Service events
                        flags: readable, writable
                        Boolean. Default: true

  sharpen             : Sharpening
                        flags: readable, writable
                        Double. Range:               0 -               1 Default:               0

  sharpness           : Sharpness of filter
                        flags: readable, writable
                        Double. Range:             0.5 -             1.5 Default:               1
Factory Details:
  Rank                     none (0)
  Long-name                Ximage video source
  Klass                    Source/Video
  Description              Creates a screenshot video stream
  Author                   Lutz Mueller <lutz@users.sourceforge.net>, Jan Schmidt <thaytan@mad.scientist.com>, Zaheer Merali <zaheerabbas at merali dot org>
  Documentation            https://gstreamer.freedesktop.org/documentation/ximagesrc/#ximagesrc-page

Plugin Details:
  Name                     ximagesrc
  Description              X11 video input plugin using standard Xlib calls
  Filename                 /opt/gstreamer/lib/x86_64-linux-gnu/gstreamer-1.0/libgstximagesrc.so
  Version                  1.24.1
  License                  LGPL
  Source module            gst-plugins-good
  Documentation            https://gstreamer.freedesktop.org/documentation/ximagesrc/
  Source release date      2024-03-21
  Binary package           GStreamer Good Plug-ins source release
  Origin URL               Unknown package origin

GObject
 +----GInitiallyUnowned
       +----GstObject
             +----GstElement
                   +----GstBaseSrc
                         +----GstPushSrc
                               +----GstXImageSrc

Pad Templates:
  SRC template: 'src'
    Availability: Always
    Capabilities:
      video/x-raw
              framerate: [ 0/1, 2147483647/1 ]
                  width: [ 1, 2147483647 ]
                 height: [ 1, 2147483647 ]
        pixel-aspect-ratio: [ 0/1, 2147483647/1 ]

Element has no clocking capabilities.
Element has no URI handling capabilities.

Pads:
  SRC: 'src'
    Pad Template: 'src'

Element Properties:

  automatic-eos       : Automatically EOS when the segment is done
                        flags: readable, writable
                        Boolean. Default: true

  blocksize           : Size in bytes to read per buffer (-1 = default)
                        flags: readable, writable
                        Unsigned Integer. Range: 0 - 4294967295 Default: 4096

  display-name        : X Display Name
                        flags: readable, writable
                        String. Default: null

  do-timestamp        : Apply current stream time to buffers
                        flags: readable, writable
                        Boolean. Default: false

  enable-navigation-events: When enabled, navigation events are handled
                        flags: readable, writable
                        Boolean. Default: false

  endx                : X coordinate of bottom right corner of area to be recorded (0 for bottom right of screen)
                        flags: readable, writable
                        Unsigned Integer. Range: 0 - 2147483647 Default: 0

  endy                : Y coordinate of bottom right corner of area to be recorded (0 for bottom right of screen)
                        flags: readable, writable
                        Unsigned Integer. Range: 0 - 2147483647 Default: 0

  name                : The name of the object
                        flags: readable, writable
                        String. Default: "ximagesrc0"

  num-buffers         : Number of buffers to output before sending EOS (-1 = unlimited)
                        flags: readable, writable
                        Integer. Range: -1 - 2147483647 Default: -1

  parent              : The parent of the object
                        flags: readable, writable
                        Object of type "GstObject"

  remote              : Whether the display is remote
                        flags: readable, writable
                        Boolean. Default: false

  show-pointer        : Show mouse pointer (if XFixes extension enabled)
                        flags: readable, writable
                        Boolean. Default: true

  startx              : X coordinate of top left corner of area to be recorded (0 for top left of screen)
                        flags: readable, writable
                        Unsigned Integer. Range: 0 - 2147483647 Default: 0

  starty              : Y coordinate of top left corner of area to be recorded (0 for top left of screen)
                        flags: readable, writable
                        Unsigned Integer. Range: 0 - 2147483647 Default: 0

  typefind            : Run typefind before negotiating (deprecated, non-functional)
                        flags: readable, writable, deprecated
                        Boolean. Default: false

  use-damage          : Use XDamage (if XDamage extension enabled)
                        flags: readable, writable
                        Boolean. Default: true

  xid                 : Window XID to capture from
                        flags: readable, writable
                        Unsigned Integer64. Range: 0 - 18446744073709551615 Default: 0

  xname               : Window name to capture from
                        flags: readable, writable
                        String. Default: null
Factory Details:
  Rank                     primary + 10 (266)
  Long-name                PulseAudio Audio Source
  Klass                    Source/Audio
  Description              Captures audio from a PulseAudio server
  Author                   Lennart Poettering
  Documentation            https://gstreamer.freedesktop.org/documentation/pulseaudio/pulsesrc.html

Plugin Details:
  Name                     pulseaudio
  Description              PulseAudio plugin library
  Filename                 /opt/gstreamer/lib/x86_64-linux-gnu/gstreamer-1.0/libgstpulseaudio.so
  Version                  1.25.0.1
  License                  LGPL
  Source module            gst-plugins-good
  Documentation            https://gstreamer.freedesktop.org/documentation/pulseaudio/
  Binary package           GStreamer Good Plug-ins git
  Origin URL               Unknown package origin

GObject
 +----GInitiallyUnowned
       +----GstObject
             +----GstElement
                   +----GstBaseSrc
                         +----GstPushSrc
                               +----GstAudioBaseSrc
                                     +----GstAudioSrc
                                           +----GstPulseSrc

Implemented Interfaces:
  GstStreamVolume

Pad Templates:
  SRC template: 'src'
    Availability: Always
    Capabilities:
      audio/x-raw
                 format: { (string)S16LE, (string)S16BE, (string)F32LE, (string)F32BE, (string)S32LE, (string)S32BE, (string)S24LE, (string)S24BE, (string)S24_32LE, (string)S24_32BE, (string)U8 }
                 layout: interleaved
                   rate: [ 1, 384000 ]
               channels: [ 1, 32 ]
      audio/x-alaw
                   rate: [ 1, 384000 ]
               channels: [ 1, 32 ]
      audio/x-mulaw
                   rate: [ 1, 384000 ]
               channels: [ 1, 32 ]

Clocking Interaction:
  element provides a clock
Element has no URI handling capabilities.

Pads:
  SRC: 'src'
    Pad Template: 'src'

Element Properties:

  actual-buffer-time  : Actual configured size of audio buffer in microseconds
                        flags: readable
                        Integer64. Range: -1 - 9223372036854775807 Default: -1

  actual-latency-time : Actual configured audio latency in microseconds
                        flags: readable
                        Integer64. Range: -1 - 9223372036854775807 Default: -1

  automatic-eos       : Automatically EOS when the segment is done
                        flags: readable, writable
                        Boolean. Default: true

  blocksize           : Size in bytes to read per buffer (-1 = default)
                        flags: readable, writable
                        Unsigned Integer. Range: 0 - 4294967295 Default: 0

  buffer-time         : Size of audio buffer in microseconds. This is the maximum amount of data that is buffered in the device and the maximum latency that the source reports. This value might be ignored by the element if necessary; see "actual-buffer-time"
                        flags: readable, writable
                        Integer64. Range: 1 - 9223372036854775807 Default: 200000

  client-name         : The PulseAudio client_name_to_use
                        flags: readable, writable, changeable only in NULL or READY state
                        String. Default: "gst-inspect-1.0"

  current-device      : The current PulseAudio source device
                        flags: readable
                        String. Default: ""

  device              : The PulseAudio source device to connect to
                        flags: readable, writable
                        String. Default: null

  device-name         : Human-readable name of the sound device
                        flags: readable
                        String. Default: null

  do-timestamp        : Apply current stream time to buffers
                        flags: readable, writable
                        Boolean. Default: false

  latency-time        : The minimum amount of data to read in each iteration in microseconds. This is the minimum latency that the source reports. This value might be ignored by the element if necessary; see "actual-latency-time"
                        flags: readable, writable
                        Integer64. Range: 1 - 9223372036854775807 Default: 10000

  mute                : Mute state of this stream
                        flags: readable, writable
                        Boolean. Default: false

  name                : The name of the object
                        flags: readable, writable
                        String. Default: "pulsesrc0"

  num-buffers         : Number of buffers to output before sending EOS (-1 = unlimited)
                        flags: readable, writable
                        Integer. Range: -1 - 2147483647 Default: -1

  parent              : The parent of the object
                        flags: readable, writable
                        Object of type "GstObject"

  provide-clock       : Provide a clock to be used as the global pipeline clock
                        flags: readable, writable
                        Boolean. Default: true

  server              : The PulseAudio server to connect to
                        flags: readable, writable
                        String. Default: null

  slave-method        : Algorithm used to match the rate of the masterclock
                        flags: readable, writable
                        Enum "GstAudioBaseSrcSlaveMethod" Default: 2, "skew"
                           (0): resample         - GST_AUDIO_BASE_SRC_SLAVE_RESAMPLE
                           (1): re-timestamp     - GST_AUDIO_BASE_SRC_SLAVE_RE_TIMESTAMP
                           (2): skew             - GST_AUDIO_BASE_SRC_SLAVE_SKEW
                           (3): none             - GST_AUDIO_BASE_SRC_SLAVE_NONE

  source-output-index : The index of the PulseAudio source output corresponding to this record stream
                        flags: readable
                        Unsigned Integer. Range: 0 - 4294967295 Default: 4294967295

  stream-properties   : list of pulseaudio stream properties
                        flags: readable, writable
                        Boxed pointer of type "GstStructure"

  typefind            : Run typefind before negotiating (deprecated, non-functional)
                        flags: readable, writable, deprecated
                        Boolean. Default: false

  volume              : Linear volume of this stream, 1.0=100%
                        flags: readable, writable
                        Double. Range:               0 -              10 Default:               1
Factory Details:
  Rank                     primary (256)
  Long-name                Opus audio encoder
  Klass                    Codec/Encoder/Audio
  Description              Encodes audio in Opus format
  Author                   Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
  Documentation            https://gstreamer.freedesktop.org/documentation/opus/opusenc.html

Plugin Details:
  Name                     opus
  Description              OPUS plugin library
  Filename                 /opt/gstreamer/lib/x86_64-linux-gnu/gstreamer-1.0/libgstopus.so
  Version                  1.25.0.1
  License                  LGPL
  Source module            gst-plugins-base
  Documentation            https://gstreamer.freedesktop.org/documentation/opus/
  Binary package           GStreamer Base Plug-ins git
  Origin URL               Unknown package origin

GObject
 +----GInitiallyUnowned
       +----GstObject
             +----GstElement
                   +----GstAudioEncoder
                         +----GstOpusEnc

Implemented Interfaces:
  GstPreset
  GstTagSetter

Pad Templates:
  SINK template: 'sink'
    Availability: Always
    Capabilities:
      audio/x-raw
                 format: S16LE
                 layout: interleaved
                   rate: 48000
               channels: [ 1, 255 ]
      audio/x-raw
                 format: S16LE
                 layout: interleaved
                   rate: { (int)8000, (int)12000, (int)16000, (int)24000 }
               channels: [ 1, 255 ]

  SRC template: 'src'
    Availability: Always
    Capabilities:
      audio/x-opus

Element has no clocking capabilities.
Element has no URI handling capabilities.

Pads:
  SINK: 'sink'
    Pad Template: 'sink'
  SRC: 'src'
    Pad Template: 'src'

Element Properties:

  audio-type          : What type of audio to optimize for
                        flags: readable, writable
                        Enum "GstOpusEncAudioType" Default: 2049, "generic"
                           (2049): generic          - Generic audio
                           (2048): voice            - Voice
                           (2051): restricted-lowdelay - Restricted low delay

  bandwidth           : Audio Band Width
                        flags: readable, writable, changeable in NULL, READY, PAUSED or PLAYING state
                        Enum "GstOpusEncBandwidth" Default: 1105, "fullband"
                           (1101): narrowband       - Narrow band
                           (1102): mediumband       - Medium band
                           (1103): wideband         - Wide band
                           (1104): superwideband    - Super wide band
                           (1105): fullband         - Full band
                           (-1000): auto             - Auto

  bitrate             : Specify an encoding bit-rate (in bps).
                        flags: readable, writable, changeable in NULL, READY, PAUSED or PLAYING state
                        Integer. Range: 4000 - 650000 Default: 64000

  bitrate-type        : Bitrate type
                        flags: readable, writable, changeable in NULL, READY, PAUSED or PLAYING state
                        Enum "GstOpusEncBitrateType" Default: 2, "constrained-vbr"
                           (0): cbr              - CBR
                           (1): vbr              - VBR
                           (2): constrained-vbr  - Constrained VBR

  complexity          : Complexity
                        flags: readable, writable, changeable in NULL, READY, PAUSED or PLAYING state
                        Integer. Range: 0 - 10 Default: 10

  dtx                 : DTX
                        flags: readable, writable, changeable in NULL, READY, PAUSED or PLAYING state
                        Boolean. Default: false

  frame-size          : The duration of an audio frame, in ms
                        flags: readable, writable, changeable in NULL, READY, PAUSED or PLAYING state
                        Enum "GstOpusEncFrameSize" Default: 20, "20"
                           (2): 2.5              - 2.5
                           (5): 5                - 5
                           (10): 10               - 10
                           (20): 20               - 20
                           (40): 40               - 40
                           (60): 60               - 60

  hard-resync         : Perform clipping and sample flushing upon discontinuity
                        flags: readable, writable
                        Boolean. Default: false

  inband-fec          : Enable in-band forward error correction (use in combination with the packet-loss-percentage property)
                        flags: readable, writable, changeable in NULL, READY, PAUSED or PLAYING state
                        Boolean. Default: false

  mark-granule        : Apply granule semantics to buffer metadata (implies perfect-timestamp)
                        flags: readable
                        Boolean. Default: false

  max-payload-size    : Maximum payload size in bytes
                        flags: readable, writable, changeable in NULL, READY, PAUSED or PLAYING state
                        Unsigned Integer. Range: 2 - 4000 Default: 4000

  name                : The name of the object
                        flags: readable, writable
                        String. Default: "opusenc0"

  packet-loss-percentage: Packet loss percentage
                        flags: readable, writable, changeable in NULL, READY, PAUSED or PLAYING state
                        Integer. Range: 0 - 100 Default: 0

  parent              : The parent of the object
                        flags: readable, writable
                        Object of type "GstObject"

  perfect-timestamp   : Favour perfect timestamps over tracking upstream timestamps
                        flags: readable, writable
                        Boolean. Default: false

  tolerance           : Consider discontinuity if timestamp jitter/imperfection exceeds tolerance (ns)
                        flags: readable, writable
                        Integer64. Range: 0 - 9223372036854775807 Default: 40000000
ehfd commented 1 month ago
Factory Details:
  Rank                     marginal (64)
  Long-name                RTP AV1 payloader
  Klass                    Codec/Payloader/Network/RTP
  Description              Payload AV1 as RTP packets
  Author                   Vivienne Watermeier <vwatermeier@igalia.com>
  Documentation            https://gstreamer.freedesktop.org/documentation/rsrtp/rtpav1pay.html

Plugin Details:
  Name                     rsrtp
  Description              GStreamer Rust RTP Plugin
  Filename                 /opt/gstreamer/lib/x86_64-linux-gnu/gstreamer-1.0/libgstrsrtp.so
  Version                  0.13.0-alpha.1-61c9cbdc
  License                  MPL-2.0
  Source module            gst-plugin-rtp
  Documentation            https://gstreamer.freedesktop.org/documentation/rsrtp/
  Source release date      2024-04-11
  Binary package           gst-plugin-rtp
  Origin URL               https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs

GObject
 +----GInitiallyUnowned
       +----GstObject
             +----GstElement
                   +----GstRtpBasePay2
                         +----GstRtpAv1Pay

Pad Templates:
  SINK template: 'sink'
    Availability: Always
    Capabilities:
      video/x-av1
                 parsed: true
          stream-format: obu-stream
              alignment: { (string)tu, (string)frame, (string)obu }

  SRC template: 'src'
    Availability: Always
    Capabilities:
      application/x-rtp
                  media: video
                payload: [ 96, 127 ]
             clock-rate: 90000
          encoding-name: AV1

Element has no clocking capabilities.
Element has no URI handling capabilities.

Pads:
  SINK: 'sink'
    Pad Template: 'sink'
  SRC: 'src'
    Pad Template: 'src'

Element Properties:

  auto-header-extensions: Whether RTP header extensions should be automatically enabled, if an implementation is available
                        flags: readable, writable, changeable only in NULL or READY state
                        Boolean. Default: true

  extensions          : List of enabled RTP header extensions
                        flags: readable
                        Default: "<  >"
                        GstValueArray of GValues of type "GstRTPHeaderExtension"

  mtu                 : Maximum size of one RTP packet
                        flags: readable, writable, changeable in NULL, READY, PAUSED or PLAYING state
                        Unsigned Integer. Range: 28 - 4294967295 Default: 1400

  name                : The name of the object
                        flags: readable, writable
                        String. Default: "rtpav1pay0"

  onvif-no-rate-control: Enable ONVIF Rate-Control=no timestamping mode
                        flags: readable, writable, changeable only in NULL or READY state
                        Boolean. Default: false

  parent              : The parent of the object
                        flags: readable, writable
                        Object of type "GstObject"

  pt                  : Payload type of the packets
                        flags: readable, writable, changeable only in NULL or READY state
                        Unsigned Integer. Range: 0 - 127 Default: 96

  scale-rtptime       : Whether the RTP timestamp should be scaled with the rate (speed)
                        flags: readable, writable, changeable only in NULL or READY state
                        Boolean. Default: true

  seqnum              : RTP sequence number of the last packet
                        flags: readable
                        Unsigned Integer. Range: 0 - 65535 Default: 0

  seqnum-offset       : Offset that is added to all RTP sequence numbers (-1 == random)
                        flags: readable, writable, changeable only in NULL or READY state
                        Integer. Range: -1 - 65535 Default: -1

  source-info         : Add RTP source information as buffer metadata
                        flags: readable, writable, changeable in NULL, READY, PAUSED or PLAYING state
                        Boolean. Default: false

  ssrc                : SSRC of the packets (-1 == random)
                        flags: readable, writable, changeable only in NULL or READY state
                        Integer64. Range: -1 - 4294967295 Default: -1

  stats               : Various statistics
                        flags: readable
                        Boxed pointer of type "GstStructure"

  timestamp           : RTP timestamp of the last packet
                        flags: readable
                        Unsigned Integer. Range: 0 - 65535 Default: 0

  timestamp-offset    : Offset that is added to all RTP timestamps (-1 == random)
                        flags: readable, writable, changeable only in NULL or READY state
                        Integer64. Range: -1 - 4294967295 Default: -1

Element Signals:

  "request-extension" :  GstRTPHeaderExtension * user_function (GstElement * object,
                                                                guint arg0,
                                                                const gchar * arg1,
                                                                gpointer user_data);

Element Actions:

  "add-extension" -> void  :  g_signal_emit_by_name (element, "add-extension",
                                                     GstRTPHeaderExtension * arg0);

  "clear-extensions" -> void  :  g_signal_emit_by_name (element, "clear-extensions");
Factory Details:
  Rank                     marginal (64)
  Long-name                RTP VP9 payloader
  Klass                    Codec/Payloader/Network/RTP
  Description              Puts VP9 video in RTP packets)
  Author                   Stian Selnes <stian@pexip.com>
  Documentation            https://gstreamer.freedesktop.org/documentation/rtp/rtpvp9pay.html

Plugin Details:
  Name                     rtp
  Description              Real-time protocol plugins
  Filename                 /opt/gstreamer/lib/x86_64-linux-gnu/gstreamer-1.0/libgstrtp.so
  Version                  1.25.0.1
  License                  LGPL
  Source module            gst-plugins-good
  Documentation            https://gstreamer.freedesktop.org/documentation/rtp/
  Binary package           GStreamer Good Plug-ins git
  Origin URL               Unknown package origin

GObject
 +----GInitiallyUnowned
       +----GstObject
             +----GstElement
                   +----GstRTPBasePayload
                         +----GstRtpVP9Pay

Pad Templates:
  SINK template: 'sink'
    Availability: Always
    Capabilities:
      video/x-vp9

  SRC template: 'src'
    Availability: Always
    Capabilities:
      application/x-rtp
                payload: [ 96, 127 ]
             clock-rate: 90000
          encoding-name: { (string)VP9, (string)VP9-DRAFT-IETF-01 }

Element has no clocking capabilities.
Element has no URI handling capabilities.

Pads:
  SRC: 'src'
    Pad Template: 'src'
  SINK: 'sink'
    Pad Template: 'sink'

Element Properties:

  auto-header-extension: Whether RTP header extensions should be automatically enabled, if an implementation is available
                        flags: readable, writable
                        Boolean. Default: true

  extensions          : A list of already enabled RTP header extensions
                        flags: readable
                        Default: "<  >"
                        GstValueArray of GValues of type "GstRTPHeaderExtension"

  max-ptime           : Maximum duration of the packet data in ns (-1 = unlimited up to MTU)
                        flags: readable, writable
                        Integer64. Range: -1 - 9223372036854775807 Default: -1

  min-ptime           : Minimum duration of the packet data in ns (can't go above MTU)
                        flags: readable, writable
                        Integer64. Range: 0 - 9223372036854775807 Default: 0

  mtu                 : Maximum size of one packet
                        flags: readable, writable
                        Unsigned Integer. Range: 28 - 4294967295 Default: 1400

  name                : The name of the object
                        flags: readable, writable
                        String. Default: "rtpvp9pay0"

  onvif-no-rate-control: Enable ONVIF Rate-Control=no timestamping mode
                        flags: readable, writable
                        Boolean. Default: false

  parent              : The parent of the object
                        flags: readable, writable
                        Object of type "GstObject"

  perfect-rtptime     : Generate perfect RTP timestamps when possible
                        flags: readable, writable
                        Boolean. Default: true

  picture-id          : Currently used picture-id for payloading
                        flags: readable
                        Integer. Range: 0 - 32767 Default: 0

  picture-id-mode     : The picture ID mode for payloading
                        flags: readable, writable
                        Enum "GstVP9RTPPayMode" Default: 0, "none"
                           (0): none             - No Picture ID
                           (1): 7-bit            - 7-bit Picture ID
                           (2): 15-bit           - 15-bit Picture ID

  picture-id-offset   : Offset to add to the initial picture-id (-1 = random)
                        flags: readable, writable
                        Integer. Range: -1 - 32767 Default: -1

  pt                  : The payload type of the packets
                        flags: readable, writable
                        Unsigned Integer. Range: 0 - 127 Default: 96

  ptime-multiple      : Force buffers to be multiples of this duration in ns (0 disables)
                        flags: readable, writable
                        Integer64. Range: 0 - 9223372036854775807 Default: 0

  scale-rtptime       : Whether the RTP timestamp should be scaled with the rate (speed)
                        flags: readable, writable
                        Boolean. Default: true

  seqnum              : The RTP sequence number of the last processed packet
                        flags: readable
                        Unsigned Integer. Range: 0 - 65535 Default: 0

  seqnum-offset       : Offset to add to all outgoing seqnum (-1 = random)
                        flags: readable, writable
                        Integer. Range: -1 - 65535 Default: -1

  source-info         : Write CSRC based on buffer meta RTP source information
                        flags: readable, writable
                        Boolean. Default: false

  ssrc                : The SSRC of the packets (default == random)
                        flags: readable, writable
                        Unsigned Integer. Range: 0 - 4294967295 Default: 4294967295

  stats               : Various statistics
                        flags: readable
                        Boxed pointer of type "GstStructure"
                                                          clock-rate: 0
                                                        running-time: 18446744073709551615
                                                              seqnum: 0
                                                           timestamp: 0
                                                                ssrc: 0
                                                                  pt: 96
                                                       seqnum-offset: 0
                                                     timestamp-offset: 0

  timestamp           : The RTP timestamp of the last processed packet
                        flags: readable
                        Unsigned Integer. Range: 0 - 4294967295 Default: 0

  timestamp-offset    : Offset to add to all outgoing timestamps (default = random)
                        flags: readable, writable
                        Unsigned Integer. Range: 0 - 4294967295 Default: 4294967295

Element Signals:

  "request-extension" :  GstRTPHeaderExtension * user_function (GstElement * object,
                                                                guint arg0,
                                                                const gchar * arg1,
                                                                gpointer user_data);

Element Actions:

  "add-extension" -> void  :  g_signal_emit_by_name (element, "add-extension",
                                                     GstRTPHeaderExtension * arg0);

  "clear-extensions" -> void  :  g_signal_emit_by_name (element, "clear-extensions");
Factory Details:
  Rank                     marginal (64)
  Long-name                RTP VP8 payloader
  Klass                    Codec/Payloader/Network/RTP
  Description              Puts VP8 video in RTP packets
  Author                   Sjoerd Simons <sjoerd@luon.net>
  Documentation            https://gstreamer.freedesktop.org/documentation/rtp/rtpvp8pay.html

Plugin Details:
  Name                     rtp
  Description              Real-time protocol plugins
  Filename                 /opt/gstreamer/lib/x86_64-linux-gnu/gstreamer-1.0/libgstrtp.so
  Version                  1.25.0.1
  License                  LGPL
  Source module            gst-plugins-good
  Documentation            https://gstreamer.freedesktop.org/documentation/rtp/
  Binary package           GStreamer Good Plug-ins git
  Origin URL               Unknown package origin

GObject
 +----GInitiallyUnowned
       +----GstObject
             +----GstElement
                   +----GstRTPBasePayload
                         +----GstRtpVP8Pay

Pad Templates:
  SINK template: 'sink'
    Availability: Always
    Capabilities:
      video/x-vp8

  SRC template: 'src'
    Availability: Always
    Capabilities:
      application/x-rtp
                payload: [ 96, 127 ]
             clock-rate: 90000
          encoding-name: { (string)VP8, (string)VP8-DRAFT-IETF-01 }

Element has no clocking capabilities.
Element has no URI handling capabilities.

Pads:
  SRC: 'src'
    Pad Template: 'src'
  SINK: 'sink'
    Pad Template: 'sink'

Element Properties:

  auto-header-extension: Whether RTP header extensions should be automatically enabled, if an implementation is available
                        flags: readable, writable
                        Boolean. Default: true

  extensions          : A list of already enabled RTP header extensions
                        flags: readable
                        Default: "<  >"
                        GstValueArray of GValues of type "GstRTPHeaderExtension"

  max-ptime           : Maximum duration of the packet data in ns (-1 = unlimited up to MTU)
                        flags: readable, writable
                        Integer64. Range: -1 - 9223372036854775807 Default: -1

  min-ptime           : Minimum duration of the packet data in ns (can't go above MTU)
                        flags: readable, writable
                        Integer64. Range: 0 - 9223372036854775807 Default: 0

  mtu                 : Maximum size of one packet
                        flags: readable, writable
                        Unsigned Integer. Range: 28 - 4294967295 Default: 1400

  name                : The name of the object
                        flags: readable, writable
                        String. Default: "rtpvp8pay0"

  onvif-no-rate-control: Enable ONVIF Rate-Control=no timestamping mode
                        flags: readable, writable
                        Boolean. Default: false

  parent              : The parent of the object
                        flags: readable, writable
                        Object of type "GstObject"

  perfect-rtptime     : Generate perfect RTP timestamps when possible
                        flags: readable, writable
                        Boolean. Default: true

  picture-id          : Currently used picture-id for payloading
                        flags: readable
                        Integer. Range: 0 - 32767 Default: 0

  picture-id-mode     : The picture ID mode for payloading
                        flags: readable, writable
                        Enum "GstVP8RTPPayMode" Default: 0, "none"
                           (0): none             - No Picture ID
                           (1): 7-bit            - 7-bit Picture ID
                           (2): 15-bit           - 15-bit Picture ID

  picture-id-offset   : Offset to add to the initial picture-id (-1 = random)
                        flags: readable, writable
                        Integer. Range: -1 - 32767 Default: -1

  pt                  : The payload type of the packets
                        flags: readable, writable
                        Unsigned Integer. Range: 0 - 127 Default: 96

  ptime-multiple      : Force buffers to be multiples of this duration in ns (0 disables)
                        flags: readable, writable
                        Integer64. Range: 0 - 9223372036854775807 Default: 0

  scale-rtptime       : Whether the RTP timestamp should be scaled with the rate (speed)
                        flags: readable, writable
                        Boolean. Default: true

  seqnum              : The RTP sequence number of the last processed packet
                        flags: readable
                        Unsigned Integer. Range: 0 - 65535 Default: 0

  seqnum-offset       : Offset to add to all outgoing seqnum (-1 = random)
                        flags: readable, writable
                        Integer. Range: -1 - 65535 Default: -1

  source-info         : Write CSRC based on buffer meta RTP source information
                        flags: readable, writable
                        Boolean. Default: false

  ssrc                : The SSRC of the packets (default == random)
                        flags: readable, writable
                        Unsigned Integer. Range: 0 - 4294967295 Default: 4294967295

  stats               : Various statistics
                        flags: readable
                        Boxed pointer of type "GstStructure"
                                                          clock-rate: 0
                                                        running-time: 18446744073709551615
                                                              seqnum: 0
                                                           timestamp: 0
                                                                ssrc: 0
                                                                  pt: 96
                                                       seqnum-offset: 0
                                                     timestamp-offset: 0

  timestamp           : The RTP timestamp of the last processed packet
                        flags: readable
                        Unsigned Integer. Range: 0 - 4294967295 Default: 0

  timestamp-offset    : Offset to add to all outgoing timestamps (default = random)
                        flags: readable, writable
                        Unsigned Integer. Range: 0 - 4294967295 Default: 4294967295

Element Signals:

  "request-extension" :  GstRTPHeaderExtension * user_function (GstElement * object,
                                                                guint arg0,
                                                                const gchar * arg1,
                                                                gpointer user_data);

Element Actions:

  "add-extension" -> void  :  g_signal_emit_by_name (element, "add-extension",
                                                     GstRTPHeaderExtension * arg0);

  "clear-extensions" -> void  :  g_signal_emit_by_name (element, "clear-extensions");
Factory Details:
  Rank                     secondary (128)
  Long-name                RTP H265 payloader
  Klass                    Codec/Payloader/Network/RTP
  Description              Payload-encode H265 video into RTP packets (RFC 7798)
  Author                   Jurgen Slowack <jurgenslowack@gmail.com>
  Documentation            https://gstreamer.freedesktop.org/documentation/rtp/rtph265pay.html

Plugin Details:
  Name                     rtp
  Description              Real-time protocol plugins
  Filename                 /opt/gstreamer/lib/x86_64-linux-gnu/gstreamer-1.0/libgstrtp.so
  Version                  1.25.0.1
  License                  LGPL
  Source module            gst-plugins-good
  Documentation            https://gstreamer.freedesktop.org/documentation/rtp/
  Binary package           GStreamer Good Plug-ins git
  Origin URL               Unknown package origin

GObject
 +----GInitiallyUnowned
       +----GstObject
             +----GstElement
                   +----GstRTPBasePayload
                         +----GstRtpH265Pay

Pad Templates:
  SINK template: 'sink'
    Availability: Always
    Capabilities:
      video/x-h265
          stream-format: hvc1
              alignment: au
      video/x-h265
          stream-format: byte-stream
              alignment: { (string)nal, (string)au }

  SRC template: 'src'
    Availability: Always
    Capabilities:
      application/x-rtp
                  media: video
                payload: [ 96, 127 ]
             clock-rate: 90000
          encoding-name: H265

Element has no clocking capabilities.
Element has no URI handling capabilities.

Pads:
  SRC: 'src'
    Pad Template: 'src'
  SINK: 'sink'
    Pad Template: 'sink'

Element Properties:

  aggregate-mode      : Bundle suitable SPS/PPS NAL units into aggregate packets.
                        flags: readable, writable
                        Enum "GstRtpH265AggregateMode" Default: 0, "none"
                           (0): none             - Do not aggregate NAL units
                           (1): zero-latency     - Aggregate NAL units until a VCL or suffix unit is included
                           (2): max              - Aggregate all NAL units with the same timestamp (adds one frame of latency)

  auto-header-extension: Whether RTP header extensions should be automatically enabled, if an implementation is available
                        flags: readable, writable
                        Boolean. Default: true

  config-interval     : Send VPS, SPS and PPS Insertion Interval in seconds (sprop parameter sets will be multiplexed in the data stream when detected.) (0 = disabled, -1 = send with every IDR frame)
                        flags: readable, writable
                        Integer. Range: -1 - 3600 Default: 0

  extensions          : A list of already enabled RTP header extensions
                        flags: readable
                        Default: "<  >"
                        GstValueArray of GValues of type "GstRTPHeaderExtension"

  max-ptime           : Maximum duration of the packet data in ns (-1 = unlimited up to MTU)
                        flags: readable, writable
                        Integer64. Range: -1 - 9223372036854775807 Default: -1

  min-ptime           : Minimum duration of the packet data in ns (can't go above MTU)
                        flags: readable, writable
                        Integer64. Range: 0 - 9223372036854775807 Default: 0

  mtu                 : Maximum size of one packet
                        flags: readable, writable
                        Unsigned Integer. Range: 28 - 4294967295 Default: 1400

  name                : The name of the object
                        flags: readable, writable
                        String. Default: "rtph265pay0"

  onvif-no-rate-control: Enable ONVIF Rate-Control=no timestamping mode
                        flags: readable, writable
                        Boolean. Default: false

  parent              : The parent of the object
                        flags: readable, writable
                        Object of type "GstObject"

  perfect-rtptime     : Generate perfect RTP timestamps when possible
                        flags: readable, writable
                        Boolean. Default: true

  pt                  : The payload type of the packets
                        flags: readable, writable
                        Unsigned Integer. Range: 0 - 127 Default: 96

  ptime-multiple      : Force buffers to be multiples of this duration in ns (0 disables)
                        flags: readable, writable
                        Integer64. Range: 0 - 9223372036854775807 Default: 0

  scale-rtptime       : Whether the RTP timestamp should be scaled with the rate (speed)
                        flags: readable, writable
                        Boolean. Default: true

  seqnum              : The RTP sequence number of the last processed packet
                        flags: readable
                        Unsigned Integer. Range: 0 - 65535 Default: 0

  seqnum-offset       : Offset to add to all outgoing seqnum (-1 = random)
                        flags: readable, writable
                        Integer. Range: -1 - 65535 Default: -1

  source-info         : Write CSRC based on buffer meta RTP source information
                        flags: readable, writable
                        Boolean. Default: false

  ssrc                : The SSRC of the packets (default == random)
                        flags: readable, writable
                        Unsigned Integer. Range: 0 - 4294967295 Default: 4294967295

  stats               : Various statistics
                        flags: readable
                        Boxed pointer of type "GstStructure"
                                                          clock-rate: 0
                                                        running-time: 18446744073709551615
                                                              seqnum: 0
                                                           timestamp: 0
                                                                ssrc: 0
                                                                  pt: 96
                                                       seqnum-offset: 0
                                                     timestamp-offset: 0

  timestamp           : The RTP timestamp of the last processed packet
                        flags: readable
                        Unsigned Integer. Range: 0 - 4294967295 Default: 0

  timestamp-offset    : Offset to add to all outgoing timestamps (default = random)
                        flags: readable, writable
                        Unsigned Integer. Range: 0 - 4294967295 Default: 4294967295

Element Signals:

  "request-extension" :  GstRTPHeaderExtension * user_function (GstElement * object,
                                                                guint arg0,
                                                                const gchar * arg1,
                                                                gpointer user_data);

Element Actions:

  "add-extension" -> void  :  g_signal_emit_by_name (element, "add-extension",
                                                     GstRTPHeaderExtension * arg0);

  "clear-extensions" -> void  :  g_signal_emit_by_name (element, "clear-extensions");
Factory Details:
  Rank                     secondary (128)
  Long-name                RTP H264 payloader
  Klass                    Codec/Payloader/Network/RTP
  Description              Payload-encode H264 video into RTP packets (RFC 3984)
  Author                   Laurent Glayal <spglegle@yahoo.fr>
  Documentation            https://gstreamer.freedesktop.org/documentation/rtp/rtph264pay.html

Plugin Details:
  Name                     rtp
  Description              Real-time protocol plugins
  Filename                 /opt/gstreamer/lib/x86_64-linux-gnu/gstreamer-1.0/libgstrtp.so
  Version                  1.25.0.1
  License                  LGPL
  Source module            gst-plugins-good
  Documentation            https://gstreamer.freedesktop.org/documentation/rtp/
  Binary package           GStreamer Good Plug-ins git
  Origin URL               Unknown package origin

GObject
 +----GInitiallyUnowned
       +----GstObject
             +----GstElement
                   +----GstRTPBasePayload
                         +----GstRtpH264Pay

Pad Templates:
  SINK template: 'sink'
    Availability: Always
    Capabilities:
      video/x-h264
          stream-format: avc
              alignment: au
      video/x-h264
          stream-format: byte-stream
              alignment: { (string)nal, (string)au }

  SRC template: 'src'
    Availability: Always
    Capabilities:
      application/x-rtp
                  media: video
                payload: [ 96, 127 ]
             clock-rate: 90000
          encoding-name: H264

Element has no clocking capabilities.
Element has no URI handling capabilities.

Pads:
  SRC: 'src'
    Pad Template: 'src'
  SINK: 'sink'
    Pad Template: 'sink'

Element Properties:

  aggregate-mode      : Bundle suitable SPS/PPS NAL units into STAP-A aggregate packets
                        flags: readable, writable
                        Enum "GstRtpH264AggregateMode" Default: 0, "none"
                           (0): none             - Do not aggregate NAL units
                           (1): zero-latency     - Aggregate NAL units until a VCL unit is included
                           (2): max-stap         - Aggregate all NAL units with the same timestamp (adds one frame of latency)

  auto-header-extension: Whether RTP header extensions should be automatically enabled, if an implementation is available
                        flags: readable, writable
                        Boolean. Default: true

  config-interval     : Send SPS and PPS Insertion Interval in seconds (sprop parameter sets will be multiplexed in the data stream when detected.) (0 = disabled, -1 = send with every IDR frame)
                        flags: readable, writable
                        Integer. Range: -1 - 3600 Default: 0

  extensions          : A list of already enabled RTP header extensions
                        flags: readable
                        Default: "<  >"
                        GstValueArray of GValues of type "GstRTPHeaderExtension"

  max-ptime           : Maximum duration of the packet data in ns (-1 = unlimited up to MTU)
                        flags: readable, writable
                        Integer64. Range: -1 - 9223372036854775807 Default: -1

  min-ptime           : Minimum duration of the packet data in ns (can't go above MTU)
                        flags: readable, writable
                        Integer64. Range: 0 - 9223372036854775807 Default: 0

  mtu                 : Maximum size of one packet
                        flags: readable, writable
                        Unsigned Integer. Range: 28 - 4294967295 Default: 1400

  name                : The name of the object
                        flags: readable, writable
                        String. Default: "rtph264pay0"

  onvif-no-rate-control: Enable ONVIF Rate-Control=no timestamping mode
                        flags: readable, writable
                        Boolean. Default: false

  parent              : The parent of the object
                        flags: readable, writable
                        Object of type "GstObject"

  perfect-rtptime     : Generate perfect RTP timestamps when possible
                        flags: readable, writable
                        Boolean. Default: true

  pt                  : The payload type of the packets
                        flags: readable, writable
                        Unsigned Integer. Range: 0 - 127 Default: 96

  ptime-multiple      : Force buffers to be multiples of this duration in ns (0 disables)
                        flags: readable, writable
                        Integer64. Range: 0 - 9223372036854775807 Default: 0

  scale-rtptime       : Whether the RTP timestamp should be scaled with the rate (speed)
                        flags: readable, writable
                        Boolean. Default: true

  seqnum              : The RTP sequence number of the last processed packet
                        flags: readable
                        Unsigned Integer. Range: 0 - 65535 Default: 0

  seqnum-offset       : Offset to add to all outgoing seqnum (-1 = random)
                        flags: readable, writable
                        Integer. Range: -1 - 65535 Default: -1

  source-info         : Write CSRC based on buffer meta RTP source information
                        flags: readable, writable
                        Boolean. Default: false

  sprop-parameter-sets: The base64 sprop-parameter-sets to set in out caps (set to NULL to extract from stream)
                        flags: readable, writable, deprecated
                        String. Default: null

  ssrc                : The SSRC of the packets (default == random)
                        flags: readable, writable
                        Unsigned Integer. Range: 0 - 4294967295 Default: 4294967295

  stats               : Various statistics
                        flags: readable
                        Boxed pointer of type "GstStructure"
                                                          clock-rate: 0
                                                        running-time: 18446744073709551615
                                                              seqnum: 0
                                                           timestamp: 0
                                                                ssrc: 0
                                                                  pt: 96
                                                       seqnum-offset: 0
                                                     timestamp-offset: 0

  timestamp           : The RTP timestamp of the last processed packet
                        flags: readable
                        Unsigned Integer. Range: 0 - 4294967295 Default: 0

  timestamp-offset    : Offset to add to all outgoing timestamps (default = random)
                        flags: readable, writable
                        Unsigned Integer. Range: 0 - 4294967295 Default: 4294967295

Element Signals:

  "request-extension" :  GstRTPHeaderExtension * user_function (GstElement * object,
                                                                guint arg0,
                                                                const gchar * arg1,
                                                                gpointer user_data);

Element Actions:

  "add-extension" -> void  :  g_signal_emit_by_name (element, "add-extension",
                                                     GstRTPHeaderExtension * arg0);

  "clear-extensions" -> void  :  g_signal_emit_by_name (element, "clear-extensions");
Factory Details:
  Rank                     primary (256)
  Long-name                RTP Opus payloader
  Klass                    Codec/Payloader/Network/RTP
  Description              Puts Opus audio in RTP packets
  Author                   Danilo Cesar Lemes de Paula <danilo.cesar@collabora.co.uk>
  Documentation            https://gstreamer.freedesktop.org/documentation/rtp/rtpopuspay.html

Plugin Details:
  Name                     rtp
  Description              Real-time protocol plugins
  Filename                 /opt/gstreamer/lib/x86_64-linux-gnu/gstreamer-1.0/libgstrtp.so
  Version                  1.25.0.1
  License                  LGPL
  Source module            gst-plugins-good
  Documentation            https://gstreamer.freedesktop.org/documentation/rtp/
  Binary package           GStreamer Good Plug-ins git
  Origin URL               Unknown package origin

GObject
 +----GInitiallyUnowned
       +----GstObject
             +----GstElement
                   +----GstRTPBasePayload
                         +----GstRtpOPUSPay

Pad Templates:
  SINK template: 'sink'
    Availability: Always
    Capabilities:
      audio/x-opus
        channel-mapping-family: 0
      audio/x-opus
        channel-mapping-family: 0
               channels: [ 1, 2 ]
      audio/x-opus
        channel-mapping-family: 1
               channels: [ 3, 255 ]

  SRC template: 'src'
    Availability: Always
    Capabilities:
      application/x-rtp
                  media: audio
                payload: [ 96, 127 ]
             clock-rate: 48000
          encoding-name: { (string)OPUS, (string)X-GST-OPUS-DRAFT-SPITTKA-00, (string)MULTIOPUS }

Element has no clocking capabilities.
Element has no URI handling capabilities.

Pads:
  SRC: 'src'
    Pad Template: 'src'
  SINK: 'sink'
    Pad Template: 'sink'

Element Properties:

  auto-header-extension: Whether RTP header extensions should be automatically enabled, if an implementation is available
                        flags: readable, writable
                        Boolean. Default: true

  dtx                 : If enabled, the payloader will not transmit empty packets
                        flags: readable, writable, changeable in NULL, READY, PAUSED or PLAYING state
                        Boolean. Default: false

  extensions          : A list of already enabled RTP header extensions
                        flags: readable
                        Default: "<  >"
                        GstValueArray of GValues of type "GstRTPHeaderExtension"

  max-ptime           : Maximum duration of the packet data in ns (-1 = unlimited up to MTU)
                        flags: readable, writable
                        Integer64. Range: -1 - 9223372036854775807 Default: -1

  min-ptime           : Minimum duration of the packet data in ns (can't go above MTU)
                        flags: readable, writable
                        Integer64. Range: 0 - 9223372036854775807 Default: 0

  mtu                 : Maximum size of one packet
                        flags: readable, writable
                        Unsigned Integer. Range: 28 - 4294967295 Default: 1400

  name                : The name of the object
                        flags: readable, writable
                        String. Default: "rtpopuspay0"

  onvif-no-rate-control: Enable ONVIF Rate-Control=no timestamping mode
                        flags: readable, writable
                        Boolean. Default: false

  parent              : The parent of the object
                        flags: readable, writable
                        Object of type "GstObject"

  perfect-rtptime     : Generate perfect RTP timestamps when possible
                        flags: readable, writable
                        Boolean. Default: true

  pt                  : The payload type of the packets
                        flags: readable, writable
                        Unsigned Integer. Range: 0 - 127 Default: 96

  ptime-multiple      : Force buffers to be multiples of this duration in ns (0 disables)
                        flags: readable, writable
                        Integer64. Range: 0 - 9223372036854775807 Default: 0

  scale-rtptime       : Whether the RTP timestamp should be scaled with the rate (speed)
                        flags: readable, writable
                        Boolean. Default: true

  seqnum              : The RTP sequence number of the last processed packet
                        flags: readable
                        Unsigned Integer. Range: 0 - 65535 Default: 0

  seqnum-offset       : Offset to add to all outgoing seqnum (-1 = random)
                        flags: readable, writable
                        Integer. Range: -1 - 65535 Default: -1

  source-info         : Write CSRC based on buffer meta RTP source information
                        flags: readable, writable
                        Boolean. Default: false

  ssrc                : The SSRC of the packets (default == random)
                        flags: readable, writable
                        Unsigned Integer. Range: 0 - 4294967295 Default: 4294967295

  stats               : Various statistics
                        flags: readable
                        Boxed pointer of type "GstStructure"
                                                          clock-rate: 0
                                                        running-time: 18446744073709551615
                                                              seqnum: 0
                                                           timestamp: 0
                                                                ssrc: 0
                                                                  pt: 96
                                                       seqnum-offset: 0
                                                     timestamp-offset: 0

  timestamp           : The RTP timestamp of the last processed packet
                        flags: readable
                        Unsigned Integer. Range: 0 - 4294967295 Default: 0

  timestamp-offset    : Offset to add to all outgoing timestamps (default = random)
                        flags: readable, writable
                        Unsigned Integer. Range: 0 - 4294967295 Default: 4294967295

Element Signals:

  "request-extension" :  GstRTPHeaderExtension * user_function (GstElement * object,
                                                                guint arg0,
                                                                const gchar * arg1,
                                                                gpointer user_data);

Element Actions:

  "add-extension" -> void  :  g_signal_emit_by_name (element, "add-extension",
                                                     GstRTPHeaderExtension * arg0);

  "clear-extensions" -> void  :  g_signal_emit_by_name (element, "clear-extensions");
ehfd commented 1 month ago
Factory Details:
  Rank                     none (0)
  Long-name                Google Congestion Control bandwidth estimator
  Klass                    Network/WebRTC/RTP/Filter
  Description              Estimates current network bandwidth using the Google Congestion Control algorithm notifying about it through the 'bitrate' property
  Author                   Thibault Saunier <tsaunier@igalia.com>
  Documentation            https://gstreamer.freedesktop.org/documentation/rsrtp/rtpgccbwe.html

Plugin Details:
  Name                     rsrtp
  Description              GStreamer Rust RTP Plugin
  Filename                 /opt/gstreamer/lib/x86_64-linux-gnu/gstreamer-1.0/libgstrsrtp.so
  Version                  0.13.0-alpha.1-61c9cbdc
  License                  MPL-2.0
  Source module            gst-plugin-rtp
  Documentation            https://gstreamer.freedesktop.org/documentation/rsrtp/
  Source release date      2024-04-11
  Binary package           gst-plugin-rtp
  Origin URL               https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs

GObject
 +----GInitiallyUnowned
       +----GstObject
             +----GstElement
                   +----GstRtpGCCBwE

Pad Templates:
  SINK template: 'sink'
    Availability: Always
    Capabilities:
      application/x-rtp

  SRC template: 'src'
    Availability: Always
    Capabilities:
      application/x-rtp

Element has no clocking capabilities.
Element has no URI handling capabilities.

Pads:
  SINK: 'sink'
    Pad Template: 'sink'
  SRC: 'src'
    Pad Template: 'src'

Element Properties:

  estimated-bitrate   : Currently estimated bitrate. Can be set before starting
                     the element to configure the starting bitrate, in which case the
                     encoder should also use it as target bitrate
                        flags: readable, writable, changeable only in NULL or READY state
                        Unsigned Integer. Range: 1 - 4294967295 Default: 2048000

  max-bitrate         : Maximum bitrate to use (in bit/sec) when computing it through the bandwidth estimation algorithm
                        flags: readable, writable, changeable only in NULL or READY state
                        Unsigned Integer. Range: 1 - 4294967295 Default: 8192000

  min-bitrate         : Minimal bitrate to use (in bit/sec) when computing it through the bandwidth estimation algorithm
                        flags: readable, writable, changeable only in NULL or READY state
                        Unsigned Integer. Range: 1 - 4294967295 Default: 1000

  name                : The name of the object
                        flags: readable, writable
                        String. Default: "rtpgccbwe0"

  parent              : The parent of the object
                        flags: readable, writable
                        Object of type "GstObject"
Factory Details:
  Rank                     primary (256)
  Long-name                WebRTC Bin
  Klass                    Filter/Network/WebRTC
  Description              A bin for webrtc connections
  Author                   Matthew Waters <matthew@centricular.com>
  Documentation            https://gstreamer.freedesktop.org/documentation/webrtc/#webrtcbin-page

Plugin Details:
  Name                     webrtc
  Description              WebRTC plugins
  Filename                 /opt/gstreamer/lib/x86_64-linux-gnu/gstreamer-1.0/libgstwebrtc.so
  Version                  1.25.0.1
  License                  LGPL
  Source module            gst-plugins-bad
  Documentation            https://gstreamer.freedesktop.org/documentation/webrtc/
  Binary package           GStreamer Bad Plug-ins git
  Origin URL               Unknown package origin

GObject
 +----GInitiallyUnowned
       +----GstObject
             +----GstElement
                   +----GstBin
                         +----GstWebRTCBin

Implemented Interfaces:
  GstChildProxy

Pad Templates:
  SINK template: 'sink_%u'
    Availability: On request
    Capabilities:
      application/x-rtp
    Type: GstWebRTCBinSinkPad
    Pad Properties:

      msid                : Local MediaStream ID to use for this pad (NULL = unset)
                            flags: readable, writable
                            String. Default: null

      transceiver         : Transceiver associated with this pad
                            flags: readable
                            Object of type "GstWebRTCRTPTransceiver"

  SRC template: 'src_%u'
    Availability: Sometimes
    Capabilities:
      application/x-rtp
    Type: GstWebRTCBinSrcPad
    Pad Properties:

      msid                : Remote MediaStream ID in use for this pad (NULL = not advertised)
                            flags: readable
                            String. Default: null

      transceiver         : Transceiver associated with this pad
                            flags: readable
                            Object of type "GstWebRTCRTPTransceiver"

Element has no clocking capabilities.
Element has no URI handling capabilities.

Pads:
  none

Element Properties:

  async-handling      : The bin will handle Asynchronous state changes
                        flags: readable, writable
                        Boolean. Default: false

  bundle-policy       : The policy to apply for bundling
                        flags: readable, writable
                        Enum "GstWebRTCBundlePolicy" Default: 0, "none"
                           (0): none             - GST_WEBRTC_BUNDLE_POLICY_NONE
                           (1): balanced         - GST_WEBRTC_BUNDLE_POLICY_BALANCED
                           (2): max-compat       - GST_WEBRTC_BUNDLE_POLICY_MAX_COMPAT
                           (3): max-bundle       - GST_WEBRTC_BUNDLE_POLICY_MAX_BUNDLE

  connection-state    : The overall connection state of this element
                        flags: readable
                        Enum "GstWebRTCPeerConnectionState" Default: 0, "new"
                           (0): new              - GST_WEBRTC_PEER_CONNECTION_STATE_NEW
                           (1): connecting       - GST_WEBRTC_PEER_CONNECTION_STATE_CONNECTING
                           (2): connected        - GST_WEBRTC_PEER_CONNECTION_STATE_CONNECTED
                           (3): disconnected     - GST_WEBRTC_PEER_CONNECTION_STATE_DISCONNECTED
                           (4): failed           - GST_WEBRTC_PEER_CONNECTION_STATE_FAILED
                           (5): closed           - GST_WEBRTC_PEER_CONNECTION_STATE_CLOSED

  current-local-description: The local description that was successfully negotiated the last time the connection transitioned into the stable state
                        flags: readable
                        Boxed pointer of type "GstWebRTCSessionDescription"

  current-remote-description: The last remote description that was successfully negotiated the last time the connection transitioned into the stable state plus any remote candidates that have been supplied via addIceCandidate() since the offer or answer was created
                        flags: readable
                        Boxed pointer of type "GstWebRTCSessionDescription"

  http-proxy          : A HTTP proxy for use with TURN/TCP of the form http://[username:password@]hostname[:port][?alpn=<alpn>]
                        flags: readable, writable
                        String. Default: null

  ice-agent           : The WebRTC ICE agent
                        flags: readable, writable, can be set only at object construction time
                        Object of type "GstWebRTCICE"

  ice-connection-state: The collective connection state of all ICETransport's
                        flags: readable
                        Enum "GstWebRTCICEConnectionState" Default: 0, "new"
                           (0): new              - GST_WEBRTC_ICE_CONNECTION_STATE_NEW
                           (1): checking         - GST_WEBRTC_ICE_CONNECTION_STATE_CHECKING
                           (2): connected        - GST_WEBRTC_ICE_CONNECTION_STATE_CONNECTED
                           (3): completed        - GST_WEBRTC_ICE_CONNECTION_STATE_COMPLETED
                           (4): failed           - GST_WEBRTC_ICE_CONNECTION_STATE_FAILED
                           (5): disconnected     - GST_WEBRTC_ICE_CONNECTION_STATE_DISCONNECTED
                           (6): closed           - GST_WEBRTC_ICE_CONNECTION_STATE_CLOSED

  ice-gathering-state : The collective gathering state of all ICETransport's
                        flags: readable
                        Enum "GstWebRTCICEGatheringState" Default: 0, "new"
                           (0): new              - GST_WEBRTC_ICE_GATHERING_STATE_NEW
                           (1): gathering        - GST_WEBRTC_ICE_GATHERING_STATE_GATHERING
                           (2): complete         - GST_WEBRTC_ICE_GATHERING_STATE_COMPLETE

  ice-transport-policy: The policy to apply for ICE transport
                        flags: readable, writable
                        Enum "GstWebRTCICETransportPolicy" Default: 0, "all"
                           (0): all              - GST_WEBRTC_ICE_TRANSPORT_POLICY_ALL
                           (1): relay            - GST_WEBRTC_ICE_TRANSPORT_POLICY_RELAY

  latency             : Default duration to buffer in the jitterbuffers (in ms)
                        flags: readable, writable
                        Unsigned Integer. Range: 0 - 4294967295 Default: 200

  local-description   : The local SDP description in use for this connection. Favours a pending description over the current description
                        flags: readable
                        Boxed pointer of type "GstWebRTCSessionDescription"

  message-forward     : Forwards all children messages
                        flags: readable, writable
                        Boolean. Default: false

  name                : The name of the object
                        flags: readable, writable
                        String. Default: "webrtcbin0"

  parent              : The parent of the object
                        flags: readable, writable
                        Object of type "GstObject"

  pending-local-description: The local description that is in the process of being negotiated plus any local candidates that have been generated by the ICE Agent since the offer or answer was created
                        flags: readable
                        Boxed pointer of type "GstWebRTCSessionDescription"

  pending-remote-description: The remote description that is in the process of being negotiated, complete with any remote candidates that have been supplied via addIceCandidate() since the offer or answer was created
                        flags: readable
                        Boxed pointer of type "GstWebRTCSessionDescription"

  remote-description  : The remote SDP description to use for this connection. Favours a pending description over the current description
                        flags: readable
                        Boxed pointer of type "GstWebRTCSessionDescription"

  sctp-transport      : The WebRTC SCTP Transport
                        flags: readable
                        Object of type "GstWebRTCSCTPTransport"

  signaling-state     : The signaling state of this element
                        flags: readable
                        Enum "GstWebRTCSignalingState" Default: 0, "stable"
                           (0): stable           - GST_WEBRTC_SIGNALING_STATE_STABLE
                           (1): closed           - GST_WEBRTC_SIGNALING_STATE_CLOSED
                           (2): have-local-offer - GST_WEBRTC_SIGNALING_STATE_HAVE_LOCAL_OFFER
                           (3): have-remote-offer - GST_WEBRTC_SIGNALING_STATE_HAVE_REMOTE_OFFER
                           (4): have-local-pranswer - GST_WEBRTC_SIGNALING_STATE_HAVE_LOCAL_PRANSWER
                           (5): have-remote-pranswer - GST_WEBRTC_SIGNALING_STATE_HAVE_REMOTE_PRANSWER

  stun-server         : The STUN server of the form stun://hostname:port
                        flags: readable, writable
                        String. Default: null

  turn-server         : The TURN server of the form turn(s)://username:password@host:port. To use time-limited credentials, the form must be turn(s)://timestamp:username:password@host:port. Please note that the ':' character of the 'timestamp:username' and the 'password' encoded by base64 should be escaped to be parsed properly. This is a convenience property, use #GstWebRTCBin::add-turn-server if you wish to use multiple TURN servers
                        flags: readable, writable
                        String. Default: null

Element Signals:

  "pad-added" :  void user_function (GstElement * object,
                                     GstPad * arg0,
                                     gpointer user_data);

  "pad-removed" :  void user_function (GstElement * object,
                                       GstPad * arg0,
                                       gpointer user_data);

  "no-more-pads" :  void user_function (GstElement * object,
                                        gpointer user_data);

  "on-negotiation-needed" :  void user_function (GstElement * object,
                                                 gpointer user_data);

  "on-ice-candidate" :  void user_function (GstElement * object,
                                            guint arg0,
                                            const gchar * arg1,
                                            gpointer user_data);

  "on-new-transceiver" :  void user_function (GstElement * object,
                                              GstWebRTCRTPTransceiver * arg0,
                                              gpointer user_data);

  "on-data-channel" :  void user_function (GstElement * object,
                                           GstWebRTCDataChannel * arg0,
                                           gpointer user_data);

  "prepare-data-channel" :  void user_function (GstElement * object,
                                                GstWebRTCDataChannel * arg0,
                                                gboolean arg1,
                                                gpointer user_data);

  "request-aux-sender" :  GstElement * user_function (GstElement * object,
                                                      GstWebRTCDTLSTransport * arg0,
                                                      gpointer user_data);

Element Actions:

  "create-offer" -> void  :  g_signal_emit_by_name (element, "create-offer",
                                                    GstStructure * arg0,
                                                    GstPromise * arg1);

  "create-answer" -> void  :  g_signal_emit_by_name (element, "create-answer",
                                                     GstStructure * arg0,
                                                     GstPromise * arg1);

  "set-local-description" -> void  :  g_signal_emit_by_name (element, "set-local-description",
                                                             GstWebRTCSessionDescription * arg0,
                                                             GstPromise * arg1);

  "set-remote-description" -> void  :  g_signal_emit_by_name (element, "set-remote-description",
                                                              GstWebRTCSessionDescription * arg0,
                                                              GstPromise * arg1);

  "add-ice-candidate" -> void  :  g_signal_emit_by_name (element, "add-ice-candidate",
                                                         guint arg0,
                                                         const gchar * arg1);

  "add-ice-candidate-full" -> void  :  g_signal_emit_by_name (element, "add-ice-candidate-full",
                                                              guint arg0,
                                                              const gchar * arg1,
                                                              GstPromise * arg2);

  "get-stats" -> void  :  g_signal_emit_by_name (element, "get-stats",
                                                 GstPad * arg0,
                                                 GstPromise * arg1);

  "add-transceiver" -> GstWebRTCRTPTransceiver  * :  g_signal_emit_by_name (element, "add-transceiver",
                                                                            GstWebRTCRTPTransceiverDirection arg0,
                                                                            GstCaps * arg1,
                                                                            GstWebRTCRTPTransceiver * * p_return_value);

  "get-transceivers" -> GArray  * :  g_signal_emit_by_name (element, "get-transceivers",
                                                            GArray * * p_return_value);

  "get-transceiver" -> GstWebRTCRTPTransceiver  * :  g_signal_emit_by_name (element, "get-transceiver",
                                                                            gint arg0,
                                                                            GstWebRTCRTPTransceiver * * p_return_value);

  "add-turn-server" -> gboolean  :  g_signal_emit_by_name (element, "add-turn-server",
                                                           const gchar * arg0,
                                                           gboolean * p_return_value);

  "create-data-channel" -> GstWebRTCDataChannel  * :  g_signal_emit_by_name (element, "create-data-channel",
                                                                             const gchar * arg0,
                                                                             GstStructure * arg1,
                                                                             GstWebRTCDataChannel * * p_return_value);

Children:
  rtpbin
Factory Details:
  Rank                     none (0)
  Long-name                RTP Bin
  Klass                    Filter/Network/RTP
  Description              Real-Time Transport Protocol bin
  Author                   Wim Taymans <wim.taymans@gmail.com>
  Documentation            https://gstreamer.freedesktop.org/documentation/rtpmanager/rtpbin.html

Plugin Details:
  Name                     rtpmanager
  Description              RTP session management plugin library
  Filename                 /opt/gstreamer/lib/x86_64-linux-gnu/gstreamer-1.0/libgstrtpmanager.so
  Version                  1.25.0.1
  License                  LGPL
  Source module            gst-plugins-good
  Documentation            https://gstreamer.freedesktop.org/documentation/rtpmanager/
  Binary package           GStreamer Good Plug-ins git
  Origin URL               Unknown package origin

GObject
 +----GInitiallyUnowned
       +----GstObject
             +----GstElement
                   +----GstBin
                         +----GstRtpBin

Implemented Interfaces:
  GstChildProxy

Pad Templates:
  SINK template: 'recv_fec_sink_%u_%u'
    Availability: On request
    Capabilities:
      application/x-rtp

  SINK template: 'recv_rtcp_sink_%u'
    Availability: On request
    Capabilities:
      application/x-rtcp
      application/x-srtcp

  SINK template: 'recv_rtp_sink_%u'
    Availability: On request
    Capabilities:
      application/x-rtp
      application/x-srtp

  SRC template: 'recv_rtp_src_%u_%u_%u'
    Availability: Sometimes
    Capabilities:
      application/x-rtp

  SRC template: 'send_fec_src_%u_%u'
    Availability: Sometimes
    Capabilities:
      application/x-rtp

  SRC template: 'send_rtcp_src_%u'
    Availability: On request
    Capabilities:
      application/x-rtcp
      application/x-srtcp

  SINK template: 'send_rtp_sink_%u'
    Availability: On request
    Capabilities:
      application/x-rtp

  SRC template: 'send_rtp_src_%u'
    Availability: Sometimes
    Capabilities:
      application/x-rtp
      application/x-srtp

Element has no clocking capabilities.
Element has no URI handling capabilities.

Pads:
  none

Element Properties:

  add-reference-timestamp-meta: Add Reference Timestamp Meta to buffers with the original clock timestamp before any adjustments when syncing to an RFC7273 clock or after clock synchronization via RTCP or inband NTP-64 header extensions has happened.
                        flags: readable, writable
                        Boolean. Default: false

  async-handling      : The bin will handle Asynchronous state changes
                        flags: readable, writable
                        Boolean. Default: false

  autoremove          : Automatically remove timed out sources
                        flags: readable, writable
                        Boolean. Default: false

  buffer-mode         : Control the buffering algorithm in use
                        flags: readable, writable
                        Enum "RTPJitterBufferMode" Default: 1, "slave"
                           (0): none             - Only use RTP timestamps
                           (1): slave            - Slave receiver to sender clock
                           (2): buffer           - Do low/high watermark buffering
                           (4): synced           - Synchronized sender and receiver clocks

  do-lost             : Send an event downstream when a packet is lost
                        flags: readable, writable
                        Boolean. Default: false

  do-retransmission   : Enable retransmission on all streams
                        flags: readable, writable
                        Boolean. Default: false

  do-sync-event       : Send event downstream when a stream is synchronized to the sender
                        flags: readable, writable
                        Boolean. Default: false

  drop-on-latency     : Tells the jitterbuffer to never exceed the given latency in size
                        flags: readable, writable
                        Boolean. Default: false

  fec-decoders        : GstStructure mapping from session index to FEC decoder factory, eg fec-decoders='fec,0="rtpst2022-1-fecdec\ size-time\=1000000000";'
                        flags: readable, writable
                        Boxed pointer of type "GstStructure"

  fec-encoders        : GstStructure mapping from session index to FEC encoder factory, eg fec-encoders='fec,0="rtpst2022-1-fecenc\ rows\=5\ columns\=5";'
                        flags: readable, writable
                        Boxed pointer of type "GstStructure"

  ignore-pt           : Do not demultiplex based on PT values
                        flags: readable, writable
                        Boolean. Default: false

  latency             : Default amount of ms to buffer in the jitterbuffers
                        flags: readable, writable
                        Unsigned Integer. Range: 0 - 4294967295 Default: 200

  max-dropout-time    : The maximum time (milliseconds) of missing packets tolerated.
                        flags: readable, writable
                        Unsigned Integer. Range: 0 - 4294967295 Default: 60000

  max-misorder-time   : The maximum time (milliseconds) of misordered packets tolerated.
                        flags: readable, writable
                        Unsigned Integer. Range: 0 - 4294967295 Default: 2000

  max-rtcp-rtp-time-diff: Maximum amount of time in ms that the RTP time in RTCP SRs is allowed to be ahead (-1 disabled)
                        flags: readable, writable
                        Integer. Range: -1 - 2147483647 Default: 1000

  max-streams         : The maximum number of streams to create for one session
                        flags: readable, writable
                        Unsigned Integer. Range: 0 - 4294967295 Default: 4294967295

  max-ts-offset       : The maximum absolute value of the time offset in (nanoseconds). Note, if the ntp-sync parameter is set the default value is changed to 0 (no limit)
                        flags: readable, writable
                        Integer64. Range: 0 - 9223372036854775807 Default: 3000000000

  max-ts-offset-adjustment: The maximum number of nanoseconds per frame that time stamp offsets may be adjusted (0 = no limit).
                        flags: readable, writable
                        Unsigned Integer64. Range: 0 - 18446744073709551615 Default: 0

  message-forward     : Forwards all children messages
                        flags: readable, writable
                        Boolean. Default: false

  min-ts-offset       : The minimum absolute value of the time offset in (nanoseconds). Used to set an lower limit for when a time offset is deemed large enough to be useful for sync corrections.Note, if the ntp-sync parameter is set the default value is changed to 0 (no limit)
                        flags: readable, writable
                        Unsigned Integer64. Range: 0 - 18446744073709551615 Default: 4000000

  name                : The name of the object
                        flags: readable, writable
                        String. Default: "rtpbin0"

  ntp-sync            : Synchronize received streams to the NTP clock
                        flags: readable, writable
                        Boolean. Default: false

  ntp-time-source     : NTP time source for RTCP packets
                        flags: readable, writable
                        Enum "GstRtpNtpTimeSource" Default: 0, "ntp"
                           (0): ntp              - NTP time based on realtime clock
                           (1): unix             - UNIX time based on realtime clock
                           (2): running-time     - Running time based on pipeline clock
                           (3): clock-time       - Pipeline clock time

  parent              : The parent of the object
                        flags: readable, writable
                        Object of type "GstObject"

  rfc7273-sync        : Synchronize received streams to the RFC7273 clock (requires clock and offset to be provided)
                        flags: readable, writable
                        Boolean. Default: false

  rtcp-sync           : Use of RTCP SR in synchronization
                        flags: readable, writable
                        Enum "GstRTCPSync" Default: 0, "always"
                           (0): always           - always
                           (1): initial          - initial
                           (2): rtp-info         - rtp-info

  rtcp-sync-interval  : RTCP SR / NTP-64 interval synchronization (ms) (0 = always)
                        flags: readable, writable
                        Unsigned Integer. Range: 0 - 4294967295 Default: 0

  rtcp-sync-send-time : Use send time or capture time for RTCP sync (TRUE = send time, FALSE = capture time)
                        flags: readable, writable
                        Boolean. Default: true

  rtp-profile         : Default RTP profile of newly created sessions
                        flags: readable, writable
                        Enum "GstRTPProfile" Default: 1, "avp"
                           (0): unknown          - GST_RTP_PROFILE_UNKNOWN
                           (1): avp              - GST_RTP_PROFILE_AVP
                           (2): savp             - GST_RTP_PROFILE_SAVP
                           (3): avpf             - GST_RTP_PROFILE_AVPF
                           (4): savpf            - GST_RTP_PROFILE_SAVPF

  sdes                : The SDES items of this session
                        flags: readable, writable
                        Boxed pointer of type "GstStructure"
                                                               cname: "user560569849\@host-7f7d4616"
                                                                tool: GStreamer

  timeout-inactive-sources: Whether sources that don't receive RTP or RTCP packets for longer than 5x RTCP interval should be removed
                        flags: readable, writable
                        Boolean. Default: true

  ts-offset-smoothing-factor: Sets a smoothing factor for the timestamp offset in number of values for a calculated running moving average. (0 = no smoothing factor)
                        flags: readable, writable
                        Unsigned Integer. Range: 0 - 4294967295 Default: 0

  update-ntp64-header-ext: Whether RTP NTP header extension should be updated with actual NTP time
                        flags: readable, writable
                        Boolean. Default: true

  use-pipeline-clock  : Use the pipeline running-time to set the NTP time in the RTCP SR messages (DEPRECATED: Use ntp-time-source property)
                        flags: readable, writable, deprecated
                        Boolean. Default: false

Element Signals:

  "pad-added" :  void user_function (GstElement * object,
                                     GstPad * arg0,
                                     gpointer user_data);

  "pad-removed" :  void user_function (GstElement * object,
                                       GstPad * arg0,
                                       gpointer user_data);

  "no-more-pads" :  void user_function (GstElement * object,
                                        gpointer user_data);

  "request-pt-map" :  GstCaps * user_function (GstElement * object,
                                               guint arg0,
                                               guint arg1,
                                               gpointer user_data);

  "payload-type-change" :  void user_function (GstElement * object,
                                               guint arg0,
                                               guint arg1,
                                               gpointer user_data);

  "on-new-ssrc" :  void user_function (GstElement * object,
                                       guint arg0,
                                       guint arg1,
                                       gpointer user_data);

  "on-ssrc-collision" :  void user_function (GstElement * object,
                                             guint arg0,
                                             guint arg1,
                                             gpointer user_data);

  "on-ssrc-validated" :  void user_function (GstElement * object,
                                             guint arg0,
                                             guint arg1,
                                             gpointer user_data);

  "on-ssrc-active" :  void user_function (GstElement * object,
                                          guint arg0,
                                          guint arg1,
                                          gpointer user_data);

  "on-ssrc-sdes" :  void user_function (GstElement * object,
                                        guint arg0,
                                        guint arg1,
                                        gpointer user_data);

  "on-bye-ssrc" :  void user_function (GstElement * object,
                                       guint arg0,
                                       guint arg1,
                                       gpointer user_data);

  "on-bye-timeout" :  void user_function (GstElement * object,
                                          guint arg0,
                                          guint arg1,
                                          gpointer user_data);

  "on-timeout" :  void user_function (GstElement * object,
                                      guint arg0,
                                      guint arg1,
                                      gpointer user_data);

  "on-sender-timeout" :  void user_function (GstElement * object,
                                             guint arg0,
                                             guint arg1,
                                             gpointer user_data);

  "on-npt-stop" :  void user_function (GstElement * object,
                                       guint arg0,
                                       guint arg1,
                                       gpointer user_data);

  "request-rtp-encoder" :  GstElement * user_function (GstElement * object,
                                                       guint arg0,
                                                       gpointer user_data);

  "request-rtp-decoder" :  GstElement * user_function (GstElement * object,
                                                       guint arg0,
                                                       gpointer user_data);

  "request-rtcp-encoder" :  GstElement * user_function (GstElement * object,
                                                        guint arg0,
                                                        gpointer user_data);

  "request-rtcp-decoder" :  GstElement * user_function (GstElement * object,
                                                        guint arg0,
                                                        gpointer user_data);

  "request-jitterbuffer" :  GstElement * user_function (GstElement * object,
                                                        guint arg0,
                                                        gpointer user_data);

  "new-jitterbuffer" :  void user_function (GstElement * object,
                                            GstElement * arg0,
                                            guint arg1,
                                            guint arg2,
                                            gpointer user_data);

  "new-storage" :  void user_function (GstElement * object,
                                       GstElement * arg0,
                                       guint arg1,
                                       gpointer user_data);

  "request-aux-sender" :  GstElement * user_function (GstElement * object,
                                                      guint arg0,
                                                      gpointer user_data);

  "request-aux-receiver" :  GstElement * user_function (GstElement * object,
                                                        guint arg0,
                                                        gpointer user_data);

  "request-fec-decoder" :  GstElement * user_function (GstElement * object,
                                                       guint arg0,
                                                       gpointer user_data);

  "request-fec-decoder-full" :  GstElement * user_function (GstElement * object,
                                                            guint arg0,
                                                            guint arg1,
                                                            guint arg2,
                                                            gpointer user_data);

  "request-fec-encoder" :  GstElement * user_function (GstElement * object,
                                                       guint arg0,
                                                       gpointer user_data);

  "on-new-sender-ssrc" :  void user_function (GstElement * object,
                                              guint arg0,
                                              guint arg1,
                                              gpointer user_data);

  "on-sender-ssrc-active" :  void user_function (GstElement * object,
                                                 guint arg0,
                                                 guint arg1,
                                                 gpointer user_data);

Element Actions:

  "clear-pt-map" -> void  :  g_signal_emit_by_name (element, "clear-pt-map");

  "reset-sync" -> void  :  g_signal_emit_by_name (element, "reset-sync");

  "get-session" -> GstElement  * :  g_signal_emit_by_name (element, "get-session",
                                                           guint arg0,
                                                           GstElement * * p_return_value);

  "get-internal-session" -> RTPSession  * :  g_signal_emit_by_name (element, "get-internal-session",
                                                                    guint arg0,
                                                                    RTPSession * * p_return_value);

  "get-internal-storage" -> GObject  * :  g_signal_emit_by_name (element, "get-internal-storage",
                                                                 guint arg0,
                                                                 GObject * * p_return_value);

  "get-storage" -> GstElement  * :  g_signal_emit_by_name (element, "get-storage",
                                                           guint arg0,
                                                           GstElement * * p_return_value);

  "clear-ssrc" -> void  :  g_signal_emit_by_name (element, "clear-ssrc",
                                                  guint arg0,
                                                  guint arg1);
ehfd commented 1 month ago
Factory Details:
  Rank                     primary (256)
  Long-name                x265enc
  Klass                    Codec/Encoder/Video
  Description              H265 Encoder
  Author                   Thijs Vermeir <thijs.vermeir@barco.com>
  Documentation            https://gstreamer.freedesktop.org/documentation/x265/#x265enc-page

Plugin Details:
  Name                     x265
  Description              x265-based H265 plugins
  Filename                 /opt/gstreamer/lib/x86_64-linux-gnu/gstreamer-1.0/libgstx265.so
  Version                  1.25.0.1
  License                  GPL
  Source module            gst-plugins-bad
  Documentation            https://gstreamer.freedesktop.org/documentation/x265/
  Binary package           GStreamer Bad Plug-ins git
  Origin URL               Unknown package origin

GObject
 +----GInitiallyUnowned
       +----GstObject
             +----GstElement
                   +----GstVideoEncoder
                         +----GstX265Enc

Implemented Interfaces:
  GstPreset

Pad Templates:
  SINK template: 'sink'
    Availability: Always
    Capabilities:
      video/x-raw
              framerate: [ 0/1, 2147483647/1 ]
                  width: [ 16, 2147483647 ]
                 height: [ 16, 2147483647 ]
                 format: { (string)Y444, (string)Y42B, (string)I420, (string)Y444_10LE, (string)I422_10LE, (string)I420_10LE, (string)Y444_12LE, (string)I422_12LE, (string)I420_12LE }

  SRC template: 'src'
    Availability: Always
    Capabilities:
      video/x-h265
              framerate: [ 0/1, 2147483647/1 ]
                  width: [ 16, 2147483647 ]
                 height: [ 16, 2147483647 ]
          stream-format: byte-stream
              alignment: au
                profile: { (string)main, (string)main-still-picture, (string)main-intra, (string)main-444, (string)main-444-intra, (string)main-444-still-picture, (string)main-10, (string)main-10-intra, (string)main-422-10, (string)main-422-10-intra, (string)main-444-10, (string)main-444-10-intra, (string)main-12, (string)main-12-intra, (string)main-422-12, (string)main-422-12-intra, (string)main-444-12, (string)main-444-12-intra }

Element has no clocking capabilities.
Element has no URI handling capabilities.

Pads:
  SINK: 'sink'
    Pad Template: 'sink'
  SRC: 'src'
    Pad Template: 'src'

Element Properties:

  bitrate             : Bitrate in kbit/sec
                        flags: readable, writable, changeable in NULL, READY, PAUSED or PLAYING state
                        Unsigned Integer. Range: 1 - 102400 Default: 2048

  key-int-max         : Maximal distance between two key-frames (0 = x265 default / 250)
                        flags: readable, writable
                        Integer. Range: 0 - 2147483647 Default: 0

  log-level           : x265 log level
                        flags: readable, writable
                        Enum "GstX265LogLevel" Default: -1, "none"
                           (-1): none             - No logging
                           (0): error            - Error
                           (1): warning          - Warning
                           (2): info             - Info
                           (3): debug            - Debug
                           (4): full             - Full

  min-force-key-unit-interval: Minimum interval between force-keyunit requests in nanoseconds
                        flags: readable, writable
                        Unsigned Integer64. Range: 0 - 18446744073709551615 Default: 0

  name                : The name of the object
                        flags: readable, writable
                        String. Default: "x265enc0"

  option-string       : String of x265 options (overridden by element properties) in the format "key1=value1:key2=value2".
                        flags: readable, writable
                        String. Default: ""

  parent              : The parent of the object
                        flags: readable, writable
                        Object of type "GstObject"

  qos                 : Handle Quality-of-Service events from downstream
                        flags: readable, writable
                        Boolean. Default: false

  qp                  : QP for P slices in (implied) CQP mode (-1 = disabled)
                        flags: readable, writable
                        Integer. Range: -1 - 51 Default: -1

  speed-preset        : Preset name for speed/quality tradeoff options
                        flags: readable, writable
                        Enum "GstX265SpeedPreset" Default: 6, "medium"
                           (0): No preset        - No preset
                           (1): ultrafast        - ultrafast
                           (2): superfast        - superfast
                           (3): veryfast         - veryfast
                           (4): faster           - faster
                           (5): fast             - fast
                           (6): medium           - medium
                           (7): slow             - slow
                           (8): slower           - slower
                           (9): veryslow         - veryslow
                           (10): placebo          - placebo

  tune                : Preset name for tuning options
                        flags: readable, writable
                        Enum "GstX265Tune" Default: 2, "ssim"
                           (0): No tunning       - No tunning
                           (1): psnr             - psnr
                           (2): ssim             - ssim
                           (3): grain            - grain
                           (4): zerolatency      - zerolatency
                           (5): fastdecode       - fastdecode
                           (6): animation        - animation
Factory Details:
  Rank                     primary (256)
  Long-name                rav1e AV1 encoder
  Klass                    Encoder/Video
  Description              rav1e AV1 encoder
  Author                   Sebastian Dr?ge <sebastian@centricular.com>
  Documentation            https://gstreamer.freedesktop.org/documentation/rav1e/#rav1enc-page

Plugin Details:
  Name                     rav1e
  Description              GStreamer rav1e AV1 Encoder Plugin
  Filename                 /opt/gstreamer/lib/x86_64-linux-gnu/gstreamer-1.0/libgstrav1e.so
  Version                  0.12.3-5f6ed181
  License                  MIT/X11
  Source module            gst-plugin-rav1e
  Documentation            https://gstreamer.freedesktop.org/documentation/rav1e/
  Source release date      2024-03-21
  Binary package           gst-plugin-rav1e
  Origin URL               https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs

GObject
 +----GInitiallyUnowned
       +----GstObject
             +----GstElement
                   +----GstVideoEncoder
                         +----GstRav1Enc

Implemented Interfaces:
  GstPreset

Pad Templates:
  SINK template: 'sink'
    Availability: Always
    Capabilities:
      video/x-raw
                 format: { (string)I420, (string)Y42B, (string)Y444, (string)I420_10LE, (string)I422_10LE, (string)Y444_10LE, (string)I420_12LE, (string)I422_12LE, (string)Y444_12LE, (string)GRAY8 }
                  width: [ 1, 2147483647 ]
                 height: [ 1, 2147483647 ]
              framerate: [ 0/1, 2147483647/1 ]

  SRC template: 'src'
    Availability: Always
    Capabilities:
      video/x-av1
          stream-format: obu-stream
              alignment: tu

Element has no clocking capabilities.
Element has no URI handling capabilities.

Pads:
  SINK: 'sink'
    Pad Template: 'sink'
  SRC: 'src'
    Pad Template: 'src'

Element Properties:

  bitrate             : Bitrate
                        flags: readable, writable, changeable only in NULL or READY state
                        Integer. Range: 0 - 2147483647 Default: 0

  error-resilient     : Error Resilient
                        flags: readable, writable, changeable only in NULL or READY state
                        Boolean. Default: false

  low-latency         : Low Latency
                        flags: readable, writable, changeable only in NULL or READY state
                        Boolean. Default: false

  max-key-frame-interval: Max Key Frame Interval
                        flags: readable, writable, changeable only in NULL or READY state
                        Unsigned Integer64. Range: 0 - 18446744073709551615 Default: 240

  min-force-key-unit-interval: Minimum interval between force-keyunit requests in nanoseconds
                        flags: readable, writable
                        Unsigned Integer64. Range: 0 - 18446744073709551615 Default: 0

  min-key-frame-interval: Min Key Frame Interval
                        flags: readable, writable, changeable only in NULL or READY state
                        Unsigned Integer64. Range: 0 - 18446744073709551615 Default: 12

  min-quantizer       : Min Quantizer
                        flags: readable, writable, changeable only in NULL or READY state
                        Unsigned Integer. Range: 0 - 255 Default: 0

  name                : The name of the object
                        flags: readable, writable
                        String. Default: "rav1enc0"

  parent              : The parent of the object
                        flags: readable, writable
                        Object of type "GstObject"

  qos                 : Handle Quality-of-Service events from downstream
                        flags: readable, writable
                        Boolean. Default: false

  quantizer           : Quantizer
                        flags: readable, writable, changeable only in NULL or READY state
                        Unsigned Integer. Range: 0 - 4294967295 Default: 100

  rdo-lookahead-frames: RDO Lookahead Frames
                        flags: readable, writable, changeable only in NULL or READY state
                        Integer. Range: -1 - 2147483647 Default: -1

  reservoir-frame-delay: Reservoir Frame Delay
                        flags: readable, writable, changeable only in NULL or READY state
                        Integer. Range: -2147483648 - 2147483647 Default: -2147483648

  speed-preset        : Speed preset (10 fastest, 0 slowest)
                        flags: readable, writable, changeable only in NULL or READY state
                        Unsigned Integer. Range: 0 - 10 Default: 6

  switch-frame-interval: Switch Frame Interval
                        flags: readable, writable, changeable only in NULL or READY state
                        Unsigned Integer64. Range: 0 - 18446744073709551615 Default: 0

  threads             : Threads
                        flags: readable, writable, changeable only in NULL or READY state
                        Unsigned Integer. Range: 0 - 4294967295 Default: 0

  tile-cols           : Tile Cols
                        flags: readable, writable, changeable only in NULL or READY state
                        Unsigned Integer. Range: 0 - 4294967295 Default: 0

  tile-rows           : Tile Rows
                        flags: readable, writable, changeable only in NULL or READY state
                        Unsigned Integer. Range: 0 - 4294967295 Default: 0

  tiles               : Tiles
                        flags: readable, writable, changeable only in NULL or READY state
                        Unsigned Integer. Range: 0 - 4294967295 Default: 0

  tune                : Tune
                        flags: readable, writable, changeable only in NULL or READY state
                        Enum "GstRav1eEncTune" Default: 1, "psychovisual"
                           (0): psnr             - Psnr
                           (1): psychovisual     - Psychovisual
Factory Details:
  Rank                     secondary (128)
  Long-name                SvtAv1Enc
  Klass                    Codec/Encoder/Video
  Description              Scalable Video Technology for AV1 Encoder (SVT-AV1 Encoder)
  Author                   Jun Tian <jun.tian@intel.com> Xavier Hallade <xavier.hallade@intel.com>
  Documentation            https://gstreamer.freedesktop.org/documentation/svtav1/#svtav1enc-page

Plugin Details:
  Name                     svtav1
  Description              Scalable Video Technology for AV1 (SVT-AV1)
  Filename                 /opt/selkies-gstreamer/lib/gstreamer-1.0/libgstsvtav1.so
  Version                  1.24.2
  License                  LGPL
  Source module            gst-plugins-bad
  Documentation            https://gstreamer.freedesktop.org/documentation/svtav1/
  Source release date      2024-04-09
  Binary package           GStreamer Bad Plug-ins
  Origin URL               Unknown package origin

GObject
 +----GInitiallyUnowned
       +----GstObject
             +----GstElement
                   +----GstVideoEncoder
                         +----GstSvtAv1Enc

Implemented Interfaces:
  GstPreset

Pad Templates:
  SINK template: 'sink'
    Availability: Always
    Capabilities:
      video/x-raw
                 format: { (string)I420, (string)I420_10LE }
                  width: [ 64, 16384 ]
                 height: [ 64, 8704 ]
              framerate: [ 0/1, 2147483647/1 ]

  SRC template: 'src'
    Availability: Always
    Capabilities:
      video/x-av1
          stream-format: obu-stream
              alignment: tu
                  width: [ 64, 16384 ]
                 height: [ 64, 8704 ]
              framerate: [ 0/1, 2147483647/1 ]

Element has no clocking capabilities.
Element has no URI handling capabilities.

Pads:
  SINK: 'sink'
    Pad Template: 'sink'
  SRC: 'src'
    Pad Template: 'src'

Element Properties:

  cqp                 : Quantization parameter used in CQP mode (-1 is disabled)
                        flags: readable, writable
                        Integer. Range: -1 - 63 Default: -1

  crf                 : Quantization parameter used in CRF mode (-1 is disabled)
                        flags: readable, writable
                        Integer. Range: -1 - 63 Default: 35

  intra-period-length : Period of Intra Frames insertion (-2 is auto, -1 no updates)
                        flags: readable, writable
                        Integer. Range: -2 - 2147483647 Default: -2

  intra-refresh-type  : CRA (open GOP)or IDR frames (closed GOP)
                        flags: readable, writable
                        Enum "GstSvtAv1EncIntraRefreshType" Default: 2, "IDR"
                           (1): CRA              - Open GOP
                           (2): IDR              - Closed GOP

  logical-processors  : Number of logical CPU cores to be used. 0: auto
                        flags: readable, writable
                        Unsigned Integer. Range: 0 - 4294967295 Default: 0

  max-bitrate         : Maximum bitrate in kbits/sec. Enables VBR mode if a different target-bitrate is provided
                        flags: readable, writable, changeable in NULL, READY, PAUSED or PLAYING state
                        Unsigned Integer. Range: 0 - 100000 Default: 0

  max-qp-allowed      : Maximum QP value allowed for rate control use Only used in CBR and VBR mode.
                        flags: readable, writable
                        Unsigned Integer. Range: 0 - 63 Default: 63

  maximum-buffer-size : Maximum buffer size in milliseconds. Only used in CBR mode.
                        flags: readable, writable
                        Unsigned Integer. Range: 20 - 10000 Default: 1000

  min-force-key-unit-interval: Minimum interval between force-keyunit requests in nanoseconds
                        flags: readable, writable
                        Unsigned Integer64. Range: 0 - 18446744073709551615 Default: 0

  min-qp-allowed      : Minimum QP value allowed for rate control use Only used in CBR and VBR mode.
                        flags: readable, writable
                        Unsigned Integer. Range: 0 - 63 Default: 1

  name                : The name of the object
                        flags: readable, writable
                        String. Default: "svtav1enc0"

  parameters-string   : Colon-delimited list of key=value pairs of additional parameters to set
                        flags: readable, writable
                        String. Default: null

  parent              : The parent of the object
                        flags: readable, writable
                        Object of type "GstObject"

  preset              : Quality vs density tradeoff point that the encoding is to be performed at (0 is the highest quality, 13 is the highest speed)
                        flags: readable, writable
                        Unsigned Integer. Range: 0 - 13 Default: 10

  qos                 : Handle Quality-of-Service events from downstream
                        flags: readable, writable
                        Boolean. Default: false

  target-bitrate      : Target bitrate in kbits/sec. Enables CBR or VBR mode
                        flags: readable, writable
                        Unsigned Integer. Range: 0 - 100000 Default: 0

  target-socket       : Target CPU socket to run on. -1: all available
                        flags: readable, writable
                        Integer. Range: -1 - 15 Default: -1
Factory Details:
  Rank                     primary (256)
  Long-name                AV1 Encoder
  Klass                    Codec/Encoder/Video
  Description              Encode AV1 video streams
  Author                   Sean DuBois <sean@siobud.com>
  Documentation            https://gstreamer.freedesktop.org/documentation/aom/av1enc.html

Plugin Details:
  Name                     aom
  Description              AOM plugin library
  Filename                 /opt/selkies-gstreamer/lib/gstreamer-1.0/libgstaom.so
  Version                  1.24.2
  License                  LGPL
  Source module            gst-plugins-bad
  Documentation            https://gstreamer.freedesktop.org/documentation/aom/
  Source release date      2024-04-09
  Binary package           GStreamer Bad Plug-ins source release
  Origin URL               Unknown package origin

GObject
 +----GInitiallyUnowned
       +----GstObject
             +----GstElement
                   +----GstVideoEncoder
                         +----GstAV1Enc

Implemented Interfaces:
  GstPreset

Pad Templates:
  SINK template: 'sink'
    Availability: Always
    Capabilities:
      video/x-raw
                 format: { (string)I420, (string)Y42B, (string)Y444, (string)YV12 }
              framerate: [ 0/1, 2147483647/1 ]
                  width: [ 4, 2147483647 ]
                 height: [ 4, 2147483647 ]

  SRC template: 'src'
    Availability: Always
    Capabilities:
      video/x-av1
          stream-format: obu-stream
              alignment: tu

Element has no clocking capabilities.
Element has no URI handling capabilities.

Pads:
  SINK: 'sink'
    Pad Template: 'sink'
  SRC: 'src'
    Pad Template: 'src'

Element Properties:

  buf-initial-sz      : Decoder buffer initial size, expressed in units of time (milliseconds)
                        flags: readable, writable
                        Unsigned Integer. Range: 0 - 4294967295 Default: 4000

  buf-optimal-sz      : Decoder buffer optimal size, expressed in units of time (milliseconds)
                        flags: readable, writable
                        Unsigned Integer. Range: 0 - 4294967295 Default: 5000

  buf-sz              : Decoder buffer size, expressed in units of time (milliseconds)
                        flags: readable, writable
                        Unsigned Integer. Range: 0 - 4294967295 Default: 6000

  cpu-used            : CPU Used. A Value greater than 0 will increase encoder speed at the expense of quality.
                        flags: readable, writable
                        Integer. Range: 0 - 10 Default: 0

  drop-frame          : Temporal resampling configuration, drop frames as a strategy to meet its target data rate Set to zero (0) to disable this feature.
                        flags: readable, writable
                        Unsigned Integer. Range: 0 - 4294967295 Default: 0

  enc-pass            : Current phase for multi-pass encoding or @GST_AV1_ENC_ONE_PASS for single pass
                        flags: readable, writable
                        Enum "GstAV1EncEncPass" Default: 0, "one-pass"
                           (0): one-pass         - Single pass mode
                           (1): first-pass       - First pass of multi-pass mode
                           (2): second-pass      - Second pass of multi-pass mode
                           (3): third-pass       - Third pass of multi-pass mode

  end-usage           : Rate control algorithm to use, indicates the end usage of this stream
                        flags: readable, writable
                        Enum "GstAV1EncEndUsageMode" Default: 0, "vbr"
                           (0): vbr              - Variable Bit Rate Mode
                           (1): cbr              - Constant Bit Rate Mode
                           (2): cq               - Constrained Quality Mode
                           (3): q                - Constant Quality Mode

  keyframe-max-dist   : Maximum distance between keyframes (number of frames)
                        flags: readable, writable
                        Integer. Range: 0 - 2147483647 Default: 30

  keyframe-mode       : Determines whether keyframes are placed automatically by the encoder
                        flags: readable, writable
                        Enum "GstAV1EncKFMode" Default: 1, "auto"
                           (1): auto             - Encoder determines optimal keyframe placement automatically
                           (0): disabled         - Encoder does not place keyframes

  lag-in-frames       : Maximum number of future frames the encoder is allowed to consume before producing the current output frame. Set value to 0 for disabling lagged encoding.
                        flags: readable, writable
                        Unsigned Integer. Range: 0 - 4294967295 Default: 0

  max-quantizer       : Maximum (worst quality) quantizer
                        flags: readable, writable
                        Unsigned Integer. Range: 0 - 4294967295 Default: 0

  min-force-key-unit-interval: Minimum interval between force-keyunit requests in nanoseconds
                        flags: readable, writable
                        Unsigned Integer64. Range: 0 - 18446744073709551615 Default: 0

  min-quantizer       : Minimum (best quality) quantizer
                        flags: readable, writable
                        Unsigned Integer. Range: 0 - 4294967295 Default: 0

  name                : The name of the object
                        flags: readable, writable
                        String. Default: "av1enc0"

  overshoot-pct       : Rate control adaptation overshoot control
                        flags: readable, writable
                        Unsigned Integer. Range: 0 - 1000 Default: 25

  parent              : The parent of the object
                        flags: readable, writable
                        Object of type "GstObject"

  qos                 : Handle Quality-of-Service events from downstream
                        flags: readable, writable
                        Boolean. Default: false

  resize-denominator  : Frame resize denominator, assuming 8 as the numerator
                        flags: readable, writable
                        Unsigned Integer. Range: 8 - 16 Default: 8

  resize-kf-denominator: Frame resize keyframe denominator, assuming 8 as the numerator
                        flags: readable, writable
                        Unsigned Integer. Range: 8 - 16 Default: 8

  resize-mode         : Frame resize mode
                        flags: readable, writable
                        Enum "GstAV1EncResizeMode" Default: 0, "none"
                           (0): none             - No frame resizing allowed
                           (1): fixed            - All frames are coded at the specified scale
                           (2): random           - All frames are coded at a random scale

  row-mt              : Enable row based multi-threading
                        flags: readable, writable
                        Boolean. Default: true

  superres-denominator: Frame super-resolution denominator, used only by SUPERRES_FIXED mode
                        flags: readable, writable
                        Unsigned Integer. Range: 8 - 16 Default: 8

  superres-kf-denominator: Keyframe super-resolution denominator
                        flags: readable, writable
                        Unsigned Integer. Range: 8 - 16 Default: 8

  superres-kf-qthresh : Keyframe super-resolution qindex threshold, used only by SUPERRES_QTHRESH mode
                        flags: readable, writable
                        Unsigned Integer. Range: 1 - 63 Default: 63

  superres-mode       : It integrates upscaling after the encode/decode process
                        flags: readable, writable
                        Enum "GstAV1EncSuperresMode" Default: 0, "none"
                           (0): none             - No frame superres allowed
                           (1): fixed            - All frames are coded at the specified scale and super-resolved
                           (2): random           - All frames are coded at a random scale and super-resolved
                           (3): qthresh          - Superres scale for a frame is determined based on q_index

  superres-qthresh    : Frame super-resolution qindex threshold, used only by SUPERRES_QTHRESH mode
                        flags: readable, writable
                        Unsigned Integer. Range: 1 - 63 Default: 63

  target-bitrate      : Target bitrate, in kilobits per second
                        flags: readable, writable
                        Unsigned Integer. Range: 1 - 4294967295 Default: 256

  threads             : Max number of threads to use encoding, set to 0 determine the approximate number of threads that the system schedule
                        flags: readable, writable
                        Unsigned Integer. Range: 0 - 4294967295 Default: 0

  tile-columns        : Partition into separate vertical tile columns from image frame which can enable parallel encoding
                        flags: readable, writable
                        Unsigned Integer. Range: 0 - 6 Default: 0

  tile-rows           : Partition into separate horizontal tile rows from image frame which can enable parallel encoding
                        flags: readable, writable
                        Unsigned Integer. Range: 0 - 6 Default: 0

  undershoot-pct      : Rate control adaptation undershoot control
                        flags: readable, writable
                        Unsigned Integer. Range: 0 - 1000 Default: 25

  usage-profile       : Usage profile is used to guide the default config for the encoder
                        flags: readable, writable
                        Enum "GstAV1EncUsageProfile" Default: 0, "good-quality"
                           (0): good-quality     - Good Quality profile
                           (1): realtime         - Realtime profile
                           (2): all-intra        - All Intra profile
ehfd commented 1 month ago

openh264enc, vah264enc, x265enc, nv(cuda)h264enc, nv(cuda)h265enc, vah265enc, vavp9enc (available GStreamer >= 1.25), vaav1enc, svtav1enc, AOM av1enc, rav1enc have been implemented.

However, a lot of these encoders have not been optimized.

Contributions for optimized encoder or payloader settings are welcome (consult https://github.com/LizardByte/Sunshine/blob/nightly/src/video.cpp).

nv(cuda)av1enc is in order for GStreamer 1.26, thus for a later release (likely 2025 when Ubuntu 20.04 is EOL).

https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6754

ehfd commented 1 month ago

https://developer.apple.com/documentation/safari-technology-preview-release-notes/stp-release-179#Media The addition of H.265 codecs does not necessarily mean that this will work now. H.265 on Safari (along with a fix for a color issue in VP9) will arrive in Safari 17.9.