Hi,
I have a requirement to transmux an FLV stream (h.264/mp3) to mpgets(h.264/mp3). I do not want to decode and mux. How can this be achieved by using encodebin ? Or combination of uridecodebin and encodebin .. Plz let me know. Regards, Jayanth _______________________________________________ gstreamer-devel mailing list [hidden email] http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
Administrator
|
On Fri, 2011-02-11 at 20:40 +0530, Jayanth K.P wrote:
> Hi, > I have a requirement to transmux an FLV stream (h.264/mp3) to > mpgets(h.264/mp3). I do not want to decode and mux. > > How can this be achieved by using encodebin ? Or combination of > uridecodebin and encodebin .. Plz let me know. Add the proper h264 and mp3 caps to the uridecodebin caps property (or use the various uridecodebin signals to stop decoding) Create a container encoding profile for mpegts to which you'll add two stream profiles, one for h264 and one for mp3 and then set that on encodebin. You'll then be able to link the non-decoded pads of uridecodebin to the sinkpads of encodebin. -base/tests/examples/encoding/ might help you. Edward > > Regards, > Jayanth > _______________________________________________ > gstreamer-devel mailing list > [hidden email] > http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel _______________________________________________ gstreamer-devel mailing list [hidden email] http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
Hi Edward,
Thanks .. I will try this tomorrow and let you know. Jayanth On Sat, Feb 12, 2011 at 6:32 PM, Edward Hervey <[hidden email]> wrote: > On Fri, 2011-02-11 at 20:40 +0530, Jayanth K.P wrote: >> Hi, >> I have a requirement to transmux an FLV stream (h.264/mp3) to >> mpgets(h.264/mp3). I do not want to decode and mux. >> >> How can this be achieved by using encodebin ? Or combination of >> uridecodebin and encodebin .. Plz let me know. > > Add the proper h264 and mp3 caps to the uridecodebin caps property (or > use the various uridecodebin signals to stop decoding) > Create a container encoding profile for mpegts to which you'll add two > stream profiles, one for h264 and one for mp3 and then set that on > encodebin. > You'll then be able to link the non-decoded pads of uridecodebin to > the sinkpads of encodebin. > > -base/tests/examples/encoding/ might help you. > > Edward > >> >> Regards, >> Jayanth >> _______________________________________________ >> gstreamer-devel mailing list >> [hidden email] >> http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel > > > gstreamer-devel mailing list [hidden email] http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
In reply to this post by Edward Hervey
Hi Edward,
I am running base/tests/examples/encoding/encoding application (this test application uses uridecodebin and encodebin). Here feed08 is a FLV file with h264 video. I am stopping the decoding by adding video/x-h264 and audio/mpeg,mpegversion=4 to the cap of uridecodebin. ./encoding file:///home/jayanth/feed08 -o f1.ts -f video/mpegts -v video/x-h264 -a audio/mpeg,mpegversion=4 --gst-debug-level=3 But somehow i am not able to get "autoplug-continue" signal .. Plz suggest me what could be the issue. - Jayanth Here are some logs - =============== ncoding parameters Container format : MPEG-2 Transport Stream (video/mpegts) Video format : H.264 (video/x-h264) Audio format : MPEG-4 AAC (audio/mpeg, mpegversion=(int)4) Input URI : file:///home/jayanth/feed08 Output URI : file:///home/jayanth/gstreamer/gst-plugins-base-0.10.32/tests/examples/encoding/f1.ts 0:00:00.011603349 25194 0x607340 INFO GST_PLUGIN_LOADING gstplugin.c:859:gst_plugin_load_file: plugin "/usr/local/lib/gstreamer-0.10/libgstcoreelements.so" loaded 0:00:00.011632371 25194 0x607340 INFO GST_ELEMENT_FACTORY gstelementfactory.c:369:gst_element_factory_create: creating element "filesink" named "sink" 0:00:00.011947524 25194 0x607340 INFO GST_ELEMENT_PADS gstelement.c:716:gst_element_add_pad:<GstBaseSink@0x674000> adding pad 'sink' ========== GST_URI_SINK: Created SINK(file:///home/jayanth/gstreamer/gst-plugins-base-0.10.32/tests/examples/encoding/f1.ts) Successfully ========== 0:00:00.012469718 25194 0x607340 INFO GST_PLUGIN_LOADING gstplugin.c:859:gst_plugin_load_file: plugin "/usr/local/lib/gstreamer-0.10/libgstdecodebin2.so" loaded 0:00:00.012496410 25194 0x607340 INFO GST_ELEMENT_FACTORY gstelementfactory.c:371:gst_element_factory_create: creating element "uridecodebin" ========== Created SRC(file:///home/jayanth/feed08) Successfully ========== Available container formats: ======================== CAPS TO URIDECODEBIN: Num cont caps = 3 =============== (video/x-raw-yuv; video/x-raw-rgb; video/x-raw-gray; audio/x-raw-int; audio/x-raw-float; text/plain; text/x-pango-markup; video/x-dvd-subpicture; subpicture/x-pgs; video/x-h264; audio/mpeg, mpegversion=(int)4) ======================== END CAPS TO URIDECODEBIN =============== 0:00:00.013302635 25194 0x607340 INFO GST_PLUGIN_LOADING gstplugin.c:859:gst_plugin_load_file: plugin "/usr/local/lib/gstreamer-0.10/libgstencodebin.so" loaded 0:00:00.013330062 25194 0x607340 INFO GST_ELEMENT_FACTORY gstelementfactory.c:371:gst_element_factory_create: creating element "encodebin" 0:00:00.013727810 25194 0x607340 INFO GST_ELEMENT_PADS gstelement.c:716:gst_element_add_pad:<GstEncodeBin@0x67d030> adding pad 'src' 0:00:00.014145333 25194 0x607340 INFO GST_PLUGIN_LOADING gstplugin.c:859:gst_plugin_load_file: plugin "/usr/local/lib/gstreamer-0.10/libgstmpegtsmux.so" loaded 0:00:00.014171670 25194 0x607340 INFO GST_ELEMENT_FACTORY gstelementfactory.c:369:gst_element_factory_create: creating element "mpegtsmux" named "muxer" 0:00:00.014426124 25194 0x607340 INFO GST_ELEMENT_PADS gstelement.c:716:gst_element_add_pad:<MpegTsMux@0x683050> adding pad 'src' 0:00:00.014557437 25194 0x607340 INFO GST_ELEMENT_PADS gstelement.c:963:gst_element_get_static_pad: found pad muxer:src 0:00:00.014615785 25194 0x607340 INFO GST_PADS gstpad.c:1941:gst_pad_link_prepare: trying to link muxer:src and src:proxypad0 0:00:00.014637911 25194 0x607340 INFO GST_PADS gstpad.c:2124:gst_pad_link_full: linked muxer:src and src:proxypad0, successful 0:00:00.014687659 25194 0x607340 INFO GST_ELEMENT_FACTORY gstelementfactory.c:369:gst_element_factory_create: creating element "pipeline" named "encoding-pipeline" 0:00:00.014795810 25194 0x607340 INFO GST_ELEMENT_PADS gstutils.c:1568:gst_element_link_pads_full: trying to link element encodebin0:(any) to element sink:(any) 0:00:00.014824742 25194 0x607340 INFO GST_PADS gstutils.c:1028:gst_pad_check_link: trying to link encodebin0:src and sink:sink 0:00:00.014861179 25194 0x607340 INFO GST_PADS gstutils.c:1468:prepare_link_maybe_ghosting: encodebin0 and sink in same bin, no need for ghost pads 0:00:00.014887986 25194 0x607340 INFO GST_PADS gstpad.c:1941:gst_pad_link_prepare: trying to link encodebin0:src and sink:sink 0:00:00.014917822 25194 0x607340 INFO GST_PADS gstpad.c:2124:gst_pad_link_full: linked encodebin0:src and sink:sink, successful 0:00:00.015199213 25194 0x607340 INFO GST_STATES gstelement.c:2341:gst_element_continue_state:<sink> completed state change to READY 0:00:00.015220670 25194 0x607340 INFO GST_STATES gstelement.c:2354:gst_element_continue_state:<sink> posting state-changed NULL to READY 0:00:00.015252556 25194 0x607340 INFO GST_STATES gstbin.c:2492:gst_bin_change_state_func:<encoding-pipeline> child 'sink' changed state to 2(READY) successfully 0:00:00.015291274 25194 0x607340 INFO GST_STATES gstelement.c:2341:gst_element_continue_state:<muxer> completed state change to READY 0:00:00.015307364 25194 0x607340 INFO GST_STATES gstelement.c:2354:gst_element_continue_state:<muxer> posting state-changed NULL to READY 0:00:00.015329696 25194 0x607340 INFO GST_STATES gstbin.c:2492:gst_bin_change_state_func:<encodebin0> child 'muxer' changed state to 2(READY) successfully 0:00:00.015356632 25194 0x607340 INFO GST_STATES gstelement.c:2341:gst_element_continue_state:<encodebin0> completed state change to READY 0:00:00.015372438 25194 0x607340 INFO GST_STATES gstelement.c:2354:gst_element_continue_state:<encodebin0> posting state-changed NULL to READY 0:00:00.015393544 25194 0x607340 INFO GST_STATES gstbin.c:2492:gst_bin_change_state_func:<encoding-pipeline> child 'encodebin0' changed state to 2(READY) successfully 0:00:00.015412630 25194 0x607340 INFO GST_STATES gstelement.c:2314:gst_element_continue_state:<encoding-pipeline> committing state from NULL to READY, pending PLAYING, next PAUSED 0:00:00.015434457 25194 0x607340 INFO GST_STATES gstelement.c:2323:gst_element_continue_state:<encoding-pipeline> continue state change READY to PAUSED, final PLAYING 0:00:00.015501810 25194 0x607340 INFO GST_STATES gstbin.c:2498:gst_bin_change_state_func:<encoding-pipeline> child 'sink' is changing state asynchronously to PAUSED 0:00:00.015540433 25194 0x607340 INFO GST_STATES gstelement.c:2341:gst_element_continue_state:<muxer> completed state change to PAUSED 0:00:00.015557009 25194 0x607340 INFO GST_STATES gstelement.c:2354:gst_element_continue_state:<muxer> posting state-changed READY to PAUSED 0:00:00.015579365 25194 0x607340 INFO GST_STATES gstbin.c:2492:gst_bin_change_state_func:<encodebin0> child 'muxer' changed state to 3(PAUSED) successfully 0:00:00.015602076 25194 0x607340 INFO GST_STATES gstelement.c:2341:gst_element_continue_state:<encodebin0> completed state change to PAUSED 0:00:00.015617937 25194 0x607340 INFO GST_STATES gstelement.c:2354:gst_element_continue_state:<encodebin0> posting state-changed READY to PAUSED 0:00:00.015638648 25194 0x607340 INFO GST_STATES gstbin.c:2492:gst_bin_change_state_func:<encoding-pipeline> child 'encodebin0' changed state to 3(PAUSED) successfully GOOOOOOOOOOOOOOOOOOT bus_message_cb = <64> GOOOOOOOOOOOOOOOOOOT bus_message_cb = <64> GOOOOOOOOOOOOOOOOOOT bus_message_cb = <64> GOOOOOOOOOOOOOOOOOOT bus_message_cb = <64> GOOOOOOOOOOOOOOOOOOT bus_message_cb = <64> GOOOOOOOOOOOOOOOOOOT bus_message_cb = <64> On Sat, Feb 12, 2011 at 6:32 PM, Edward Hervey <[hidden email]> wrote: > On Fri, 2011-02-11 at 20:40 +0530, Jayanth K.P wrote: >> Hi, >> I have a requirement to transmux an FLV stream (h.264/mp3) to >> mpgets(h.264/mp3). I do not want to decode and mux. >> >> How can this be achieved by using encodebin ? Or combination of >> uridecodebin and encodebin .. Plz let me know. > > Add the proper h264 and mp3 caps to the uridecodebin caps property (or > use the various uridecodebin signals to stop decoding) > Create a container encoding profile for mpegts to which you'll add two > stream profiles, one for h264 and one for mp3 and then set that on > encodebin. > You'll then be able to link the non-decoded pads of uridecodebin to > the sinkpads of encodebin. > > -base/tests/examples/encoding/ might help you. > > Edward > >> >> Regards, >> Jayanth >> _______________________________________________ >> gstreamer-devel mailing list >> [hidden email] >> http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel > > > gstreamer-devel mailing list [hidden email] http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
In reply to this post by Edward Hervey
Hi Edward,
I am running base/tests/examples/encoding/encoding application (this test application uses uridecodebin and encodebin). Here feed08 is a FLV file with h264 video. I am stopping the decoding by adding video/x-h264 and audio/mpeg,mpegversion=4 to the cap of uridecodebin. ./encoding file:///home/jayanth/feed08 -o f1.ts -f video/mpegts -v video/x-h264 -a audio/mpeg,mpegversion=4 --gst-debug-level=3 But somehow i am not able to get "autoplug-continue" signal .. Plz suggest me what could be the issue. - Jayanth Here are some logs - =============== Encoding parameters Container format : MPEG-2 Transport Stream (video/mpegts) Video format : H.264 (video/x-h264) Audio format : MPEG-4 AAC (audio/mpeg, mpegversion=(int)4) Input URI : file:///home/jayanth/feed08 Output URI : file:///home/jayanth/gstreamer/gst-plugins-base-0.10.32/tests/examples/encoding/f1.ts 0:00:00.011603349 25194 0x607340 INFO GST_PLUGIN_LOADING gstplugin.c:859:gst_plugin_load_file: plugin "/usr/local/lib/gstreamer-0.10/libgstcoreelements.so" loaded 0:00:00.011632371 25194 0x607340 INFO GST_ELEMENT_FACTORY gstelementfactory.c:369:gst_element_factory_create: creating element "filesink" named "sink" 0:00:00.011947524 25194 0x607340 INFO GST_ELEMENT_PADS gstelement.c:716:gst_element_add_pad:<GstBaseSink@0x674000> adding pad 'sink' ========== GST_URI_SINK: Created SINK(file:///home/jayanth/gstreamer/gst-plugins-base-0.10.32/tests/examples/encoding/f1.ts) Successfully ========== 0:00:00.012469718 25194 0x607340 INFO GST_PLUGIN_LOADING gstplugin.c:859:gst_plugin_load_file: plugin "/usr/local/lib/gstreamer-0.10/libgstdecodebin2.so" loaded 0:00:00.012496410 25194 0x607340 INFO GST_ELEMENT_FACTORY gstelementfactory.c:371:gst_element_factory_create: creating element "uridecodebin" ========== Created SRC(file:///home/jayanth/feed08) Successfully ========== Available container formats: ======================== CAPS TO URIDECODEBIN: Num cont caps = 3 =============== (video/x-raw-yuv; video/x-raw-rgb; video/x-raw-gray; audio/x-raw-int; audio/x-raw-float; text/plain; text/x-pango-markup; video/x-dvd-subpicture; subpicture/x-pgs; video/x-h264; audio/mpeg, mpegversion=(int)4) ======================== END CAPS TO URIDECODEBIN =============== 0:00:00.013302635 25194 0x607340 INFO GST_PLUGIN_LOADING gstplugin.c:859:gst_plugin_load_file: plugin "/usr/local/lib/gstreamer-0.10/libgstencodebin.so" loaded 0:00:00.013330062 25194 0x607340 INFO GST_ELEMENT_FACTORY gstelementfactory.c:371:gst_element_factory_create: creating element "encodebin" 0:00:00.013727810 25194 0x607340 INFO GST_ELEMENT_PADS gstelement.c:716:gst_element_add_pad:<GstEncodeBin@0x67d030> adding pad 'src' 0:00:00.014145333 25194 0x607340 INFO GST_PLUGIN_LOADING gstplugin.c:859:gst_plugin_load_file: plugin "/usr/local/lib/gstreamer-0.10/libgstmpegtsmux.so" loaded 0:00:00.014171670 25194 0x607340 INFO GST_ELEMENT_FACTORY gstelementfactory.c:369:gst_element_factory_create: creating element "mpegtsmux" named "muxer" 0:00:00.014426124 25194 0x607340 INFO GST_ELEMENT_PADS gstelement.c:716:gst_element_add_pad:<MpegTsMux@0x683050> adding pad 'src' 0:00:00.014557437 25194 0x607340 INFO GST_ELEMENT_PADS gstelement.c:963:gst_element_get_static_pad: found pad muxer:src 0:00:00.014615785 25194 0x607340 INFO GST_PADS gstpad.c:1941:gst_pad_link_prepare: trying to link muxer:src and src:proxypad0 0:00:00.014637911 25194 0x607340 INFO GST_PADS gstpad.c:2124:gst_pad_link_full: linked muxer:src and src:proxypad0, successful 0:00:00.014687659 25194 0x607340 INFO GST_ELEMENT_FACTORY gstelementfactory.c:369:gst_element_factory_create: creating element "pipeline" named "encoding-pipeline" 0:00:00.014795810 25194 0x607340 INFO GST_ELEMENT_PADS gstutils.c:1568:gst_element_link_pads_full: trying to link element encodebin0:(any) to element sink:(any) 0:00:00.014824742 25194 0x607340 INFO GST_PADS gstutils.c:1028:gst_pad_check_link: trying to link encodebin0:src and sink:sink 0:00:00.014861179 25194 0x607340 INFO GST_PADS gstutils.c:1468:prepare_link_maybe_ghosting: encodebin0 and sink in same bin, no need for ghost pads 0:00:00.014887986 25194 0x607340 INFO GST_PADS gstpad.c:1941:gst_pad_link_prepare: trying to link encodebin0:src and sink:sink 0:00:00.014917822 25194 0x607340 INFO GST_PADS gstpad.c:2124:gst_pad_link_full: linked encodebin0:src and sink:sink, successful 0:00:00.015199213 25194 0x607340 INFO GST_STATES gstelement.c:2341:gst_element_continue_state:<sink> completed state change to READY 0:00:00.015220670 25194 0x607340 INFO GST_STATES gstelement.c:2354:gst_element_continue_state:<sink> posting state-changed NULL to READY 0:00:00.015252556 25194 0x607340 INFO GST_STATES gstbin.c:2492:gst_bin_change_state_func:<encoding-pipeline> child 'sink' changed state to 2(READY) successfully 0:00:00.015291274 25194 0x607340 INFO GST_STATES gstelement.c:2341:gst_element_continue_state:<muxer> completed state change to READY 0:00:00.015307364 25194 0x607340 INFO GST_STATES gstelement.c:2354:gst_element_continue_state:<muxer> posting state-changed NULL to READY 0:00:00.015329696 25194 0x607340 INFO GST_STATES gstbin.c:2492:gst_bin_change_state_func:<encodebin0> child 'muxer' changed state to 2(READY) successfully 0:00:00.015356632 25194 0x607340 INFO GST_STATES gstelement.c:2341:gst_element_continue_state:<encodebin0> completed state change to READY 0:00:00.015372438 25194 0x607340 INFO GST_STATES gstelement.c:2354:gst_element_continue_state:<encodebin0> posting state-changed NULL to READY 0:00:00.015393544 25194 0x607340 INFO GST_STATES gstbin.c:2492:gst_bin_change_state_func:<encoding-pipeline> child 'encodebin0' changed state to 2(READY) successfully 0:00:00.015412630 25194 0x607340 INFO GST_STATES gstelement.c:2314:gst_element_continue_state:<encoding-pipeline> committing state from NULL to READY, pending PLAYING, next PAUSED 0:00:00.015434457 25194 0x607340 INFO GST_STATES gstelement.c:2323:gst_element_continue_state:<encoding-pipeline> continue state change READY to PAUSED, final PLAYING 0:00:00.015501810 25194 0x607340 INFO GST_STATES gstbin.c:2498:gst_bin_change_state_func:<encoding-pipeline> child 'sink' is changing state asynchronously to PAUSED 0:00:00.015540433 25194 0x607340 INFO GST_STATES gstelement.c:2341:gst_element_continue_state:<muxer> completed state change to PAUSED 0:00:00.015557009 25194 0x607340 INFO GST_STATES gstelement.c:2354:gst_element_continue_state:<muxer> posting state-changed READY to PAUSED 0:00:00.015579365 25194 0x607340 INFO GST_STATES gstbin.c:2492:gst_bin_change_state_func:<encodebin0> child 'muxer' changed state to 3(PAUSED) successfully 0:00:00.015602076 25194 0x607340 INFO GST_STATES gstelement.c:2341:gst_element_continue_state:<encodebin0> completed state change to PAUSED 0:00:00.015617937 25194 0x607340 INFO GST_STATES gstelement.c:2354:gst_element_continue_state:<encodebin0> posting state-changed READY to PAUSED 0:00:00.015638648 25194 0x607340 INFO GST_STATES gstbin.c:2492:gst_bin_change_state_func:<encoding-pipeline> child 'encodebin0' changed state to 3(PAUSED) successfully GOOOOOOOOOOOOOOOOOOT bus_message_cb = <64> GOOOOOOOOOOOOOOOOOOT bus_message_cb = <64> GOOOOOOOOOOOOOOOOOOT bus_message_cb = <64> GOOOOOOOOOOOOOOOOOOT bus_message_cb = <64> GOOOOOOOOOOOOOOOOOOT bus_message_cb = <64> GOOOOOOOOOOOOOOOOOOT bus_message_cb = <64> On Sat, Feb 12, 2011 at 6:32 PM, Edward Hervey <[hidden email]> wrote: > On Fri, 2011-02-11 at 20:40 +0530, Jayanth K.P wrote: >> Hi, >> I have a requirement to transmux an FLV stream (h.264/mp3) to >> mpgets(h.264/mp3). I do not want to decode and mux. >> >> How can this be achieved by using encodebin ? Or combination of >> uridecodebin and encodebin .. Plz let me know. > > Add the proper h264 and mp3 caps to the uridecodebin caps property (or > use the various uridecodebin signals to stop decoding) > Create a container encoding profile for mpegts to which you'll add two > stream profiles, one for h264 and one for mp3 and then set that on > encodebin. > You'll then be able to link the non-decoded pads of uridecodebin to > the sinkpads of encodebin. > > -base/tests/examples/encoding/ might help you. > > Edward > >> >> Regards, >> Jayanth >> _______________________________________________ >> gstreamer-devel mailing list >> [hidden email] >> http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel > > > gstreamer-devel mailing list [hidden email] http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
Free forum by Nabble | Edit this page |