Hi there,
I've got a question regarding my implementation of the following specification: ----------------------------------------------------------------------------------------------------- - Display N videostreams in different views on a screen. - "N" = Number of streams. Will be specified by the number of cameras available. - "view" = Compositor constellation (Dual-Split, Triple-Split, Picture-in-picture, ...) - It should be possible to switch to a different view during runtime. My current solution is: ----------------------------------------------------------------------------------------------------- - Create sink and compositor elements and adding + linking them together in a class "Streamer" - Creating N objects of class "Camera", which contains ElementPtr for source, depay, parse and decode. - Adding and linking each element of each "Camera" object to the above pipeline, which results in multiple compositor pads. - Keeping a pointer to the respective compositor Pad in each "Camera" object. (???) --> Upon changing to a different view, I simply: - Edit the properties of these Pads (xpos, ypos, ...) while the pipeline is still running. (???) - Show hide the "Camera" object if neccessary (alpha property) So my question is: ----------------------------------------------------------------------------------------------------- Am I approaching the problem the right way? (Especially the "(???)" notated points seem quite suspect to me... Can I improve the performance of switching between two views (Since it's still quite buggy and slow). Thank you in advance! Christian -- Sent from: http://gstreamer-devel.966125.n4.nabble.com/ _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
Hello,
Unless you want to record the composite image, then I would just display each video in its own window, that way each camera has its own pipeline, and if one camera stops or runs into an issue, it doesn't stop all of the other cameras. It would also allow you to show and hide / start and stop the cameras independently. Hope that helps! On 2/2/2018 5:25 AM, chrisplus3 wrote: > Hi there, > > I've got a question regarding my implementation of the following > specification: > ----------------------------------------------------------------------------------------------------- > > - Display N videostreams in different views on a screen. > - "N" = Number of streams. Will be specified by the number of cameras > available. > - "view" = Compositor constellation (Dual-Split, Triple-Split, > Picture-in-picture, ...) > - It should be possible to switch to a different view during runtime. > > > My current solution is: > ----------------------------------------------------------------------------------------------------- > > - Create sink and compositor elements and adding + linking them together in > a class "Streamer" > - Creating N objects of class "Camera", which contains ElementPtr for > source, depay, parse and decode. > - Adding and linking each element of each "Camera" object to the above > pipeline, which results in multiple compositor pads. > - Keeping a pointer to the respective compositor Pad in each "Camera" > object. (???) > > --> Upon changing to a different view, I simply: > > - Edit the properties of these Pads (xpos, ypos, ...) while the pipeline is > still running. (???) > - Show hide the "Camera" object if neccessary (alpha property) > > > So my question is: > ----------------------------------------------------------------------------------------------------- > > Am I approaching the problem the right way? (Especially the "(???)" notated > points seem quite suspect to me... > Can I improve the performance of switching between two views (Since it's > still quite buggy and slow). > > > Thank you in advance! > > Christian > > > > > -- > Sent from: http://gstreamer-devel.966125.n4.nabble.com/ > _______________________________________________ > gstreamer-devel mailing list > [hidden email] > https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel > > _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
Hi Michael,
thanks for the suggestion. I will try that. Is it possible to change the sink properties of a running pipeline, e.g.: - window-width, window-height - window-x-coord, window-y-coord ... Or do I need to pause the pipeline I want to change, and then change stuff ? -- Sent from: http://gstreamer-devel.966125.n4.nabble.com/ _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
Use gst_video_overlay_set_window_handle to set the window handle to the
window you want to output to. Note that this does not work with autovideosink, it only works with "actual" video sinks. But you should be able to change the width and height of the window its in without pausing. As a bit of warning, I have only done this on windows with Qt, but I have been able to show/hide, move / resize the QWidgets I am rendering to. Hope that helps! On 2/5/2018 12:00 AM, chrisplus3 wrote: > Hi Michael, > > thanks for the suggestion. I will try that. > > Is it possible to change the sink properties of a running pipeline, e.g.: > - window-width, window-height > - window-x-coord, window-y-coord ... > > Or do I need to pause the pipeline I want to change, and then change stuff ? > > > > -- > Sent from: http://gstreamer-devel.966125.n4.nabble.com/ > _______________________________________________ > gstreamer-devel mailing list > [hidden email] > https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
I've been able to change my application from one pipeline with compositor to
one pipeline for each stream. But since I have neither a window manager, nor a display manager and I'm operating on a iMX6, I cannot use gst_video_overlay_set_window_handle. Right now I'm changing the imxg2dvideosink properties (window-width, window-height, ...) while the pipeline is running. The strange thing is, that sometimes there are smooth transitions upon changing the properties and sometimes the screen blacks out for 1 or 2 seconds. Anyway, thatnk you vm for your help ! -- Sent from: http://gstreamer-devel.966125.n4.nabble.com/ _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
Free forum by Nabble | Edit this page |