Mapping the "gst-launch -v playbin2" information messages to discrete pipeline

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

Mapping the "gst-launch -v playbin2" information messages to discrete pipeline

Icarus Alive
Hi,

Is there a known / deterministic way to convert the information
messages printed on screen, when one launches a pipeline like this --

$ gst-launch -v playbin2 uri="..."

to a pipeline with discrete elements/filter etc. ?

I have an IPcamera output available muxed in asf format, and while I
can get "playbin2" to play it, I am trying to create a pipeline that
instead of playing it, records audio and video into 2 separate files.
From the information messages printed on screen, with the successful
run of playbin2, I think I've got some clear good clues, I was
wondering if there is a deterministic way to convert the series of
those into a pipeline.


For example, here's a small initial part of the messages printed --

/GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0/GstTypeFindElement:typefindelement0.GstPad:src:
caps = video/x-ms-asf
/GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0/GstDecodeBin2:decodebin20/GstTypeFindElement:typefind:
force-caps = video/x-ms-asf
/GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0/GstDecodeBin2:decodebin20:
sink-caps = video/x-ms-asf
/GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0/GstDecodeBin2:decodebin20/GstTypeFindElement:typefind.GstPad:src:
caps = video/x-ms-asf
/GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0/GstQueue2:queue20.GstPad:sink:
caps = video/x-ms-asf
/GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0/GstQueue2:queue20.GstPad:src:
caps = video/x-ms-asf
/GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0/GstDecodeBin2:decodebin20/GstTypeFindElement:typefind.GstPad:sink:
caps = video/x-ms-asf
/GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0/GstDecodeBin2:decodebin20.GstGhostPad:sink:
caps = video/x-ms-asf
/GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0/GstDecodeBin2:decodebin20.GstGhostPad:sink.GstProxyPad:proxypad0:
caps = video/x-ms-asf
/GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0/GstDecodeBin2:decodebin20/GstASFDemux:asfdemux0.GstPad:sink:
caps = video/x-ms-asf
/GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0/GstDecodeBin2:decodebin20/GstMultiQueue:multiqueue0:
max-size-buffers = 5

and reading the hints I've translated it (roughly) into --

$ gst-launch uridecodebin ! video/x-ms-asf ! queue ! asfdemux ! tee ...

but of course, I don't have the full pipeline yet. I am happy to do
this manually, but is this a valid/right approach ?

thanks,
Icarus
_______________________________________________
gstreamer-devel mailing list
[hidden email]
http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Mapping the "gst-launch -v playbin2" information messages to discrete pipeline

Andreas Rödig
Hi Icarus,

use this:

$ export GST_DEBUG_DUMP_DOT_DIR=/tmp
$ gst-launch playbin uri=.....
$ cd /tmp
$ dot -Tpng -oout.png <filename>.dot

You need package graphviz.

Regards,
Andreas


Am 05.09.2011 14:01, schrieb Icarus Alive:

> Hi,
>
> Is there a known / deterministic way to convert the information
> messages printed on screen, when one launches a pipeline like this --
>
> $ gst-launch -v playbin2 uri="..."
>
> to a pipeline with discrete elements/filter etc. ?
>
> I have an IPcamera output available muxed in asf format, and while I
> can get "playbin2" to play it, I am trying to create a pipeline that
> instead of playing it, records audio and video into 2 separate files.
>  From the information messages printed on screen, with the successful
> run of playbin2, I think I've got some clear good clues, I was
> wondering if there is a deterministic way to convert the series of
> those into a pipeline.
>
>
> For example, here's a small initial part of the messages printed --
>
> /GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0/GstTypeFindElement:typefindelement0.GstPad:src:
> caps = video/x-ms-asf
> /GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0/GstDecodeBin2:decodebin20/GstTypeFindElement:typefind:
> force-caps = video/x-ms-asf
> /GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0/GstDecodeBin2:decodebin20:
> sink-caps = video/x-ms-asf
> /GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0/GstDecodeBin2:decodebin20/GstTypeFindElement:typefind.GstPad:src:
> caps = video/x-ms-asf
> /GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0/GstQueue2:queue20.GstPad:sink:
> caps = video/x-ms-asf
> /GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0/GstQueue2:queue20.GstPad:src:
> caps = video/x-ms-asf
> /GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0/GstDecodeBin2:decodebin20/GstTypeFindElement:typefind.GstPad:sink:
> caps = video/x-ms-asf
> /GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0/GstDecodeBin2:decodebin20.GstGhostPad:sink:
> caps = video/x-ms-asf
> /GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0/GstDecodeBin2:decodebin20.GstGhostPad:sink.GstProxyPad:proxypad0:
> caps = video/x-ms-asf
> /GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0/GstDecodeBin2:decodebin20/GstASFDemux:asfdemux0.GstPad:sink:
> caps = video/x-ms-asf
> /GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0/GstDecodeBin2:decodebin20/GstMultiQueue:multiqueue0:
> max-size-buffers = 5
>
> and reading the hints I've translated it (roughly) into --
>
> $ gst-launch uridecodebin ! video/x-ms-asf ! queue ! asfdemux ! tee ...
>
> but of course, I don't have the full pipeline yet. I am happy to do
> this manually, but is this a valid/right approach ?
>
> thanks,
> Icarus
> _______________________________________________
> gstreamer-devel mailing list
> [hidden email]
> http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel

