How to play two different videos in two different displays simultaneously using gstreamer?

NikhilMG nikhilganapathy007 at gmail.com
Fri Sep 13 07:28:12 UTC 2019


In downloads I have .mkv .mp4 and .avi files. I am trying to drive video to
different HDMI port. I have connected two monitors to two hdmi port.
I used the command *modetest *and I got the following result.  I have only
one plane-id. That is 28

imp.txt <http://gstreamer-devel.966125.n4.nabble.com/file/t379062/imp.txt>  


I used the following pipeline

*gst-launch-1.0 -vvv -e filesrc location=/home/pi/Downloads/count.mkv !
matroskademux ! h264parse ! v4l2h264dec ! kmssink plane-id=28
*

and I got the following error

/Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
/GstPipeline:pipeline0/GstKMSSink:kmssink0: display-width = 1920
/GstPipeline:pipeline0/GstKMSSink:kmssink0: display-height = 1080
/GstPipeline:pipeline0/GstH264Parse:h264parse0.GstPad:sink: caps =
video/x-h264, level=(string)3, profile=(string)high,
codec_data=(buffer)0164001effe1001c6764001eacd940b43dbff00080009100000303e90000ea600f162d9601000668ebe3cb22c0,
stream-format=(string)avc, alignment=(string)au, width=(int)720,
height=(int)480, pixel-aspect-ratio=(fraction)8/9,
framerate=(fraction)30000/1001, interlace-mode=(string)mixed
/GstPipeline:pipeline0/GstH264Parse:h264parse0.GstPad:src: caps =
video/x-h264, level=(string)3, profile=(string)high,
stream-format=(string)byte-stream, alignment=(string)au, width=(int)720,
height=(int)480, pixel-aspect-ratio=(fraction)8/9,
framerate=(fraction)30000/1001, interlace-mode=(string)mixed,
chroma-format=(string)4:2:0, bit-depth-luma=(uint)8,
bit-depth-chroma=(uint)8, parsed=(boolean)true
ERROR: from element /GstPipeline:pipeline0/v4l2h264dec:v4l2h264dec0: Device
'/dev/video10' does not support interleaved interlacing
Additional debug info:
gstv4l2object.c(3817): gst_v4l2_object_set_format_full ():
/GstPipeline:pipeline0/v4l2h264dec:v4l2h264dec0:
Device wants progressive interlacing
ERROR: pipeline doesn't want to preroll.
Setting pipeline to NULL ...
Freeing pipeline .../

If I use plane-id= 80, I get following error

/Setting pipeline to PAUSED ...
ERROR: Pipeline doesn't want to pause.
ERROR: from element /GstPipeline:pipeline0/GstKMSSink:kmssink0: Could not
find a plane for crtc
Additional debug info:
gstkmssink.c(755): gst_kms_sink_start ():
/GstPipeline:pipeline0/GstKMSSink:kmssink0
Setting pipeline to NULL .../


I tried using fbdevsink

* $ gst-launch-1.0 v4l2src ! jpegdec ! fbdevsink
device=/dev/fb0gst-launch-1.0 -v videotestsrc ! fbdevsink device=/dev/fb0*


I used this command and it is showing only one frame buffer

*pi at raspberrypi:~ $ ls -l /dev/fb*
crw-rw---- 1 root video 29, 0 Sep 13 11:10 /dev/fb0*



--
Sent from: http://gstreamer-devel.966125.n4.nabble.com/


More information about the gstreamer-devel mailing list