GNOME Bugzilla – Bug 747598
After make install gstreamer-1.0 and gst-libav-1.0, I could not find the element avdemux_mpegts.
Last modified: 2016-08-10 04:22:36 UTC
Created attachment 301255 [details] That is the configure log. Now I want to demux mpegts stream using gstreamer-1.0 and avdemux_mpegts in ffmpeg plugin.But Why I could not find the element avdemux_mpegts? After I make install gstreamer-1.0 and gst-libav-1.0 using cerbero build gst-libav-1.0. I find the all demuxers elements in gst-libav plugin as below: libav: avtype_yuv4mpegpipe: y4m avdemux_yuv4mpegpipe: libav YUV4MPEG pipe format demuxer libav: avtype_wsvqa: no extensions avdemux_wsvqa: libav Westwood Studios VQA format demuxer libav: avtype_wsaud: no extensions avdemux_wsaud: libav Westwood Studios audio format demuxer libav: avtype_wc3movie: no extensions avdemux_wc3movie: libav Wing Commander III movie format demuxer avdemux_voc: libav Creative Voice file format demuxer libav: avtype_vmd: no extensions avdemux_vmd: libav Sierra VMD format demuxer avdemux_tta: libav True Audio demuxer libav: avtype_psxstr: no extensions avdemux_psxstr: libav Sony Playstation STR format demuxer libav: avtype_sol: no extensions avdemux_sol: libav Sierra SOL format demuxer libav: avtype_smk: no extensions avdemux_smk: libav Smacker video demuxer libav: avtype_film_cpk: no extensions avdemux_film_cpk: libav Sega FILM/CPK format demuxer libav: avtype_RoQ: no extensions avdemux_RoQ: libav id RoQ format demuxer avdemux_nuv: libav NuppelVideo format demuxer libav: avtype_nut: nut avdemux_nut: libav NUT format demuxer libav: avtype_nsv: no extensions avdemux_nsv: libav Nullsoft Streaming Video demuxer avdemux_mxf: libav Material eXchange Format demuxer avdemux_mpc: libav Musepack demuxer libav: avtype_mmf: no extensions avdemux_mmf: libav Yamaha SMAF demuxer libav: avtype_mm: no extensions avdemux_mm: libav American Laser Games MM format demuxer libav: avtype_ipmovie: no extensions avdemux_ipmovie: libav Interplay MVE format demuxer libav: avtype_idcin: no extensions avdemux_idcin: libav id Cinematic format demuxer libav: avtype_gxf: no extensions avdemux_gxf: libav GXF format demuxer libav: avtype_4xm: no extensions avdemux_4xm: libav 4X Technologies format demuxer libav: avtype_ffm: no extensions avdemux_ffm: libav FFM (AVserver live feed) format demuxer libav: avtype_ea: no extensions avdemux_ea: libav Electronic Arts Multimedia Format demuxer libav: avtype_daud: 302 avdemux_daud: libav D-Cinema audio format demuxer libav: avtype_avs: no extensions avdemux_avs: libav AVS format demuxer avdemux_ape: libav Monkey's Audio demuxer avdemux_aiff: libav Audio IFF demuxer Why I could not find mpegts demuxer in the gst-libav plugin?
The libav mpegts demuxer is disabled, because we have the native GStreamer tsdemux element from the mpegtsdemux plugin in gst-plugins-bad.
This is done on purpose. You can patch the source code to change that of course.
(In reply to Jan Schmidt from comment #1) > The libav mpegts demuxer is disabled, because we have the native GStreamer > tsdemux element from the mpegtsdemux plugin in gst-plugins-bad. How could I enable the mpegts demuxer, if I want to use mpegts demuxer in gst-libav plugin? Thank you very much.
(In reply to Bill Qin from comment #3) > (In reply to Jan Schmidt from comment #1) > > The libav mpegts demuxer is disabled, because we have the native GStreamer > > tsdemux element from the mpegtsdemux plugin in gst-plugins-bad. > > How could I enable the mpegts demuxer, if I want to use mpegts demuxer in > gst-libav plugin? > Thank you very much. I modified the code in function gst_ffmpegdemux_register() of gstavdemux.c as below, and I could make element avdemux_mpegts.Is it right? /* Set the rank of demuxers known to work to MARGINAL. * Set demuxers for which we already have another implementation to NONE * Set All others to NONE*/ if ( ++ !strcmp (in_plugin->name, "mpegts") || ++ !strcmp (in_plugin->name, "mpegtsraw") || !strcmp (in_plugin->name, "wsvqa") || !strcmp (in_plugin->name, "wsaud") || !strcmp (in_plugin->name, "wc3movie") || !strcmp (in_plugin->name, "voc") || !strcmp (in_plugin->name, "tta") || !strcmp (in_plugin->name, "sol") || !strcmp (in_plugin->name, "smk") || !strcmp (in_plugin->name, "vmd") || !strcmp (in_plugin->name, "film_cpk") || !strcmp (in_plugin->name, "ingenient") || !strcmp (in_plugin->name, "psxstr") || !strcmp (in_plugin->name, "nuv") || !strcmp (in_plugin->name, "nut") || !strcmp (in_plugin->name, "nsv") || !strcmp (in_plugin->name, "mxf") || !strcmp (in_plugin->name, "mmf") || !strcmp (in_plugin->name, "mm") || !strcmp (in_plugin->name, "ipmovie") || !strcmp (in_plugin->name, "ape") || !strcmp (in_plugin->name, "RoQ") || !strcmp (in_plugin->name, "idcin") || !strcmp (in_plugin->name, "gxf") || !strcmp (in_plugin->name, "ffm") || !strcmp (in_plugin->name, "ea") || !strcmp (in_plugin->name, "daud") || !strcmp (in_plugin->name, "avs") || !strcmp (in_plugin->name, "aiff") || !strcmp (in_plugin->name, "4xm") || !strcmp (in_plugin->name, "yuv4mpegpipe") || !strcmp (in_plugin->name, "mpc") || !strcmp (in_plugin->name, "gif")) rank = GST_RANK_MARGINAL;
Yes, that's the way to enable it. Now you'll need to test and see if it works at all for you. Please let us know :)
I modified it as Bill said, it's not work. grep log: ------- 0:00:00.922728978 22046 0x7f16140f6680 DEBUG GST_SCHEDULING gstpad.c:4181:gst_pad_chain_data_unchecked:<multiqueue0:sink_0> called chainfunction &gst_multi_queue_chain with buffer 0x7f16040965b0, returned not-negotiated 0:00:00.922736071 22046 0x7f16040aa800 DEBUG GST_ELEMENT_FACTORY gstelementfactory.c:848:gst_element_factory_list_filter: Trying avdec_g726 0:00:00.922740776 22046 0x7f16140f6680 WARN libav gstavdemux.c:1517:gst_ffmpegdemux_loop:<avdemux_mpegts0> stream_movi flow: not-negotiated / not-negotiated 0:00:00.922750833 22046 0x7f16140f6680 DEBUG GST_PADS gstpad.c:6016:gst_pad_pause_task:<avdemux_mpegts0:sink> pause task 0:00:00.922753487 22046 0x7f16140f6680 DEBUG task gsttask.c:682:gst_task_set_state:<avdemux_mpegts0:sink> Changing task 0x1a2c710 to state 2 0:00:00.922742126 22046 0x7f16040aa800 DEBUG GST_ELEMENT_FACTORY gstelementfactory.c:848:gst_element_factory_list_filter: Trying avdec_g726le 0:00:00.922759873 22046 0x7f16140f6680 WARN libav gstavdemux.c:1566:gst_ffmpegdemux_loop:<avdemux_mpegts0> error: Internal data stream error. 0:00:00.922762608 22046 0x7f16040aa800 DEBUG GST_ELEMENT_FACTORY gstelementfactory.c:848:gst_element_factory_list_filter: Trying avdec_g729 -------
Created attachment 333038 [details] avdemux_mpegts not work log
Created attachment 333039 [details] avdemux_mpegts not work dot file