Hi All,
I am using iMX6q Sabre board for Smart Devices. I have compiled my code with all gstreamer plugins but still i am getting errors in video streaming.
I have entered the command:
gst-launch filesrc location=test.mp4 typefind=true ! aiurdemux ! vpudec ! filesink
And the error is like this:
ERROR: no element present 'vpudec'
I have also tried some other decoders present here in source code. but I am not able to stream any video.
gst-launch filesrc location=akiyo.mp4 ! mfw_mpeg4aspdecoder ! fbdevsink
and the error is:
MPEG4_ASP_D_01.02.01 build on Dec 8 2011 18:23:35.
MFW_GST_MPEG4ASP_DECODER_PLUGIN 3.0.7 build on Jun 5 2013 12:55:34.
WARNING: erroneous pipeline: could not link mfw_gst_mpeg4asp_decoder_info_t0 to fbdevsink0..
Can anybody help me in solving this issue and tell me how to enable the vpudec & vpuenc.
Thanks..
已解决! 转到解答。
You still do not have the vpudec. Also, are you following the Multimedia User Guide to enable & compile all GST stuff?
No idea about those logs you are seeing :smileysad:
For step 2, the patch is attached on my previous post. Just prep the package (good plugins), move to the source folder and apply the patch (patch -p1 < patch_name), then compile again (scbuild & scdeploy)
Leo
hi Leo,
I have tried with the 1st step told by you. but again i am getting the error:
(gst-plugin-scanner:3270): GStreamer-CRITICAL **: gst_pad_template_new: assertion `caps != NULL' failed
(gst-plugin-scanner:3270): GStreamer-CRITICAL **: gst_element_class_add_pad_template: assertion `GST_IS_PAD_TEMPLATE (templ)' failed
(gst-plugin-scanner:3270): GStreamer-CRITICAL **: gst_pad_template_new: assertion `caps != NULL' failed
(gst-plugin-scanner:3270): GStreamer-CRITICAL **: gst_element_class_add_pad_template: assertion `GST_IS_PAD_TEMPLATE (templ)' failed
MAX resolution 1024x768
(gst-plugin-scanner:3270): GLib-GObject-WARNING **: cannot register existing type `GstAmrParse'
(gst-plugin-scanner:3270): GLib-CRITICAL **: g_once_init_leave: assertion `initialization_value != 0' failed
(gst-plugin-scanner:3270): GStreamer-CRITICAL **: gst_element_register: assertion `g_type_is_a (type, GST_TYPE_ELEMENT)' failed
(gst-plugin-scanner:3270): GLib-GObject-WARNING **: cannot register existing type `GstQTMux'
(gst-plugin-scanner:3270): GLib-GObject-CRITICAL **: g_type_set_qdata: assertion `node != NULL' failed
(gst-plugin-scanner:3270): GLib-GObject-CRITICAL **: g_type_add_interface_static: assertion `G_TYPE_IS_INSTANTIATABLE (instance_type)' failed
(gst-plugin-scanner:3270): GLib-GObject-CRITICAL **: g_type_add_interface_static: assertion `G_TYPE_IS_INSTANTIATABLE (instance_type)' failed
(gst-plugin-scanner:3270): GStreamer-CRITICAL **: gst_element_register: assertion `g_type_is_a (type, GST_TYPE_ELEMENT)' failed
(gst-plugin-scanner:3270): GLib-GObject-WARNING **: cannot register existing type `GstRtpSsrcDemux'
(gst-plugin-scanner:3270): GLib-CRITICAL **: g_once_init_leave: assertion `initialization_value != 0' failed
(gst-plugin-scanner:3270): GStreamer-CRITICAL **: gst_element_register: assertion `g_type_is_a (type, GST_TYPE_ELEMENT)' failed
(gst-plugin-scanner:3270): GLib-GObject-WARNING **: cannot register existing type `GstAacParse'
(gst-plugin-scanner:3270): GLib-CRITICAL **: g_once_init_leave: assertion `initialization_value != 0' failed
(gst-plugin-scanner:3270): GStreamer-CRITICAL **: gst_element_register: assertion `g_type_is_a (type, GST_TYPE_ELEMENT)' failed
(gst-plugin-scanner:3270): GLib-GObject-WARNING **: cannot register existing type `GstRTPMux'
(gst-plugin-scanner:3270): GStreamer-CRITICAL **: gst_element_register: assertion `g_type_is_a (type, GST_TYPE_ELEMENT)' failed
WARNING: erroneous pipeline: no element "vpudec"
And in case of 2nd step, can you please tell the name of patch u have talked about or can give the link for that, whichever possible.
Thanks
You still do not have the vpudec. Also, are you following the Multimedia User Guide to enable & compile all GST stuff?
No idea about those logs you are seeing :smileysad:
For step 2, the patch is attached on my previous post. Just prep the package (good plugins), move to the source folder and apply the patch (patch -p1 < patch_name), then compile again (scbuild & scdeploy)
Leo
Patch you referred is for ffmpeg plugin, I wanted to know if there is patch for gst-plugins-good (as quoted above) to fix following warnings:
-------------
(gst-plugin-scanner:3270): GStreamer-CRITICAL **: gst_pad_template_new: assertion `caps != NULL' failed
(gst-plugin-scanner:3270): GStreamer-CRITICAL **: gst_element_class_add_pad_template: assertion `GST_IS_PAD_TEMPLATE (templ)' failed
(gst-plugin-scanner:3270): GStreamer-CRITICAL **: gst_pad_template_new: assertion `caps != NULL' failed
(gst-plugin-scanner:3270): GStreamer-CRITICAL **: gst_element_class_add_pad_template: assertion `GST_IS_PAD_TEMPLATE (templ)' failed
MAX resolution 1024x768
(gst-plugin-scanner:3270): GLib-GObject-WARNING **: cannot register existing type `GstAmrParse'
--------------------
You still do not have the Freescale GStreamer plugins. Make sure you have selected the gst-fsl-plugins and build again. Then on the board, search for the FSL elements with gst-inspect (e.g. gst-inspect | grep vpu ).
Leo
hi Leo,
I have build with the gst-fsl-plugin and searched for the FSL elements with gst-inspect, But I am getting the error:
gst-inspect | grep vpu
(gst-plugin-scanner:3349): GStreamer-WARNING **: Failed to load plugin '/usr/lib/gstreamer-0.10/libgstffmpeg.so': /usr/lib/gstreamer-0.10/libgstffmpeg.so: undefined symbol: GST_FLOW_IS_FATAL
(gst-plugin-scanner:3349): GLib-GObject-WARNING **: cannot register existing type `GstAacParse'
(gst-plugin-scanner:3349): GLib-CRITICAL **: g_once_init_leave: assertion `initialization_value != 0' failed
(gst-plugin-scanner:3349): GStreamer-CRITICAL **: gst_element_register: assertion `g_type_is_a (type, GST_TYPE_ELEMENT)' failed
MAX resolution 1024x768
(gst-plugin-scanner:3349): GLib-GObject-WARNING **: cannot register existing type `GstQTMux'
(gst-plugin-scanner:3349): GLib-GObject-CRITICAL **: g_type_set_qdata: assertion `node != NULL' failed
(gst-plugin-scanner:3349): GLib-GObject-CRITICAL **: g_type_add_interface_static: assertion `G_TYPE_IS_INSTANTIATABLE (instance_type)' failed
(gst-plugin-scanner:3349): GStreamer-CRITICAL **: gst_element_register: assertion `g_type_is_a (type, GST_TYPE_ELEMENT)' failed
(gst-plugin-scanner:3349): GLib-GObject-WARNING **: cannot register existing type `GstRTPMux'
(gst-plugin-scanner:3349): GStreamer-CRITICAL **: gst_element_register: assertion `g_type_is_a (type, GST_TYPE_ELEMENT)' failed
(gst-plugin-scanner:3349): GStreamer-CRITICAL **: gst_pad_template_new: assertion `caps != NULL' failed
(gst-plugin-scanner:3349): GStreamer-CRITICAL **: gst_element_class_add_pad_template: assertion `GST_IS_PAD_TEMPLATE (templ)' failed
(gst-plugin-scanner:3349): GStreamer-CRITICAL **: gst_pad_template_new: assertion `caps != NULL' failed
(gst-plugin-scanner:3349): GStreamer-CRITICAL **: gst_element_class_add_pad_template: assertion `GST_IS_PAD_TEMPLATE (templ)' failed
(gst-plugin-scanner:3349): GLib-GObject-WARNING **: cannot register existing type `GstAmrParse'
(gst-plugin-scanner:3349): GLib-CRITICAL **: g_once_init_leave: assertion `initialization_value != 0' failed
(gst-plugin-scanner:3349): GStreamer-CRITICAL **: gst_element_register: assertion `g_type_is_a (type, GST_TYPE_ELEMENT)' failed
(gst-plugin-scanner:3349): GLib-GObject-WARNING **: cannot register existing type `GstRtpSsrcDemux'
(gst-plugin-scanner:3349): GLib-CRITICAL **: g_once_init_leave: assertion `initialization_value != 0' failed
(gst-plugin-scanner:3349): GStreamer-CRITICAL **: gst_element_register: assertion `g_type_is_a (type, GST_TYPE_ELEMENT)' failed
Oh I see. The are some macros on the set of gst-ffmpeg plugins which somehow are not defined. You have two options:
1. In case you do not need any gst-ffmpegs elements, you can remove all related plugins. In case you have your rootfs NFS mounted ( ./ltib -m clean -p gst-ffmpeg) ,or simple remove it on the board's console (rm /usr/lib/gstreamer-0.10/./libgstffmpeg.so).
2. In case you need them, patch the attached file and build and deploy to the rootfs. The patch uses other defined macros.
Leo