Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. General and Desktop
  4. GStreamer : Pipeline to connect VNC server and Display/Record the remote GUI
Forum Updated to NodeBB v4.3 + New Features

GStreamer : Pipeline to connect VNC server and Display/Record the remote GUI

Scheduled Pinned Locked Moved Solved General and Desktop
35 Posts 3 Posters 16.2k Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • jsulmJ jsulm

    @LeLev said in GStreamer : understanding the concept of 'pipeline':

    I can't figure out how a window will pop up.

    So, you start the app but no window pops up?
    Then probably something is wrong. I don't know what. You can debug and see what happens.

    ODБOïO Offline
    ODБOïO Offline
    ODБOï
    wrote on last edited by ODБOï
    #15

    @jsulm said in GStreamer : understanding the concept of 'pipeline':

    So, you start the app but no window pops up?

    Yes,

    @jsulm said in GStreamer : understanding the concept of 'pipeline':

    probably something is wrong

    yes, with putenv("GST_DEBUG=2"); i got :

    0:00:03.253981299  1536 0000000037E010C0 WARN             souphttpsrc gstsouphttpsrc.c:1379:gst_soup_http_src_parse_status:<source> error: Secure connection setup failed.
    0:00:03.254006642  1536 0000000037E010C0 WARN             souphttpsrc gstsouphttpsrc.c:1379:gst_soup_http_src_parse_status:<source> error: TLS/SSL support not available; install glib-networking (6), URL: https://www.freedesktop.org/software/gstreamer-sdk/data/media/sintel_trailer-480p.webm, Redirect to: (NULL)
    0:00:03.254067912  1536 0000000037E010C0 WARN                 basesrc gstbasesrc.c:3055:gst_base_src_loop:<source> error: Internal data stream error.
    0:00:03.254105765  1536 0000000037E010C0 WARN                 basesrc gstbasesrc.c:3055:gst_base_src_loop:<source> error: streaming stopped, reason error (-5)
    0:00:03.254180509  1536 0000000037E010C0 WARN                typefind gsttypefindelement.c:991:gst_type_find_element_chain_do_typefinding:<typefindelement0> error: Stream doesn't contain enough data.
    0:00:03.254192057  1536 0000000037E010C0 WARN                typefind gsttypefindelement.c:991:gst_type_find_element_chain_do_typefinding:<typefindelement0> error: Can't typefind stream
    

    i will install glib-networking

    jsulmJ 1 Reply Last reply
    0
    • ODБOïO ODБOï

      @jsulm said in GStreamer : understanding the concept of 'pipeline':

      So, you start the app but no window pops up?

      Yes,

      @jsulm said in GStreamer : understanding the concept of 'pipeline':

      probably something is wrong

      yes, with putenv("GST_DEBUG=2"); i got :

      0:00:03.253981299  1536 0000000037E010C0 WARN             souphttpsrc gstsouphttpsrc.c:1379:gst_soup_http_src_parse_status:<source> error: Secure connection setup failed.
      0:00:03.254006642  1536 0000000037E010C0 WARN             souphttpsrc gstsouphttpsrc.c:1379:gst_soup_http_src_parse_status:<source> error: TLS/SSL support not available; install glib-networking (6), URL: https://www.freedesktop.org/software/gstreamer-sdk/data/media/sintel_trailer-480p.webm, Redirect to: (NULL)
      0:00:03.254067912  1536 0000000037E010C0 WARN                 basesrc gstbasesrc.c:3055:gst_base_src_loop:<source> error: Internal data stream error.
      0:00:03.254105765  1536 0000000037E010C0 WARN                 basesrc gstbasesrc.c:3055:gst_base_src_loop:<source> error: streaming stopped, reason error (-5)
      0:00:03.254180509  1536 0000000037E010C0 WARN                typefind gsttypefindelement.c:991:gst_type_find_element_chain_do_typefinding:<typefindelement0> error: Stream doesn't contain enough data.
      0:00:03.254192057  1536 0000000037E010C0 WARN                typefind gsttypefindelement.c:991:gst_type_find_element_chain_do_typefinding:<typefindelement0> error: Can't typefind stream
      

      i will install glib-networking

      jsulmJ Offline
      jsulmJ Offline
      jsulm
      Lifetime Qt Champion
      wrote on last edited by
      #16

      @LeLev You could try to play a video from a non-SSL (non-HTTPS) URL.

      https://forum.qt.io/topic/113070/qt-code-of-conduct

      ODБOïO 1 Reply Last reply
      1
      • jsulmJ jsulm

        @LeLev You could try to play a video from a non-SSL (non-HTTPS) URL.

        ODБOïO Offline
        ODБOïO Offline
        ODБOï
        wrote on last edited by
        #17

        @jsulm That worked thank you!

        ODБOïO 1 Reply Last reply
        0
        • ODБOïO ODБOï

          @jsulm That worked thank you!

          ODБOïO Offline
          ODБOïO Offline
          ODБOï
          wrote on last edited by
          #18

          Can please someone help me to complete this pipeline so it can record the VNC remote desktop to video file and/or show it with
          playbin ?
          pipeline = gst_parse_launch("rfbsrc host=xx.xx.xx.xx port=5900 password=passw view-only=true",NULL);

          1 Reply Last reply
          0
          • SGaistS Offline
            SGaistS Offline
            SGaist
            Lifetime Qt Champion
            wrote on last edited by
            #19

            Use the tee plugin.

            Interested in AI ? www.idiap.ch
            Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

            ODБOïO 1 Reply Last reply
            1
            • SGaistS SGaist

              Use the tee plugin.

              ODБOïO Offline
              ODБOïO Offline
              ODБOï
              wrote on last edited by ODБOï
              #20

              @SGaist thank you, I tryed to use tee, but that is more complicated to do, i actually don't want to Watch and Save/record.
              I would like to only save the video without displaying it.

              after some houres i got this broken pipeline..

              I have lot of troubles on how to set up the format for the video and write it to a file
              I use ultraVnc server

              "rfbsrc host=xx.xx.xx.xx port=5900 password=pw view-only=true   TODO : set up video format    ! mpegtsmux ! filesink location=testvideo.mp4"
              

              i have this output

              ** (QVNCClient.exe:10252): CRITICAL **: gst_video_info_set_format: assertion 'format != GST_VIDEO_FORMAT_UNKNOWN' failed
              
              ** (QVNCClient.exe:10252): CRITICAL **: gst_video_info_to_caps: assertion 'info->finfo->format != GST_VIDEO_FORMAT_UNKNOWN' failed
              
              (QVNCClient.exe:10252): GStreamer-CRITICAL **: gst_event_new_caps: assertion 'caps != NULL' failed
              
              (QVNCClient.exe:10252): GStreamer-CRITICAL **: gst_pad_push_event: assertion 'GST_IS_EVENT (event)' failed
              
              (QVNCClient.exe:10252): GStreamer-CRITICAL **: gst_mini_object_unref: assertion 'mini_object != NULL' failed
              0:00:00.737522311 10252 0000000036FDDBC0 WARN                 basesrc gstbasesrc.c:3275:gst_base_src_prepare_allocation:<rfbsrc0> Subclass failed to decide allocation
              0:00:00.737604753 10252 0000000036FDDBC0 WARN                 basesrc gstbasesrc.c:3055:gst_base_src_loop:<rfbsrc0> error: Internal data stream error.
              0:00:00.737644531 10252 0000000036FDDBC0 WARN                 basesrc gstbasesrc.c:3055:gst_base_src_loop:<rfbsrc0> error: streaming stopped, reason not-negotiated (-4)
              This program is linked against GStreamer 1.14.3 
              

              THX

              1 Reply Last reply
              0
              • SGaistS Offline
                SGaistS Offline
                SGaist
                Lifetime Qt Champion
                wrote on last edited by
                #21

                You have here an example of pipeline with h264 recording.

                Interested in AI ? www.idiap.ch
                Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                ODБOïO 1 Reply Last reply
                1
                • SGaistS SGaist

                  You have here an example of pipeline with h264 recording.

                  ODБOïO Offline
                  ODБOïO Offline
                  ODБOï
                  wrote on last edited by ODБOï
                  #22

                  @SGaist hi,
                  I am still struggling with Gstreamer.

                  Could you please try to see where the probleme is ?
                  i try this pipeline :

                  gst-launch-1.0 -v rfbsrc host=xx.xx.x.xx port=5900 password=passw view-only=true !
                  tee name = t ! queue ! omxh264enc ! 
                  'video/x-h264, stream-format=(string)byte-stream' ! h264parse ! qtmux ! 
                  filesink location=test.mp4 t. ! queue ! videoscale ! video/x-raw, 
                  width=480,height=270 ! xvimagesink -e sync=false
                  

                  OUTPUT :
                  *(gst-launch-1.0:8672): GStreamer-CRITICAL *: gst_element_make_from_uri: assertion 'gst_uri_is_valid (uri)' failed
                  WARNING: erroneous pipeline: no element "omxh264enc"

                  I downloaded and installed x264 from here but i still get same error

                  Maybe there is a simple way to just connect to VNC srv and only record without displaying.
                  Or a simple tool that i can start with QProcess

                  1 Reply Last reply
                  0
                  • ODБOïO Offline
                    ODБOïO Offline
                    ODБOï
                    wrote on last edited by ODБOï
                    #23

                    i tryed like this also :

                    gst-launch-1.0 rfbsrc host=xx.x.x.xx port=xxxx password=xxxx view-only=true ! videoconvert ! x264enc ! flvmux ! filesink location=xyz.flv
                    

                    OUTPUT : WARNING : erroneous pipeline : no element "x264enc"

                    I found "x264enc" is part of gst-plugins-ugly but cant fugure out how to install tath missing plugin. I downloaded it from here

                    I also found a tool : vnc2flv
                    i need to build it with python but when i try i get :

                    error print version
                    Missing parentheses in call to 'print'. Did you mean print(version)

                    jsulmJ 1 Reply Last reply
                    0
                    • ODБOïO ODБOï

                      i tryed like this also :

                      gst-launch-1.0 rfbsrc host=xx.x.x.xx port=xxxx password=xxxx view-only=true ! videoconvert ! x264enc ! flvmux ! filesink location=xyz.flv
                      

                      OUTPUT : WARNING : erroneous pipeline : no element "x264enc"

                      I found "x264enc" is part of gst-plugins-ugly but cant fugure out how to install tath missing plugin. I downloaded it from here

                      I also found a tool : vnc2flv
                      i need to build it with python but when i try i get :

                      error print version
                      Missing parentheses in call to 'print'. Did you mean print(version)

                      jsulmJ Offline
                      jsulmJ Offline
                      jsulm
                      Lifetime Qt Champion
                      wrote on last edited by
                      #24

                      @LeLev said in GStreamer : understanding the concept of 'pipeline':

                      gst-plugins-ugly but cant fugure out how to install tath missing plugin

                      apt install gstreamer1.0-plugins-ugly
                      

                      https://forum.qt.io/topic/113070/qt-code-of-conduct

                      ODБOïO 1 Reply Last reply
                      1
                      • jsulmJ jsulm

                        @LeLev said in GStreamer : understanding the concept of 'pipeline':

                        gst-plugins-ugly but cant fugure out how to install tath missing plugin

                        apt install gstreamer1.0-plugins-ugly
                        
                        ODБOïO Offline
                        ODБOïO Offline
                        ODБOï
                        wrote on last edited by
                        #25

                        @jsulm hi ,
                        I did not mension I'm using windows.

                        1 Reply Last reply
                        0
                        • SGaistS Offline
                          SGaistS Offline
                          SGaist
                          Lifetime Qt Champion
                          wrote on last edited by
                          #26

                          @LeLev said in GStreamer : understanding the concept of 'pipeline':

                          error print version
                          Missing parentheses in call to 'print'. Did you mean print(version)

                          Because the code is written for Python 2 and you are using Python 3

                          What set of plugins did you get when installing on Windows ?

                          Interested in AI ? www.idiap.ch
                          Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                          ODБOïO 1 Reply Last reply
                          1
                          • SGaistS SGaist

                            @LeLev said in GStreamer : understanding the concept of 'pipeline':

                            error print version
                            Missing parentheses in call to 'print'. Did you mean print(version)

                            Because the code is written for Python 2 and you are using Python 3

                            What set of plugins did you get when installing on Windows ?

                            ODБOïO Offline
                            ODБOïO Offline
                            ODБOï
                            wrote on last edited by
                            #27

                            hi @SGaist thank you,
                            please see my output for gst-inspect-1.0

                            C:\Users\lev>gst-inspect-1.0
                            gio:  giosink: GIO sink
                            gio:  giosrc: GIO source
                            gio:  giostreamsink: GIO stream sink
                            gio:  giostreamsrc: GIO stream source
                            taglib:  id3v2mux: TagLib-based ID3v2 Muxer
                            taglib:  apev2mux: TagLib-based APEv2 Muxer
                            soundtouch:  pitch: Pitch controller
                            soundtouch:  bpmdetect: BPM Detector
                            openh264:  openh264dec: OpenH264 video decoder
                            openh264:  openh264enc: OpenH264 video encoder
                            decklink:  decklinkaudiosink: Decklink Audio Sink
                            decklink:  decklinkvideosink: Decklink Video Sink
                            decklink:  decklinkaudiosrc: Decklink Audio Source
                            decklink:  decklinkvideosrc: Decklink Video Source
                            y4menc:  y4menc: YUV4MPEG video encoder
                            y4mdec:  y4mdec: YUV4MPEG demuxer/decoder
                            webrtc:  webrtcbin: WebRTC Bin
                            wavparse:  wavparse: WAV audio demuxer
                            wavpack:  wavpackenc: Wavpack audio encoder
                            wavpack:  wavpackdec: Wavpack audio decoder
                            wavenc:  wavenc: WAV audio muxer
                            wasapi:  wasapideviceprovider (GstDeviceProviderFactory)
                            wasapi:  wasapisrc: WasapiSrc
                            wasapi:  wasapisink: WasapiSrc
                            vpx:  vp9enc: On2 VP9 Encoder
                            vpx:  vp9dec: On2 VP9 Decoder
                            vpx:  vp8enc: On2 VP8 Encoder
                            vpx:  vp8dec: On2 VP8 Decoder
                            vorbis:  vorbistag: VorbisTag
                            vorbis:  vorbisparse: VorbisParse
                            vorbis:  vorbisdec: Vorbis audio decoder
                            vorbis:  vorbisenc: Vorbis audio encoder
                            volume:  volume: Volume
                            videotestsrc:  videotestsrc: Video test source
                            videoscale:  videoscale: Video scaler
                            videorate:  videorate: Video rate adjuster
                            videoparsersbad:  vc1parse: VC1 parser
                            videoparsersbad:  h265parse: H.265 parser
                            videoparsersbad:  jpeg2000parse: JPEG 2000 parser
                            videoparsersbad:  pngparse: PNG parser
                            videoparsersbad:  mpeg4videoparse: MPEG 4 video elementary stream parser
                            videoparsersbad:  mpegvideoparse: MPEG video elementary stream parser
                            videoparsersbad:  diracparse: Dirac parser
                            videoparsersbad:  h264parse: H.264 parser
                            videoparsersbad:  h263parse: H.263 parser
                            videomixer:  videomixer: Video mixer 2
                            videofiltersbad:  videodiff: Video Diff
                            videofiltersbad:  zebrastripe: Zebra stripe overlay
                            videofiltersbad:  scenechange: Scene change detector
                            videofilter:  videomedian: Median effect
                            videofilter:  videoflip: Video flipper
                            videofilter:  videobalance: Video balance
                            videofilter:  gamma: Video gamma correction
                            videocrop:  aspectratiocrop: aspectratiocrop
                            videocrop:  videocrop: Crop
                            videoconvert:  videoconvert: Colorspace converter
                            videobox:  videobox: Video box filter
                            udp:  udpsrc: UDP packet receiver
                            udp:  dynudpsink: UDP packet sender
                            udp:  multiudpsink: UDP packet sender
                            udp:  udpsink: UDP packet sender
                            typefindfunctions: audio/audible: aa, aax
                            typefindfunctions: audio/x-xi: xi
                            typefindfunctions: video/x-pva: pva
                            typefindfunctions: application/x-ssa: ssa, ass
                            typefindfunctions: application/octet-stream: no extensions
                            typefindfunctions: image/x-degas: no extensions
                            typefindfunctions: image/x-icon: no extensions
                            typefindfunctions: application/x-yuv4mpeg: no extensions
                            typefindfunctions: image/vnd.wap.wbmp: no extensions
                            typefindfunctions: image/vnd.adobe.photoshop: psd
                            typefindfunctions: application/msword: doc
                            typefindfunctions: application/pdf: pdf
                            typefindfunctions: audio/x-kss: kss
                            typefindfunctions: video/x-ivf: ivf
                            typefindfunctions: audio/x-sap: sap
                            typefindfunctions: audio/x-vgm: vgm
                            typefindfunctions: audio/x-gbs: gbs
                            typefindfunctions: audio/x-ay: ay
                            typefindfunctions: audio/x-gym: gym
                            typefindfunctions: audio/x-nsf: nsf
                            typefindfunctions: video/vivo: viv
                            typefindfunctions: application/x-mmsh: no extensions
                            typefindfunctions: multipart/x-mixed-replace: no extensions
                            typefindfunctions: video/x-dirac: no extensions
                            typefindfunctions: application/x-ms-dos-executable: dll, exe, ocx, sys, scr, msstyles, cpl
                            typefindfunctions: application/x-ar: a
                            typefindfunctions: application/x-tar: tar
                            typefindfunctions: application/x-rar: rar
                            typefindfunctions: image/svg+xml: svg
                            typefindfunctions: application/postscript: ps
                            typefindfunctions: audio/x-caf: caf
                            typefindfunctions: audio/x-wavpack-correction: wvc
                            typefindfunctions: audio/x-wavpack: wv, wvp
                            typefindfunctions: audio/x-spc: spc
                            typefindfunctions: audio/aac: aac, adts, adif, loas
                            typefindfunctions: application/x-executable: no extensions
                            typefindfunctions: text/x-cmml: no extensions
                            typefindfunctions: application/x-ogg-skeleton: no extensions
                            typefindfunctions: audio/x-celt: no extensions
                            typefindfunctions: audio/x-speex: no extensions
                            typefindfunctions: application/x-ogm-text: no extensions
                            typefindfunctions: application/x-ogm-audio: no extensions
                            typefindfunctions: application/x-ogm-video: no extensions
                            typefindfunctions: video/x-theora: no extensions
                            typefindfunctions: audio/x-vorbis: no extensions
                            typefindfunctions: audio/x-flac: flac
                            typefindfunctions: application/x-subtitle-vtt: vtt
                            typefindfunctions: subtitle/x-kate: no extensions
                            typefindfunctions: application/x-compress: Z
                            typefindfunctions: application/zip: zip
                            typefindfunctions: application/x-gzip: gz
                            typefindfunctions: application/x-bzip: bz2
                            typefindfunctions: image/x-sun-raster: ras
                            typefindfunctions: image/x-xpixmap: xpm
                            typefindfunctions: image/x-jng: jng
                            typefindfunctions: video/x-mng: mng
                            typefindfunctions: image/x-xcf: xcf
                            typefindfunctions: audio/x-sid: sid
                            typefindfunctions: audio/x-sbc: sbc
                            typefindfunctions: audio/iLBC-sh: ilbc
                            typefindfunctions: audio/x-amr-wb-sh: amr
                            typefindfunctions: audio/x-amr-nb-sh: amr
                            typefindfunctions: video/x-dv: dv, dif
                            typefindfunctions: video/x-mve: mve
                            typefindfunctions: application/mxf: mxf
                            typefindfunctions: video/x-matroska: mkv, mka, mk3d, webm
                            typefindfunctions: image/x-portable-pixmap: pnm, ppm, pgm, pbm
                            typefindfunctions: image/x-exr: exr
                            typefindfunctions: image/webp: webp
                            typefindfunctions: image/tiff: tif, tiff
                            typefindfunctions: image/bmp: bmp
                            typefindfunctions: image/png: png
                            typefindfunctions: image/gif: gif
                            typefindfunctions: image/jpeg: jpg, jpe, jpeg
                            typefindfunctions: application/x-ape: ape
                            typefindfunctions: audio/x-shorten: shn
                            typefindfunctions: audio/x-rf64: rf64
                            typefindfunctions: audio/x-w64: w64
                            typefindfunctions: audio/x-ircam: sf
                            typefindfunctions: audio/x-sds: sds
                            typefindfunctions: audio/x-voc: voc
                            typefindfunctions: audio/x-nist: nist
                            typefindfunctions: audio/x-paris: paf
                            typefindfunctions: audio/x-svx: iff, svx
                            typefindfunctions: audio/x-aiff: aiff, aif, aifc
                            typefindfunctions: audio/x-wav: wav
                            typefindfunctions: application/xml: xml
                            typefindfunctions: application/ttml+xml: ttml+xml
                            typefindfunctions: application/smil: smil
                            typefindfunctions: application/sdp: sdp
                            typefindfunctions: application/x-hls: m3u8
                            typefindfunctions: application/itc: itc
                            typefindfunctions: text/uri-list: ram
                            typefindfunctions: text/utf-32: txt
                            typefindfunctions: text/utf-16: txt
                            typefindfunctions: text/plain: txt
                            typefindfunctions: video/x-flv: flv
                            typefindfunctions: application/vnd.ms-sstr+xml: no extensions
                            typefindfunctions: application/dash+xml: mpd, MPD
                            typefindfunctions: application/x-shockwave-flash: swf, swfl
                            typefindfunctions: application/x-pn-realaudio: ra, ram, rm, rmvb
                            typefindfunctions: application/vnd.rn-realmedia: ra, ram, rm, rmvb
                            typefindfunctions: text/html: htm, html
                            typefindfunctions: video/mj2: mj2
                            typefindfunctions: image/x-jpc: jpc, j2k
                            typefindfunctions: image/jp2: jp2
                            typefindfunctions: image/x-quicktime: qif, qtif, qti
                            typefindfunctions: video/quicktime: mov, mp4
                            typefindfunctions: application/x-3gp: 3gp
                            typefindfunctions: audio/x-m4a: m4a
                            typefindfunctions: video/x-nuv: nuv
                            typefindfunctions: video/x-h265: h265, x265, 265
                            typefindfunctions: video/x-h264: h264, x264, 264
                            typefindfunctions: video/x-h263: h263, 263
                            typefindfunctions: video/mpeg4: m4v
                            typefindfunctions: video/mpeg-elementary: mpv, mpeg, mpg
                            typefindfunctions: application/ogg: ogg, oga, ogv, ogm, ogx, spx, anx, axa, axv
                            typefindfunctions: video/mpegts: ts, mts
                            typefindfunctions: video/mpeg-sys: mpe, mpeg, mpg
                            typefindfunctions: audio/x-gsm: gsm
                            typefindfunctions: audio/x-dts: dts
                            typefindfunctions: audio/x-ac3: ac3, eac3
                            typefindfunctions: audio/mpeg: mp3, mp2, mp1, mpga
                            typefindfunctions: audio/x-mod: 669, amf, ams, dbm, digi, dmf, dsm, gdm, far, imf, it, j2b, mdl, med, mod, mt2, mtm, okt, psm, ptm, sam, s3m, stm, st
                            , ult, umx, xm
                            typefindfunctions: audio/x-ttafile: tta
                            typefindfunctions: application/x-apetag: mp3, ape, mpc, wv
                            typefindfunctions: application/x-id3v1: mp3, mp2, mp1, mpga, ogg, flac, tta
                            typefindfunctions: application/x-id3v2: mp3, mp2, mp1, mpga, ogg, flac, tta
                            typefindfunctions: video/x-fli: flc, fli
                            typefindfunctions: audio/mobile-xmf: mxmf
                            typefindfunctions: audio/riff-midi: mid, midi
                            typefindfunctions: audio/midi: mid, midi
                            typefindfunctions: audio/x-imelody: imy, ime, imelody
                            typefindfunctions: video/x-vcd: dat
                            typefindfunctions: video/x-cdxa: dat
                            typefindfunctions: audio/qcelp: qcp
                            typefindfunctions: video/x-msvideo: avi
                            typefindfunctions: audio/x-au: au, snd
                            typefindfunctions: audio/x-musepack: mpc, mpp, mp+
                            typefindfunctions: video/x-ms-asf: asf, wm, wma, wmv
                            theora:  theoraparse: Theora video parser
                            theora:  theoraenc: Theora video encoder
                            theora:  theoradec: Theora video decoder
                            tcp:  multisocketsink: Multi socket sink
                            tcp:  tcpserversrc: TCP server source
                            tcp:  tcpserversink: TCP server sink
                            tcp:  tcpclientsrc: TCP client source
                            tcp:  tcpclientsink: TCP client sink
                            tcp:  socketsrc: socket source
                            subparse:  ssaparse: SSA Subtitle Parser
                            subparse:  subparse: Subtitle parser
                            subparse: subparse_typefind: srt, sub, mpsub, mdvd, smi, txt, dks, vtt
                            srtp:  srtpdec: SRTP decoder
                            srtp:  srtpenc: SRTP encoder
                            speex:  speexdec: Speex audio decoder
                            speex:  speexenc: Speex audio encoder
                            speed:  speed: Speed
                            spectrum:  spectrum: Spectrum analyzer
                            spandsp:  tonegeneratesrc: Telephony Tone  Generator source
                            spandsp:  dtmfdetect: DTMF detector element
                            spandsp:  spanplc: SpanDSP PLC
                            soup:  souphttpclientsink: HTTP client sink
                            soup:  souphttpsrc: HTTP client source
                            smpte:  smptealpha: SMPTE transitions
                            smpte:  smpte: SMPTE transitions
                            smoothstreaming:  mssdemux: Smooth Streaming demuxer
                            smooth:  smooth: Smooth effect
                            siren:  sirenenc: Siren Encoder element
                            siren:  sirendec: Siren Decoder element
                            shapewipe:  shapewipe: Shape Wipe transition filter
                            segmentclip:  videosegmentclip: Video buffer segment clipper
                            segmentclip:  audiosegmentclip: Audio buffer segment clipper
                            sdpelem:  sdpsrc: SDP Source
                            sdpelem:  sdpdemux: SDP session setup
                            sbc:  sbcenc: Bluetooth SBC audio encoder
                            sbc:  sbcdec: Bluetooth SBC audio decoder
                            rtspclientsink:  rtspclientsink: RTSP RECORD client
                            rtsp:  rtpdec: RTP Decoder
                            rtsp:  rtspsrc: RTSP packet receiver
                            rtpmanager:  rtpdtmfmux: RTP muxer
                            rtpmanager:  rtpmux: RTP muxer
                            rtpmanager:  rtpssrcdemux: RTP SSRC Demux
                            rtpmanager:  rtprtxsend: RTP Retransmission Sender
                            rtpmanager:  rtprtxreceive: RTP Retransmission receiver
                            rtpmanager:  rtprtxqueue: RTP Retransmission Queue
                            rtpmanager:  rtpsession: RTP Session
                            rtpmanager:  rtpptdemux: RTP Demux
                            rtpmanager:  rtpjitterbuffer: RTP packet jitter-buffer
                            rtpmanager:  rtpbin: RTP Bin
                            rtp:  rtpstorage: RTP storage
                            rtp:  rtpulpfecenc: RTP FEC Encoder
                            rtp:  rtpulpfecdec: RTP FEC Decoder
                            rtp:  rtpreddec: Redundant Audio Data (RED) Decoder
                            rtp:  rtpredenc: Redundant Audio Data (RED) Encoder
                            rtp:  rtpstreamdepay: RTP Stream Depayloading
                            rtp:  rtpstreampay: RTP Stream Payloading
                            rtp:  rtpvrawpay: RTP Raw Video payloader
                            rtp:  rtpvrawdepay: RTP Raw Video depayloader
                            rtp:  rtpvp9pay: RTP VP9 payloader
                            rtp:  rtpvp9depay: RTP VP9 depayloader
                            rtp:  rtpvp8pay: RTP VP8 payloader
                            rtp:  rtpvp8depay: RTP VP8 depayloader
                            rtp:  rtpvorbispay: RTP Vorbis payloader
                            rtp:  rtpvorbisdepay: RTP Vorbis depayloader
                            rtp:  rtptheorapay: RTP Theora payloader
                            rtp:  rtptheoradepay: RTP Theora depayloader
                            rtp:  rtpsv3vdepay: RTP SVQ3 depayloader
                            rtp:  rtpspeexdepay: RTP Speex depayloader
                            rtp:  rtpspeexpay: RTP Speex payloader
                            rtp:  rtpsirendepay: RTP Siren packet depayloader
                            rtp:  rtpsirenpay: RTP Payloader for Siren Audio
                            rtp:  rtpsbcpay: RTP packet payloader
                            rtp:  rtpsbcdepay: RTP SBC audio depayloader
                            rtp:  rtpqdm2depay: RTP QDM2 depayloader
                            rtp:  rtpqcelpdepay: RTP QCELP depayloader
                            rtp:  rtpmp4gpay: RTP MPEG4 ES payloader
                            rtp:  rtpmp4gdepay: RTP MPEG4 ES depayloader
                            rtp:  rtpmp4adepay: RTP MPEG4 audio depayloader
                            rtp:  rtpmp4apay: RTP MPEG4 audio payloader
                            rtp:  rtpmp4vdepay: RTP MPEG4 video depayloader
                            rtp:  rtpmp4vpay: RTP MPEG4 Video payloader
                            rtp:  rtpmp2tpay: RTP MPEG2 Transport Stream payloader
                            rtp:  rtpmp2tdepay: RTP MPEG Transport Stream depayloader
                            rtp:  rtpmp1sdepay: RTP MPEG1 System Stream depayloader
                            rtp:  asteriskh263: RTP Asterisk H263 depayloader
                            rtp:  rtpL24depay: RTP audio depayloader
                            rtp:  rtpL24pay: RTP audio payloader
                            rtp:  rtpL16depay: RTP audio depayloader
                            rtp:  rtpL16pay: RTP audio payloader
                            rtp:  rtpL8depay: RTP audio depayloader
                            rtp:  rtpL8pay: RTP audio payloader
                            rtp:  rtpklvpay: RTP KLV Payloader
                            rtp:  rtpklvdepay: RTP KLV Depayloader
                            rtp:  rtpjpegpay: RTP JPEG payloader
                            rtp:  rtpjpegdepay: RTP JPEG depayloader
                            rtp:  rtpj2kpay: RTP JPEG 2000 payloader
                            rtp:  rtpj2kdepay: RTP JPEG 2000 depayloader
                            rtp:  rtph265pay: RTP H265 payloader
                            rtp:  rtph265depay: RTP H265 depayloader
                            rtp:  rtph264pay: RTP H264 payloader
                            rtp:  rtph264depay: RTP H264 depayloader
                            rtp:  rtph263pay: RTP H263 packet payloader
                            rtp:  rtph263depay: RTP H263 depayloader
                            rtp:  rtph263pdepay: RTP H263 depayloader
                            rtp:  rtph263ppay: RTP H263 payloader
                            rtp:  rtph261depay: RTP H261 depayloader
                            rtp:  rtph261pay: RTP H261 packet payloader
                            rtp:  rtpopuspay: RTP Opus payloader
                            rtp:  rtpopusdepay: RTP Opus packet depayloader
                            rtp:  rtpmpvpay: RTP MPEG2 ES video payloader
                            rtp:  rtpmpvdepay: RTP MPEG video depayloader
                            rtp:  rtpmparobustdepay: RTP MPEG audio depayloader
                            rtp:  rtpmpapay: RTP MPEG audio payloader
                            rtp:  rtpmpadepay: RTP MPEG audio depayloader
                            rtp:  rtppcmapay: RTP PCMA payloader
                            rtp:  rtppcmupay: RTP PCMU payloader
                            rtp:  rtppcmudepay: RTP PCMU depayloader
                            rtp:  rtppcmadepay: RTP PCMA depayloader
                            rtp:  rtpamrpay: RTP AMR payloader
                            rtp:  rtpamrdepay: RTP AMR depayloader
                            rtp:  rtpgsmpay: RTP GSM payloader
                            rtp:  rtpgsmdepay: RTP GSM depayloader
                            rtp:  rtpg729pay: RTP G.729 payloader
                            rtp:  rtpg729depay: RTP G.729 depayloader
                            rtp:  rtpg726pay: RTP G.726 payloader
                            rtp:  rtpg726depay: RTP G.726 depayloader
                            rtp:  rtpg723pay: RTP G.723 payloader
                            rtp:  rtpg723depay: RTP G.723 depayloader
                            rtp:  rtpg722pay: RTP audio payloader
                            rtp:  rtpg722depay: RTP audio depayloader
                            rtp:  rtpilbcdepay: RTP iLBC depayloader
                            rtp:  rtpilbcpay: RTP iLBC Payloader
                            rtp:  rtpgstpay: RTP GStreamer payloader
                            rtp:  rtpgstdepay: GStreamer depayloader
                            rtp:  rtpdvpay: RTP DV Payloader
                            rtp:  rtpdvdepay: RTP DV Depayloader
                            rtp:  rtpceltpay: RTP CELT payloader
                            rtp:  rtpceltdepay: RTP CELT depayloader
                            rtp:  rtpbvpay: RTP BV Payloader
                            rtp:  rtpbvdepay: RTP BroadcomVoice depayloader
                            rtp:  rtpac3pay: RTP AC3 audio payloader
                            rtp:  rtpac3depay: RTP AC3 depayloader
                            rsvg:  rsvgdec: SVG image decoder
                            rsvg:  rsvgoverlay: RSVG overlay
                            rfbsrc:  rfbsrc: Rfb source
                            replaygain:  rgvolume: ReplayGain volume
                            replaygain:  rglimiter: ReplayGain limiter
                            replaygain:  rganalysis: ReplayGain analysis
                            removesilence:  removesilence: RemoveSilence
                            rawparse:  rawvideoparse: rawvideoparse
                            rawparse:  rawaudioparse: rawaudioparse
                            rawparse:  unalignedvideoparse: unalignedvideoparse
                            rawparse:  unalignedaudioparse: unalignedaudioparse
                            pnm:  pnmenc: PNM image encoder
                            pnm:  pnmdec: PNM image decoder
                            png:  pngenc: PNG image encoder
                            png:  pngdec: PNG image decoder
                            playback:  parsebin: Parse Bin
                            playback:  urisourcebin: URI reader
                            playback:  uridecodebin3: URI Decoder
                            playback:  uridecodebin: URI Decoder
                            playback:  decodebin3: Decoder Bin 3
                            playback:  decodebin: Decoder Bin
                            playback:  streamsynchronizer: Stream Synchronizer
                            playback:  subtitleoverlay: Subtitle Overlay
                            playback:  playsink: Player Sink
                            playback:  playbin3: Player Bin 3
                            playback:  playbin: Player Bin 2
                            pcapparse:  irtspparse: IRTSPParse
                            pcapparse:  pcapparse: PCapParse
                            pango:  textrender: Text renderer
                            pango:  clockoverlay: Clock overlay
                            pango:  timeoverlay: Time overlay
                            pango:  textoverlay: Text overlay
                            opusparse:  opusparse: Opus audio parser
                            opus:  opusdec: Opus audio decoder
                            opus:  opusenc: Opus audio encoder
                            openjpeg:  openjpegenc: OpenJPEG JPEG2000 encoder
                            openjpeg:  openjpegdec: OpenJPEG JPEG2000 decoder
                            openglmixers:  glmosaic: OpenGL mosaic
                            openglmixers:  glstereomix: OpenGL stereo video combiner
                            openglmixers:  glvideomixerelement: OpenGL video_mixer
                            openglmixers:  glvideomixer: OpenGL video_mixer bin
                            openglmixers:  glmixerbin: OpenGL video_mixer empty bin
                            opengl:  gldifferencematte: Gstreamer OpenGL DifferenceMatte
                            opengl:  glfilterglass: OpenGL glass filter
                            opengl:  gloverlay: Gstreamer OpenGL Overlay
                            opengl:  gldeinterlace: OpenGL deinterlacing filter
                            opengl:  gltestsrc: Video test source
                            opengl:  glstereosplit: GLStereoSplit
                            opengl:  glviewconvert: OpenGL Multiview/3D conversion filter
                            opengl:  glfilterapp: OpenGL application filter
                            opengl:  glshader: OpenGL fragment shader filter
                            opengl:  glcolorscale: OpenGL color scale
                            opengl:  gleffects_laplacian: Laplacian Convolution Demo Effect
                            opengl:  gleffects_blur: Blur with 9x9 separable convolution Effect
                            opengl:  gleffects_sobel: Sobel edge detection Effect
                            opengl:  gleffects_glow: Glow Lighting Effect
                            opengl:  gleffects_sin: All Grey but Red Effect
                            opengl:  gleffects_xray: Glowing negative effect
                            opengl:  gleffects_lumaxpro: Luma Cross Processing Effect
                            opengl:  gleffects_xpro: Cross Processing Effect
                            opengl:  gleffects_sepia: Sepia Toning Effect
                            opengl:  gleffects_heat: Heat Signature Effect
                            opengl:  gleffects_square: Square Effect
                            opengl:  gleffects_bulge: Bulge Effect
                            opengl:  gleffects_twirl: Twirl Effect
                            opengl:  gleffects_fisheye: FishEye Effect
                            opengl:  gleffects_tunnel: Light Tunnel Effect
                            opengl:  gleffects_stretch: Stretch Effect
                            opengl:  gleffects_squeeze: Squeeze Effect
                            opengl:  gleffects_mirror: Mirror Effect
                            opengl:  gleffects_identity: Do nothing Effect
                            opengl:  gleffects: Gstreamer OpenGL Effects
                            opengl:  glvideoflip: OpenGL video flip filter
                            opengl:  gltransformation: OpenGL transformation filter
                            opengl:  glfiltercube: OpenGL cube filter
                            opengl:  glsrcbin: GL Src Bin
                            opengl:  glsinkbin: GL Sink Bin
                            opengl:  glfilterbin: GL Filter Bin
                            opengl:  glcolorbalance: Video balance
                            opengl:  glcolorconvert: OpenGL color converter
                            opengl:  gldownload: OpenGL downloader
                            opengl:  glupload: OpenGL uploader
                            opengl:  glimagesinkelement: OpenGL video sink
                            opengl:  glimagesink: GL Sink Bin
                            ogg:  oggaviparse: Ogg AVI parser
                            ogg:  oggparse: Ogg parser
                            ogg:  ogmtextparse: OGM text stream parser
                            ogg:  ogmvideoparse: OGM video stream parser
                            ogg:  ogmaudioparse: OGM audio stream parser
                            ogg:  oggmux: Ogg muxer
                            ogg:  oggdemux: Ogg demuxer
                            nice:  nicesink: ICE sink
                            nice:  nicesrc: ICE source
                            mxf:  mxfmux: MXF muxer
                            mxf:  mxfdemux: MXF Demuxer
                            multipart:  multipartmux: Multipart muxer
                            multipart:  multipartdemux: Multipart demuxer
                            multifile:  splitmuxsrc: Split File Demuxing Bin
                            multifile:  splitmuxsink: Split Muxing Bin
                            multifile:  splitfilesrc: Split-File Source
                            multifile:  multifilesink: Multi-File Sink
                            multifile:  multifilesrc: Multi-File Source
                            mulaw:  mulawdec: Mu Law audio decoder
                            mulaw:  mulawenc: Mu Law audio encoder
                            mpg123:  mpg123audiodec: mpg123 mp3 decoder
                            midi:  midiparse: MidiParse
                            matroska:  webmmux: WebM muxer
                            matroska:  matroskamux: Matroska muxer
                            matroska:  matroskaparse: Matroska parser
                            matroska:  matroskademux: Matroska demuxer
                            level:  level: Level
                            legacyrawparse:  audioparse: Audio Parse
                            legacyrawparse:  videoparse: Video Parse
                            lame:  lamemp3enc: L.A.M.E. mp3 encoder
                            kate:  katetag: Kate stream tagger
                            kate:  kateparse: Kate stream parser
                            kate:  kateenc: Kate stream encoder
                            kate:  katedec: Kate stream text decoder
                            jpegformat:  jifmux: JPEG stream muxer
                            jpegformat:  jpegparse: JPEG stream parser
                            jpeg:  jpegdec: JPEG image decoder
                            jpeg:  jpegenc: JPEG image encoder
                            ivtc:  combdetect: Comb Detect
                            ivtc:  ivtc: Inverse Telecine
                            isomp4:  qtmoovrecover: QT Moov Recover
                            isomp4:  mj2mux: MJ2 Muxer
                            isomp4:  3gppmux: 3GPP Muxer
                            isomp4:  ismlmux: ISML Muxer
                            isomp4:  mp4mux: MP4 Muxer
                            isomp4:  qtmux: QuickTime Muxer
                            isomp4:  rtpxqtdepay: RTP packet depayloader
                            isomp4:  qtdemux: QuickTime demuxer
                            interleave:  deinterleave: Audio deinterleaver
                            interleave:  interleave: Audio interleaver
                            interlace:  interlace: Interlace filter
                            inter:  intervideosink: Internal video sink
                            inter:  intervideosrc: Internal video source
                            inter:  intersubsink: Internal subtitle sink
                            inter:  intersubsrc: Internal subtitle source
                            inter:  interaudiosink: Internal audio sink
                            inter:  interaudiosrc: Internal audio source
                            id3tag:  id3mux: ID3 v1 and v2 Muxer
                            id3demux:  id3demux: ID3 tag demuxer
                            icydemux:  icydemux: ICY tag demuxer
                            hls:  hlssink2: HTTP Live Streaming sink
                            hls:  hlssink: HTTP Live Streaming sink
                            hls:  hlsdemux: HLS Demuxer
                            goom2k1:  goom2k1: GOOM: what a GOOM! 2k1 edition
                            goom:  goom: GOOM: what a GOOM!
                            geometrictransform:  perspective: perspective
                            geometrictransform:  fisheye: fisheye
                            geometrictransform:  mirror: mirror
                            geometrictransform:  square: square
                            geometrictransform:  tunnel: tunnel
                            geometrictransform:  bulge: bulge
                            geometrictransform:  stretch: stretch
                            geometrictransform:  waterripple: waterripple
                            geometrictransform:  twirl: twirl
                            geometrictransform:  sphere: sphere
                            geometrictransform:  rotate: rotate
                            geometrictransform:  pinch: pinch
                            geometrictransform:  marble: marble
                            geometrictransform:  kaleidoscope: kaleidoscope
                            geometrictransform:  diffuse: diffuse
                            geometrictransform:  circle: circle
                            gdp:  gdppay: GDP Payloader
                            gdp:  gdpdepay: GDP Depayloader
                            gdkpixbuf:  gdkpixbufsink: GdkPixbuf sink
                            gdkpixbuf:  gdkpixbufoverlay: GdkPixbuf Overlay
                            gdkpixbuf:  gdkpixbufdec: GdkPixbuf image decoder
                            gaudieffects:  gaussianblur: GstGaussianBlur
                            gaudieffects:  solarize: Solarize
                            gaudieffects:  exclusion: Exclusion
                            gaudieffects:  dodge: Dodge
                            gaudieffects:  dilate: Dilate
                            gaudieffects:  chromium: Chromium
                            gaudieffects:  burn: Burn
                            freeverb:  freeverb: Reverberation/room effect
                            flxdec:  flxdec: FLX video decoder
                            flv:  flvmux: FLV muxer
                            flv:  flvdemux: FLV Demuxer
                            flac:  flactag: FLAC tagger
                            flac:  flacdec: FLAC audio decoder
                            flac:  flacenc: FLAC audio encoder
                            fieldanalysis:  fieldanalysis: Video field analysis
                            equalizer:  equalizer-10bands: 10 Band Equalizer
                            equalizer:  equalizer-3bands: 3 Band Equalizer
                            equalizer:  equalizer-nbands: N Band Equalizer
                            effectv:  rippletv: RippleTV effect
                            effectv:  streaktv: StreakTV effect
                            effectv:  radioactv: RadioacTV effect
                            effectv:  optv: OpTV effect
                            effectv:  quarktv: QuarkTV effect
                            effectv:  revtv: RevTV effect
                            effectv:  vertigotv: VertigoTV effect
                            effectv:  shagadelictv: ShagadelicTV
                            effectv:  warptv: WarpTV effect
                            effectv:  dicetv: DiceTV effect
                            effectv:  agingtv: AgingTV effect
                            effectv:  edgetv: EdgeTV effect
                            dvdspu:  dvdspu: Sub-picture Overlay
                            dvbsuboverlay:  dvbsuboverlay: DVB Subtitles Overlay
                            dv:  dvdec: DV video decoder
                            dv:  dvdemux: DV system stream demuxer
                            dtmf:  rtpdtmfdepay: RTP DTMF packet depayloader
                            dtmf:  rtpdtmfsrc: RTP DTMF packet generator
                            dtmf:  dtmfsrc: DTMF tone generator
                            directsound:  directsoundsinkdeviceprovider (GstDeviceProviderFactory)
                            directsound:  directsoundsink: Direct Sound Audio Sink
                            deinterlace:  deinterlace: Deinterlacer
                            debugutilsbad:  fakevideosink: Fake Video Sink
                            debugutilsbad:  errorignore: Convert some GstFlowReturn types into others
                            debugutilsbad:  watchdog: Watchdog
                            debugutilsbad:  debugspy: DebugSpy
                            debugutilsbad:  compare: Compare buffers
                            debugutilsbad:  chopmydata: FIXME
                            debugutilsbad:  fpsdisplaysink: Measure and show framerate on videosink
                            debugutilsbad:  checksumsink: Checksum sink
                            debug:  cpureport: CPU report
                            debug:  testsink: Test plugin
                            debug:  taginject: TagInject
                            debug:  progressreport: Progress report
                            debug:  pushfilesrc: Push File Source
                            debug:  navseek: Seek based on left-right arrows
                            debug:  rndbuffersize: Random buffer size
                            debug:  capssetter: CapsSetter
                            debug:  breakmydata: Break my data
                            dashdemux:  dashdemux: DASH Demuxer
                            d3d:  d3dvideosink: Direct3D video sink
                            cutter:  cutter: Audio cutter
                            coreelements:  streamiddemux: Streamid Demux
                            coreelements:  valve: Valve element
                            coreelements:  multiqueue: MultiQueue
                            coreelements:  typefind: TypeFind
                            coreelements:  tee: Tee pipe fitting
                            coreelements:  filesink: File Sink
                            coreelements:  queue2: Queue 2
                            coreelements:  queue: Queue
                            coreelements:  output-selector: Output selector
                            coreelements:  input-selector: Input selector
                            coreelements:  identity: Identity
                            coreelements:  funnel: Funnel pipe fitting
                            coreelements:  filesrc: File Source
                            coreelements:  fakesink: Fake Sink
                            coreelements:  fakesrc: Fake Source
                            coreelements:  downloadbuffer: DownloadBuffer
                            coreelements:  dataurisrc: data: URI source element
                            coreelements:  concat: Concat
                            coreelements:  capsfilter: CapsFilter
                            compositor:  compositor: Compositor
                            coloreffects:  chromahold: Chroma hold filter
                            coloreffects:  coloreffects: Color Look-up Table filter
                            cairo:  cairooverlay: Cairo overlay
                            bayer:  rgb2bayer: RGB to Bayer converter
                            bayer:  bayer2rgb: Bayer to RGB decoder for cameras
                            avi:  avisubtitle: Avi subtitle parser
                            avi:  avimux: Avi muxer
                            avi:  avidemux: Avi demuxer
                            auparse:  auparse: AU audio demuxer
                            audiovisualizers:  wavescope: Waveform oscilloscope
                            audiovisualizers:  synaescope: Synaescope
                            audiovisualizers:  spectrascope: Frequency spectrum scope
                            audiovisualizers:  spacescope: Stereo visualizer
                            audiotestsrc:  audiotestsrc: Audio test source
                            audioresample:  audioresample: Audio resampler
                            audiorate:  audiorate: Audio rate adjuster
                            audioparsers:  wavpackparse: Wavpack audio stream parser
                            audioparsers:  sbcparse: SBC audio parser
                            audioparsers:  mpegaudioparse: MPEG1 Audio Parser
                            audioparsers:  flacparse: FLAC audio parser
                            audioparsers:  dcaparse: DTS Coherent Acoustics audio stream parser
                            audioparsers:  ac3parse: AC3 audio stream parser
                            audioparsers:  amrparse: AMR audio stream parser
                            audioparsers:  aacparse: AAC audio stream parser
                            audiomixer:  audiointerleave: AudioInterleave
                            audiomixer:  liveadder: AudioMixer
                            audiomixer:  audiomixer: AudioMixer
                            audiofxbad:  audiochannelmix: Simple stereo audio mixer
                            audiofx:  scaletempo: Scaletempo
                            audiofx:  audioecho: Audio echo
                            audiofx:  audiofirfilter: Audio FIR filter
                            audiofx:  audiowsincband: Band pass & band reject filter
                            audiofx:  audiowsinclimit: Low pass & high pass filter
                            audiofx:  audioiirfilter: Audio IIR filter
                            audiofx:  audiochebband: Band pass & band reject filter
                            audiofx:  audiocheblimit: Low pass & high pass filter
                            audiofx:  audiodynamic: Dynamic range controller
                            audiofx:  audioamplify: Audio amplifier
                            audiofx:  audiokaraoke: AudioKaraoke
                            audiofx:  audioinvert: Audio inversion
                            audiofx:  audiopanorama: Stereo positioning
                            audioconvert:  audioconvert: Audio converter
                            audiobuffersplit:  audiobuffersplit: Audio Buffer Split
                            app:  appsink: AppSink
                            app:  appsrc: AppSrc
                            apetag:  apedemux: APE tag demuxer
                            alphacolor:  alphacolor: Alpha color filter
                            alpha:  alpha: Alpha filter
                            alaw:  alawdec: A Law audio decoder
                            alaw:  alawenc: A Law audio encoder
                            aiff:  aiffmux: AIFF audio muxer
                            aiff:  aiffparse: AIFF audio demuxer
                            adpcmenc:  adpcmenc: ADPCM encoder
                            adpcmdec:  adpcmdec: ADPCM decoder
                            adder:  adder: Adder
                            accurip:  accurip: AccurateRip(TM) CRC element
                            subenc:  srtenc: Srt encoder
                            subenc:  webvttenc: WebVTT encoder
                            proxy:  proxysrc: Proxy source
                            proxy:  proxysink: Proxy Sink
                            imagefreeze:  imagefreeze: Still frame stream generator
                            dtls:  dtlsenc: DTLS Encoder
                            dtls:  dtlsdec: DTLS Decoder
                            dtls:  dtlssrtpdec: DTLS-SRTP Decoder
                            dtls:  dtlssrtpenc: DTLS-SRTP Encoder
                            dtls:  dtlssrtpdemux: DTLS SRTP Demultiplexer
                            coretracers:  latency (GstTracerFactory)
                            coretracers:  log (GstTracerFactory)
                            coretracers:  stats (GstTracerFactory)
                            coretracers:  leaks (GstTracerFactory)
                            autodetect:  autovideosink: Auto video sink
                            autodetect:  autovideosrc: Auto video source
                            autodetect:  autoaudiosink: Auto audio sink
                            autodetect:  autoaudiosrc: Auto audio source
                            autoconvert:  autoconvert: Select convertor based on caps
                            autoconvert:  autovideoconvert: Select color space convertor based on caps
                            staticelements:  bin: Generic bin
                            staticelements:  pipeline: Pipeline object
                            
                            Total count: 149 plugins, 671 features
                            
                            1 Reply Last reply
                            0
                            • SGaistS Offline
                              SGaistS Offline
                              SGaist
                              Lifetime Qt Champion
                              wrote on last edited by
                              #28

                              Then use the openh264enc encoder in place of the other.

                              Interested in AI ? www.idiap.ch
                              Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                              ODБOïO 1 Reply Last reply
                              1
                              • SGaistS SGaist

                                Then use the openh264enc encoder in place of the other.

                                ODБOïO Offline
                                ODБOïO Offline
                                ODБOï
                                wrote on last edited by
                                #29

                                @SGaist thanks for the suggestion,

                                I tryed to adapt this exemple with openh264enc :

                                gst-launch-1.0 -v rfbsrc host=10.81.4.97 port=5900 password=pa009v view-only=true ! queue ! openh264enc ! "video/x-h264, stream-format=(string)byte-stream" ! h264parse ! qtmux ! filesink location=test.mp4 
                                

                                output:

                                WARNING: erroneous pipeline: could not link queue0 to openh264enc0
                                

                                if i remove the 'queue' element then i got

                                WARNING: erroneous pipeline: could not link rfbsrc0 to openh264enc0
                                

                                How to link my rfbsrc to openh264enc please ?

                                1 Reply Last reply
                                0
                                • ODБOïO Offline
                                  ODБOïO Offline
                                  ODБOï
                                  wrote on last edited by
                                  #30

                                  I tryed to add 'decodebin' between my rfbsrc and the openh264enc ,

                                  Now i have format issue again.. a .mp4 file is created but empty, can this be related to my VNC Server ? i use Ultra VNC as server

                                  gst-launch-1.0 -v rfbsrc host=xx.xx.x.xx port=5900 password=xxxx view-only=true ! decodebin ! "video/x-h264, stream-format=(string)byte-stream" ! openh264enc ! h264parse ! qtmux ! filesink location=test.mp4 
                                  
                                  Setting pipeline to PAUSED ...
                                  Pipeline is live and does not need PREROLL ...
                                  Setting pipeline to PLAYING ...
                                  New clock: GstSystemClock
                                  
                                  ** (gst-launch-1.0:8476): CRITICAL **: gst_video_info_set_format: assertion 'format != GST_VIDEO_FORMAT_UNKNOWN' failed
                                  
                                  ** (gst-launch-1.0:8476): CRITICAL **: gst_video_info_to_caps: assertion 'info->finfo->format != GST_VIDEO_FORMAT_UNKNOWN' failed
                                  
                                  (gst-launch-1.0:8476): GStreamer-CRITICAL **: gst_event_new_caps: assertion 'caps != NULL' failed
                                  
                                  (gst-launch-1.0:8476): GStreamer-CRITICAL **: gst_pad_push_event: assertion 'GST_IS_EVENT (event)' failed
                                  
                                  (gst-launch-1.0:8476): GStreamer-CRITICAL **: gst_mini_object_unref: assertion 'mini_object != NULL' failed
                                  ERROR: from element /GstPipeline:pipeline0/GstRfbSrc:rfbsrc0: Internal data stream error.
                                  Additional debug info:
                                  gstbasesrc.c(3055): gst_base_src_loop (): /GstPipeline:pipeline0/GstRfbSrc:rfbsrc0:
                                  streaming stopped, reason not-negotiated (-4)
                                  Execution ended after 0:00:00.697763210
                                  Setting pipeline to PAUSED ...
                                  Setting pipeline to READY ...
                                  Setting pipeline to NULL ...
                                  Freeing pipeline ...
                                  
                                  1 Reply Last reply
                                  0
                                  • ODБOïO Offline
                                    ODБOïO Offline
                                    ODБOï
                                    wrote on last edited by ODБOï
                                    #31

                                    Hi,
                                    @SGaist I finally made this working pipeline :

                                    gst-launch-1.0 -v rfbsrc host=xx.xx.x.xx port=5900 password=passw view-only=true ! videoconvert !  openh264enc !  "video/x-h264, stream-format=(string)byte-stream" ! openh264dec !  autovideosink
                                    

                                    The remote gui is displayed in an internal GStreamer window .

                                    Now i only replace the autovideosink by filesink location=vid.mp4 to save the video to a file instead of displaying it.

                                    gst-launch-1.0 -v rfbsrc host=xx.xx.x.xx port=5900 password=passw view-only=true ! videoconvert !  openh264enc !  "video/x-h264, stream-format=(string)byte-stream" ! openh264dec !  filesink location=vid.mp4
                                    

                                    The video file is created (and not empty) but i can't play it with WindowsMediaPlayer or VLC
                                    I tryed filesink location=vid.h264 and enabled H264 Demuxer for VLC but still can't open the file.

                                    edit :
                                    In some exemples i can see that the last step before filesink is XXXXmux , but if i try

                                    gst-launch-1.0 -v rfbsrc host=10.81.4.68 port=5900 password=pa009v view-only=true ! videoconvert !  openh264enc  ! flvmux  !  filesink location=test.flv
                                    

                                    i get : WARNING: erroneous pipeline: could not link openh264enc0 to flvmux0

                                    Thank you for any suggestion

                                    1 Reply Last reply
                                    0
                                    • ODБOïO Offline
                                      ODБOïO Offline
                                      ODБOï
                                      wrote on last edited by
                                      #32

                                      I added missing h264parse and mp4mux before writing to the file

                                      Now the pipeline looks like this :

                                      gst-launch-1.0 -v rfbsrc host=xx.xx.x.xx port=5900 password=passw view-only=true 
                                      !  videoconvert ! openh264enc bitrate=4096 
                                      ! "video/x-h264, stream-format=(string)byte-stream" 
                                      ! h264parse 
                                      ! mp4mux 
                                      ! filesink location=video.mp4  sync=false
                                      

                                      but the video file is still not 'playable'
                                      i read on github
                                      "Some muxers such as mp4mux write additional information to disk when they receive EOS. Without that extra information, the file is useless."

                                      so i try to pass -e instead of -v , the file is created and grows in size (still not playable), but when i press ctrl+c to stop i get this error :

                                      handling interrupt.Interrupt: Stopping pipeline ...EOS on shutdown enabled -- Forcing EOS on the pipeline
                                      Waiting for EOS...ERROR: from element /GstPipeline:pipeline0/GstRfbSrc:rfbsrc0: Error on setup VNC connection to host xx.xx.x.xx on port 5900Additional debug info:
                                      gstrfbsrc.c(524): gst_rfb_src_fill (): /GstPipeline:pipeline0/GstRfbSrc:rfbsrc0
                                      An error happened while waiting for EOS
                                      Execution ended after 0:00:07.166707941
                                      Setting pipeline to PAUSED ...
                                      Setting pipeline to READY ...
                                      Setting pipeline to NULL ...
                                      Freeing pipeline ...
                                      

                                      Now there is a probleme with the VNC connection ?

                                      I think no, because i did the same thing unsig tee and the connection looks ok, the stream is displayed, pressing ctrl+c i have the same output saying "Error on setup VNC connection to host..."

                                      tee version (stream is displayed / file created but not readable ) :

                                      gst-launch-1.0 -e rfbsrc host=xx.xx.x.xx port=5900 password=passw view-only=true
                                      !  videoconvert 
                                      ! tee name = t
                                      ! queue 
                                      ! openh264enc bitrate=4096  
                                      ! "video/x-h264, stream-format=(string)byte-stream"
                                      ! h264parse 
                                      ! mp4mux
                                      ! filesink location=video.mp4  sync=false 
                                      t. 
                                      ! queue 
                                      ! autovideosink 
                                      
                                      1 Reply Last reply
                                      0
                                      • SGaistS Offline
                                        SGaistS Offline
                                        SGaist
                                        Lifetime Qt Champion
                                        wrote on last edited by
                                        #33

                                        A silly question, did you try to read the file with gstreamer directly ?

                                        Interested in AI ? www.idiap.ch
                                        Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                                        1 Reply Last reply
                                        1
                                        • ODБOïO Offline
                                          ODБOïO Offline
                                          ODБOï
                                          wrote on last edited by SGaist
                                          #34

                                          @SGaist hi!
                                          Yes, i had that idea only this morning.. Everything works almost as expected.

                                          This will Display / Record :

                                          gst-launch-1.0 -e rfbsrc host=xx.xx.x.xx port=5900 password=passw view-only=true !  videoconvert !  tee name = t t. ! queue ! openh264enc bitrate=4096  ! "video/x-h264, stream-format=(string)byte-stream" ! h264parse ! mp4mux ! filesink location=capture.mp4  sync=false t. ! queue ! autovideosink 
                                          

                                          This will read the recorded .mp4 file

                                          gst-launch-1.0 playbin uri=file:///c:/users/lev/documents/VNC_CLIENT_Tests/capture.mp4
                                          

                                          So everything works, but the video quality/ framerate are very bad... if something happends on the remote pc i have to wailt 2~3 secondes before i see it. Even with the official Viewer. I Abandon this solution, unless someone has a trick to highly optimize this.

                                          My first solution with your QVNCClient (it is made by you right ?) works much better with 15 ips capture.
                                          Then i reconstruct a video combining the images (even if simetimes i have desync of maximum 1 sec)

                                          Thank you again for your valuable help !

                                          [edit: fixed link SGaist]

                                          1 Reply Last reply
                                          0

                                          • Login

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Categories
                                          • Recent
                                          • Tags
                                          • Popular
                                          • Users
                                          • Groups
                                          • Search
                                          • Get Qt Extensions
                                          • Unsolved