Decode MJPEG over HTTP from IP camera

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Decode MJPEG over HTTP from IP camera

5,763 Views
timf
Contributor II

Hi All,

I'm trying to decode a MJPEG stream from IP camera. It works with jpegdec, but I can't get vpudec to work.

# gst-launch souphttpsrc location=http://10.0.0.5:8081 ! queue ! jpegdec ! autovideosink

The stream is MJPEG over HTTP. Does vpu support this type of MJPEG, how can I get it to work? Thanks.

If I run it with vpudec, i got:

/root # gst-launch souphttpsrc location=http://10.0.0.5:8081 ! queue ! vpudec ! autovideosink

/root # gst-launch souphttpsrc location=http://10.0.0.5:8081 ! queue ! vpudec ! autovideosink

(gst-plugin-scanner:3386): GStreamer-CRITICAL **: gst_element_class_add_pad_template: assertion `GST_IS_PAD_TEMPLATE (templ)' failed

(gst-plugin-scanner:3386): GStreamer-CRITICAL **: gst_pad_template_new: assertion `caps != NULL' failed

(gst-plugin-scanner:3386): GStreamer-CRITICAL **: gst_element_class_add_pad_template: assertion `GST_IS_PAD_TEMPLATE (templ)' failed

(gst-plugin-scanner:3386): GStreamer-CRITICAL **: gst_pad_template_new: assertion `caps != NULL' failed

(gst-plugin-scanner:3386): GStreamer-CRITICAL **: gst_element_class_add_pad_template: assertion `GST_IS_PAD_TEMPLATE (templ)' failed

(gst-plugin-scanner:3386): GStreamer-CRITICAL **: gst_pad_template_new: assertion `caps != NULL' failed

(gst-plugin-scanner:3386): GStreamer-CRITICAL **: gst_element_class_add_pad_template: assertion `GST_IS_PAD_TEMPLATE (templ)' failed

(gst-plugin-scanner:3386): GStreamer-CRITICAL **: gst_pad_template_new: assertion `caps != NULL' failed

(gst-plugin-scanner:3386): GStreamer-CRITICAL **: gst_element_class_add_pad_template: assertion `GST_IS_PAD_TEMPLATE (templ)' failed

(gst-plugin-scanner:3386): GStreamer-CRITICAL **: gst_pad_template_new: assertion `caps != NULL' failed

(gst-plugin-scanner:3386): GStreamer-CRITICAL **: gst_element_class_add_pad_template: assertion `GST_IS_PAD_TEMPLATE (templ)' failed

(gst-plugin-scanner:3386): GStreamer-CRITICAL **: gst_element_class_add_pad_template: assertion `GST_IS_PAD_TEMPLATE (templ)' failed

(gst-plugin-scanner:3386): GLib-GObject-WARNING **: cannot register existing type `GstVorbisDec'

(gst-plugin-scanner:3386): GLib-CRITICAL **: g_once_init_leave: assertion `initialization_value != 0' failed

(gst-plugin-scanner:3386): GStreamer-CRITICAL **: gst_element_register: assertion `g_type_is_a (type, GST_TYPE_ELEMENT)' failed

Setting pipeline to PAUSED ...

this is powerful mx6q

MFW_GST_V4LSINK_PLUGIN 3.0.1 build on Sep  9 2013 17:35:53.

[INFO] Product Info: i.MX6Q/D/S

vpudec versions :smileyhappy:

  plugin: 3.0.1

  wrapper: 1.0.28(VPUWRAPPER_ARM_LINUX Build on Sep  9 2013 17:27:45)

  vpulib: 5.4.6

  firmware: 2.1.5.32515

Pipeline is PREROLLING ...

** (gst-launch-0.10:3385): CRITICAL **: gst_vpudec_chain: assertion `vpudec->context.handle' failed

Labels (2)
0 Kudos
Reply
2 Replies

2,006 Views
LeonardoSandova
Specialist I

The assertion is coming from the function which does the decoding task, so there must be something (header?) on the input data that vpudec does not like. Have you tried other MJPEG streams?

Leo

0 Kudos
Reply

2,006 Views
timf
Contributor II

I tested with Sanyo HD2100 IP camera, same result.

Seems all JPEGs from IP cameras are JPEG/EXIF which vpudec doesn't like.

0 Kudos
Reply