Decode MJPEG over HTTP from IP camera

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

Decode MJPEG over HTTP from IP camera

5,767 次查看
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

标签 (2)
0 项奖励
回复
2 回复数

2,010 次查看
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 项奖励
回复

2,010 次查看
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 项奖励
回复