Hi
I am new to gstreamer. I am using the following pipeline (suggested by a friend) to run mpeg2 files on decklink card. The issue I am facing that I can't able to play gaplessly. gst-launch-1.0 uridecodebin uri=file://'/Users/administrator/Desktop/MAC_APPS/senate.mov' name=decoder decoder. ! tee name=t t. ! queue ! autovideoconvert ! deinterlace method=greedyh ! videoscale ! interlace field-pattern=2:2 top-field-first=TRUE ! decklinkvideosink mode=3 decoder. ! audioconvert ! decklinkaudiosink t. ! queue ! autovideosink Can anyone help me to convert this to playbin as I researched that gapless playback is possible with playbin using about to finish call back Thanking you in anticipation Regards Adeel Arshad _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
On Sun, 24 Jul 2016, at 10:34 AM, Adeel Arshad wrote: > Hi > > I am new to gstreamer. I am using the following pipeline (suggested by a > friend) to run mpeg2 files on decklink card. The issue I am facing that I > can't able to play gaplessly. > > gst-launch-1.0 uridecodebin > uri=file://'/Users/administrator/Desktop/MAC_APPS/senate.mov' > name=decoder > decoder. ! tee name=t t. ! queue ! autovideoconvert ! deinterlace > method=greedyh ! videoscale ! interlace field-pattern=2:2 > top-field-first=TRUE ! decklinkvideosink mode=3 decoder. ! audioconvert ! > decklinkaudiosink t. ! queue ! autovideosink That should pretty much translate to: playbin uri=... video-sink='decklinkvideosink mode=3' audio-sink='decklinkaudiosink' video-filter='whatever you actually need' -- Arun _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
Hi Arun,
Thanks for your reply. I tried the pipeline you suggested and use the filter mpeg2dec as the application I am developing mostly use mpeg2 or which filter I can use which handle most of the video formats. I am getting following error when running the pipeline. failed to configure the video sink. Secondly, How can I use multiple video sink. Is the following syntax correct video-sink = 'autovideosink ! decklinkvideosink mode=3' Thanking you in anticipation Regards Adeel Arshad |
On Mon, 25 Jul 2016, at 10:29 AM, adeel wrote: > Hi Arun, > > Thanks for your reply. I tried the pipeline you suggested and use the > filter > mpeg2dec as the application I am developing mostly use mpeg2 or which > filter > I can use which handle most of the video formats. playbin, will use uridecodebin under the hood and plug in a decoder. The filter part was for the interlacing bits that you had in the pipeline you posted. > I am getting following error when running the pipeline. > failed to configure the video sink. > > Secondly, How can I use multiple video sink. Is the following syntax > correct > > video-sink = 'autovideosink ! decklinkvideosink mode=3' What do you want it to do there? playbin takes a single video-sink property, but if you want to push the same video to two sinks, you could provide it a bin with a tee connected to the various sinks. -- Arun _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
Hi Arun I want multiple sink because I want to playback a video using decklink card and also display it locally. On Mon, Jul 25, 2016 at 11:34 AM, Arun Raghavan <[hidden email]> wrote:
_______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
On Mon, 25 Jul 2016, at 12:16 PM, Adeel Arshad wrote:
> Hi Arun > > I want multiple sink because I want to playback a video using decklink > card > and also display it locally. To do this on the command line, you would set the property on playbin with something like: video-sink='tee name=t t. ! queue ! autovideosink t. ! queue ! decklinkvideosink' In code, you would create a bin with the tee, queues and sinks, and set that on the 'video-sink' property of playbin. -- Arun _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
In reply to this post by adeel
Hi Adeel,
I've put together a quick and dirty example of gapless playback using playbin (modified basic-tutorial-5). It does not render to the Decklink card, I don't have time to implement that, but it plays 5 files seamlessly. Regards, Dave. _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel adeel8.c (23K) Download Attachment |
In reply to this post by Arun Raghavan-4
Hi Arun My pipeline is as follow. I am using the same to playback files and its working fine. pipeline = gst_parse_launch("playbin uri=file:///Users/administrator/Desktop/MAC_APPS/senate.mov video-sink = 'tee name=t t. ! queue ! autovideosink t. ! decklinkvideosink mode=3' audio-sink='decklinkaudiosink' video-filter = 'deinterlace method=greedyh ! interlace field-pattern = 2:2 top-field-first = TRUE'", &error); The problem I am facing is with gapless playback. The gapless playback is working fine when the video-sink is set to autovideosink only and no deinterlacing is used but when I added decklinkvideosink and deinterlacing it play the one file perfectly and when try to play the next file it halts on last frame of the previous video but track bar showing that the video is playing. What should I do Thanking you in anticipation Regards Adeel Arshad On Monday, July 25, 2016, Arun Raghavan <[hidden email]> wrote: On Mon, 25 Jul 2016, at 12:16 PM, Adeel Arshad wrote: _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
On Fri, 29 Jul 2016, at 01:03 AM, Adeel Arshad wrote: > Hi Arun > > My pipeline is as follow. I am using the same to playback files and its > working fine. > > pipeline = gst_parse_launch("playbin uri=file:///Users/ > administrator/Desktop/MAC_APPS/senate.mov video-sink = 'tee name=t t. ! > queue ! autovideosink t. ! decklinkvideosink mode=3' > audio-sink='decklinkaudiosink' video-filter = 'deinterlace method=greedyh > ! > interlace field-pattern = 2:2 top-field-first = TRUE'", &error); > > The problem I am facing is with gapless playback. The gapless playback is > working fine when the video-sink is set to autovideosink only and no > deinterlacing is used but when I added decklinkvideosink and > deinterlacing > it play the one file perfectly and when try to play the next file it > halts > on last frame of the previous video but track bar showing that the video > is > playing. What should I do > > Thanking you in anticipation Does it work if you have only the decklinkvideosink as your sink? If yes, then try adding deinterlacing (but not autovideosink). You first want to find the minimal pipeline that causes things to not work. -- Arun _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
Hi Arun No, It didn't work with decklinkvideosink only if interlacing is not used. It gives mpegpsdemux error for mpeg files and qtdemux error if mov file is used. If we use interlacing in video filter. The first file plays perfectly but when second file is played it struck on first frame till the end of file.This is my pipeline code Regardsdata.vs = gst_element_factory_make("decklinkvideosink","data.vs"); g_object_set(data.vs,"mode",(gint) 3,NULL); data.vbin = gst_parse_bin_from_description("queue ! interlace field-pattern=1:1 top-field-first=true ! videorate ! capsfilter caps=\"video/x-raw,framerate=25/1\"",TRUE,NULL); data.abin = gst_parse_bin_from_description("audioconvert ! decklinkaudiosink",TRUE,NULL); data.pipeline = gst_parse_launch("playbin uri=file:///Storage/Tests/KURLEEZ.mpg",NULL); On Thu, Aug 4, 2016 at 8:35 AM, Arun Raghavan <[hidden email]> wrote:
_______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
On Thu, 4 Aug 2016, at 10:27 AM, Adeel Arshad wrote: > Hi Arun > > No, It didn't work with decklinkvideosink only if interlacing is not > used. > It gives mpegpsdemux error for mpeg files and qtdemux error if mov file > is > used. If we use interlacing in video filter. The first file plays > perfectly > but when second file is played it struck on first frame till the end of > file. > > This is my pipeline code > > data.vs = gst_element_factory_make("decklinkvideosink","data.vs"); > g_object_set(data.vs,"mode",(gint) 3,NULL); > > data.vbin = gst_parse_bin_from_description("queue ! interlace > field-pattern=1:1 top-field-first=true ! videorate ! capsfilter > caps=\"video/x-raw,framerate=25/1\"",TRUE,NULL); > data.abin = gst_parse_bin_from_description("audioconvert ! > decklinkaudiosink",TRUE,NULL); > > data.pipeline = gst_parse_launch("playbin > uri=file:///Storage/Tests/KURLEEZ.mpg",NULL); > g_object_set(data.pipeline,"video-sink",data.vs,NULL); > g_object_set(data.pipeline,"video-filter",data.vbin,NULL); > g_object_set(data.pipeline,"audio-sink",data.abin,NULL); At this point, I suspect someone with the hardware would need to try things out and figure out why this is happening. Regards, Arun _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
In reply to this post by adeel
Hi,
I think your pipeline is not consistent. For decklinkvideosink, mode 3 is "PAL SD 50i" which is a framerate of 50fps. Your capsfilter is specified as 25fps. -Andres |
Free forum by Nabble | Edit this page |