0

I have an customized i.MX6 Board which has a LCD Display connected to it. We have been streaming videos over IP using gstreamer udpsrc/udpsink pipelines..

Pipeline at PC:

C:\gstreamer\1.0\x86_64\bin\gst-launch-1.0.exe -v filesrc location=C:\\gstreamer\\1.0\\x86_64\\bin\\hash.h264 ! h264parse config-interval=-1 ! rtph264pay pt=96 config-interval=-1 ! udpsink host=<ip address> port=5004 sync=true

Pipeline on i.MX6:

gst-launch -v udpsrc port=5004 ! application/x-rtp, payload=96 ! rtph264depay ! vpudec low-latency=true ! imxv4l2sink sync=false

Is there any way I modify the PC pipeline to get the windows desktop streamed to embedded board display or what are the steps required to stream the windows desktop using gstreamer

md.jamal
  • 4,067
  • 8
  • 45
  • 108

1 Answers1

3

The winscreencap plugin (https://github.com/agx/gst-plugins-bad/tree/master/sys/winscreencap) includes two elements for capturing windows desktops - dx9screencapsrc and gdiscreencapsrc.

Florian Zwoch
  • 6,764
  • 2
  • 12
  • 21
  • Thanks.. But when I modify the plugin on PC to use dx9screencapsrc, C:\gstreamer\1.0\x86_64\bin\gst-launch-1.0.exe -v dx9screencapsrc ! video/x-raw,framerate=30/1 ! queue ! videoconvert ! x264enc ! h264parse config-interval=-1 ! rtph264pay pt=96 config-interval=-1 ! udpsink host=153.77.205.139 port=5004 sync=true. It fails with error on the receiver side.. "No valid frames found" – md.jamal Jan 29 '18 at 04:51
  • Then you need to debug into that why this is the case.. SPS/PPS not received? The input source should not make a difference.. – Florian Zwoch Jan 29 '18 at 08:38
  • In debugging I found that "VPU is failing to decode" – md.jamal Jan 29 '18 at 09:00
  • maybe you want another h264parse right before the decoder. make sure x264enc operates in the right profile. It may encoder in 4:4:4 sampling which not many decoders support. – Florian Zwoch Jan 29 '18 at 09:03
  • what do you mean by another h264parse – md.jamal Jan 29 '18 at 13:24
  • This is the error: imxvpuapi imxvpuapi_vpulib.c:1387:imx_vpu_dec_get_initial_info: could not retrieve configuration information: failure – md.jamal Jan 29 '18 at 13:27
  • I understood the problem may be due to different sampling, as the video mp4 play has different sampling , whereas when encoded with x264enc i get different sampling ( 4:4:4 ), how can I change it – md.jamal Feb 01 '18 at 11:59
  • 1
    I got it working after I change the encoder profile to Baseline: C:\gstreamer\1.0\x86_64\bin\gst-launch-1.0.exe -v dx9screencapsrc ! queue ! videoconvert ! x264enc ! "video/x-h264,profile=baseline" ! h264parse config-interval=-1 ! rtph264pay pt=96 config-interval=-1 ! udpsink host= port=5004 sync=true – md.jamal Feb 02 '18 at 04:23