Solved GStreamer : Pipeline to connect VNC server and Display/Record the remote GUI
-
@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 -
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) -
@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
-
@jsulm hi ,
I did not mension I'm using windows. -
@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 ?
-
hi @SGaist thank you,
please see my output for gst-inspect-1.0C:\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
-
Then use the
openh264enc
encoder in place of the other. -
@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 ?
-
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 ...
-
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 trygst-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
-
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
-
A silly question, did you try to read the file with gstreamer directly ?
-
@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]
-
Maybe another encoder could work better.
No, QVNCClient is not from me, I just found it :)