Re-stream Motion JPEG network connected webcam via GStreamer-RTSP (RFC2435) - pipeline help

Matt Thyer matt.thyer at
Wed Mar 6 01:41:45 UTC 2019

Dear GStreamer developers,

I'm trying to re-stream a Motion-JPEG stream via the GStreamer RTSP server
(i.e. RFC2435 extension to RTSP) but am having trouble with my pipeline.
The video source is an "i-Spy Tank" by HappyCow. See:
There's a blog on accessing this tank's video, turret and track controls
Think of it as a simple WiFi connected web camera where the device presents
as an open wireless access point.
The Motion JPEG video stream is at: (not port 9876
as the devblog confusingly says!).

VLC tells me that the stream is:
   Codec: Motion JPEG (MJPG)
   Resolution: 640x480
   Display resolution: 640x480
   Decoded format: Planar 4:2:2 YUV full scale

What's working:
I've successfully saved the individual JPEG frames with the following
gst-launch-1.0 -e souphttpsrc location= !
multipartdemux ! image/jpeg,width=640,height=480 ! multifilesink

What's not working:
I'm unable to re-stream using GStreamer RTSP so far...
I've tried pipelines: "souphttpsrc location= !
multipartdemux ! rtpjpegpay"
and: "souphttpsrc location= do-timestamp=true !
multipartdemux ! image/jpeg,width=640,height=480 ! rtpjpegpay"
But both of these pipelines fail with error:
"FIXME              rtspmedia rtsp-media.c:3835:gst_rtsp_media_suspend:
suspend for dynamic pipelines needs fixing"
(When run with GST_DEBUG="*:3").
My understanding of this error is that it's due to a capabilities mismatch
between elements.
Is this the case?

I've seen some people use "avdec_mjpeg" and then re-encode but I'd rather
not go to that extreme... If it's incompatible or missing capabilities, how
can I artificially provide these caps without transcoding?

Matt Thyer
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the gstreamer-devel mailing list