--
Andreas Rödig

null821 media services
Weberstr. 2
86462 Langweid/Foret

Tel.: 0821 / 800 60 -34
Fax.: 0821 / 800 60 -55
Email: [hidden email]
Web: www.null821.de

________________________________________________________________
null821 media services GbR
Ralf Walz, Alexander Mohr
Weberstraße 2, 86462 Langweid/Foret
Steuernummer: 102/181/07201
_______________________________________________
gstreamer-devel mailing list
[hidden email]
http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Mapping the "gst-launch -v playbin2" information messages to discrete pipeline

Icarus Alive
On Mon, Sep 5, 2011 at 6:02 PM, Andreas Rödig <[hidden email]> wrote:

> Hi Icarus,
>
> use this:
>
> $ export GST_DEBUG_DUMP_DOT_DIR=/tmp
> $ gst-launch playbin uri=.....
> $ cd /tmp
> $ dot -Tpng -oout.png <filename>.dot
>
> You need package graphviz.
>

This is just sheer awsomeness... (i.e. if there is such a word), sheer joy.
Thanks for sharing this.

>
> Am 05.09.2011 14:01, schrieb Icarus Alive:
>>
>> Hi,
>>
>> Is there a known / deterministic way to convert the information
>> messages printed on screen, when one launches a pipeline like this --
>>
>> $ gst-launch -v playbin2 uri="..."
>>
>> to a pipeline with discrete elements/filter etc. ?
>>
>> I have an IPcamera output available muxed in asf format, and while I
>> can get "playbin2" to play it, I am trying to create a pipeline that
>> instead of playing it, records audio and video into 2 separate files.
>>  From the information messages printed on screen, with the successful
>> run of playbin2, I think I've got some clear good clues, I was
>> wondering if there is a deterministic way to convert the series of
>> those into a pipeline.
>>
>>
>> For example, here's a small initial part of the messages printed --
>>
>>
>> /GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0/GstTypeFindElement:typefindelement0.GstPad:src:
>> caps = video/x-ms-asf
>>
>> /GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0/GstDecodeBin2:decodebin20/GstTypeFindElement:typefind:
>> force-caps = video/x-ms-asf
>>
>> /GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0/GstDecodeBin2:decodebin20:
>> sink-caps = video/x-ms-asf
>>
>> /GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0/GstDecodeBin2:decodebin20/GstTypeFindElement:typefind.GstPad:src:
>> caps = video/x-ms-asf
>>
>> /GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0/GstQueue2:queue20.GstPad:sink:
>> caps = video/x-ms-asf
>>
>> /GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0/GstQueue2:queue20.GstPad:src:
>> caps = video/x-ms-asf
>>
>> /GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0/GstDecodeBin2:decodebin20/GstTypeFindElement:typefind.GstPad:sink:
>> caps = video/x-ms-asf
>>
>> /GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0/GstDecodeBin2:decodebin20.GstGhostPad:sink:
>> caps = video/x-ms-asf
>>
>> /GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0/GstDecodeBin2:decodebin20.GstGhostPad:sink.GstProxyPad:proxypad0:
>> caps = video/x-ms-asf
>>
>> /GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0/GstDecodeBin2:decodebin20/GstASFDemux:asfdemux0.GstPad:sink:
>> caps = video/x-ms-asf
>>
>> /GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0/GstDecodeBin2:decodebin20/GstMultiQueue:multiqueue0:
>> max-size-buffers = 5
>>
>> and reading the hints I've translated it (roughly) into --
>>
>> $ gst-launch uridecodebin ! video/x-ms-asf ! queue ! asfdemux ! tee ...
>>
>> but of course, I don't have the full pipeline yet. I am happy to do
>> this manually, but is this a valid/right approach ?
>>
>> thanks,
>> Icarus
>> _______________________________________________
>> gstreamer-devel mailing list
>> [hidden email]
>> http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>
> --
> Andreas Rödig
>
> null821 media services
> Weberstr. 2
> 86462 Langweid/Foret
>
> Tel.: 0821 / 800 60 -34
> Fax.: 0821 / 800 60 -55
> Email: [hidden email]
> Web: www.null821.de
>
> ________________________________________________________________
> null821 media services GbR
> Ralf Walz, Alexander Mohr
> Weberstraße 2, 86462 Langweid/Foret
> Steuernummer: 102/181/07201
>
_______________________________________________
gstreamer-devel mailing list
[hidden email]
http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel