How to play two different videos in two different displays simultaneously using gstreamer?
Daniel Rossi
electroteque at gmail.com
Fri Sep 13 00:51:55 UTC 2019
I'm new to all this and don't understand the graphics internals.
I only need one output personally so just need to specify kmssink.
So for RPI 3B will support v4l2h264dec ? I've yet to test that stage.
I've realised the packages aren't very up to date on Debian. So I spent
time trying to figure out how to rebuild them all for Buster as I needed
SRT support. It took me a long while which approach to go with and I
chose the Debian git sources.
I have a script to automate the package building from Debian git
sources, and modifying the rules configure arguments to my needs.
Building libdrm shouldn't be a problem. I'm pretty sure it was a
dependency and in there though.
And sorry for a noobie ask. I am using playbin3 for now in a gst-python
script. It works fine. But to specify v4l2h264dec, do I need to do a
more specified pipeline or can it autodetect it ?
Reason being, it has to accept rtmp or srt input. And they require
different pipelines. From is mpegts the other isn't.
------ Original Message ------
From: "Nicolas Dufresne" <nicolas at ndufresne.ca>
To: "Daniel Rossi" <electroteque at gmail.com>; "Discussion of the
development of and with GStreamer"
<gstreamer-devel at lists.freedesktop.org>
Sent: 9/13/2019 7:48:08 AM
Subject: Re: Re[2]: How to play two different videos in two different
displays simultaneously using gstreamer?
>Le jeudi 12 septembre 2019 à 15:02 +0000, Daniel Rossi a écrit :
>> I just saw a pipeline like this. The id is set here. But no idea what the id means. Somebody mentioned 32 is screen 1 and 64 is screen 2.
>>
>> As far as hardware decoding goes. Is video4linux the appropriate one to use or OpenMax, and does playbin3 detect this automatically ?
>
>V4L2 on most recent PI is to be used.
>
>>
>> gst-launch-1.0 -vvv -e filesrc location=big_buck_bunny_720p_h264.mkv ! matroskademux ! h264parse ! v4l2h264dec ! kmssink plane-id=64
>
>This is highly hardware specific. Unfortunately Debian don't have a
>drm-utils package, but if you build libdrm (mesa/drm), you'll find a
>utility call modetest. This dumps all supported connectors, encoders,
>crtcs and planes. Again, if you have planes that are attached to
>seperate crtcs and each associate with a different connectors, this
>approach of setting the plane-id may work. But as a normal user, the
>second kmssink will fail, as there can only be one DRM master. Some
>work would be needed to share the DRM driver FD (it's as simple as
>that).
>
>>
>> ------ Original Message ------
>> From: "Nicolas Dufresne" <nicolas at ndufresne.ca>
>> To: "Discussion of the development of and with GStreamer" <gstreamer-devel at lists.freedesktop.org>
>> Sent: 9/12/2019 10:50:44 PM
>> Subject: Re: How to play two different videos in two different displays simultaneously using gstreamer?
>>
>> > Le jeudi 12 septembre 2019 à 06:56 -0500, NikhilMG a écrit :
>> > > I am using
>> > > 1. Raspberry Pi 4 Model B which has 2 HDMI ports.
>> > > 2. Gstreamer-1.0
>> > >
>> > > I have two videos saved in memory card. I want to drive two videos to two
>> > > different HDMI port and play videos in two different Displays
>> > > simultaneously. I would like to know the Gstreamer pipeline to access the
>> > > HDMI-1 and HDMI-2 ports and also play two different videos in different
>> > > displays simultaneously.
>> > >
>> > > Here I am trying to drive video.mp4 to HDMI-2.
>> > > */gst-launch-1.0 playbin3 videosink="mfw-v4lsink device=dev/video18"
>> > > uri=file:///home/pi/Downloads/video.mp4/
>> >
>> >
>> > mfw-v4l2sink looks like one of Freescale plugin. The Raspberry Pi has
>> > stanard DRM drivers for the display. The easiest way is to start X11 or
>> > Wayland (weston), and then use the appropriate API to select the output
>> > to display on, this needs some programming of course.
>> >
>> > The alternative is to use kmssink, but that right now can only work if
>> > the two connectors can run on seperate CRTC, I don't know (and haven't
>> > tested yet) what is possible on the PI. I believe I can guide you on
>> > how to improve kmssink.
>> >
>> > > *
>> > > I even tried
>> > > */gst-launch-1.0 playbin3 videosink="mfw-v4lsink device=HDMI-2"
>> > > uri=file:///home/pi/Downloads/video.mp4
>> > > / *
>> > > and also tried
>> > > */gst-launch-1.0 playbin3 videosink="mfw-v4lsink device=dev/HDMI-2"
>> > > uri=file:///home/pi/Downloads/video.mp4
>> > > /*
>> > > I am not able to drive the video to HDMI-2 port. I expect the video to be
>> > > played in HDMI-2, but the actual output is coming in HDMI-1 for all the
>> > > above 3 given pipelines.
>> > >
>> > >
>> > >
>> > >
>> > >
>> > > --
>> > > Sent from: http://gstreamer-devel.966125.n4.nabble.com/
>> > > _______________________________________________
>> > > gstreamer-devel mailing list
>> > > gstreamer-devel at lists.freedesktop.org
>> > > https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>>
>> _______________________________________________
>> gstreamer-devel mailing list
>>gstreamer-devel at lists.freedesktop.org
>>https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/gstreamer-devel/attachments/20190913/bdf35172/attachment.html>
More information about the gstreamer-devel
mailing list