[gst-devel] Obtain a JPEG sequence from a RTP MJPEG stream (RFC 2435)

Mauro Brenna malloblenne at gmail.com
Sun Jan 9 15:56:39 CET 2011


Hello,

I am developing a video streamer of jpeg images MJPEG through RTP. I
would like to make it compliant to RFC2435, and I am testing it using,
as a receiver, a gstreamer pipeline.
By now, I can saw the video in a window, with an error in the decoding
process, using the following pipelines on MS Windows:

C:\Program Files\OSSBuild\GStreamer\v0.10.6\bin>gst-launch.exe -v gstrtpbin name
=rtpbin udpsrc caps="application/x-rtp, media=\(string\)video, clock-rate=\(int\
)90000, encoding-name=\(string\)JPEG, ssrc=\(guint\)469657143, payload=\(int\)96
, clock-base=\(guint\)2841649723, seqnum-base=\(guint\)39869" port=9996 ! rtpbin
.recv_rtp_sink_1  rtpbin. ! rtpjpegdepay ! jpegdec ! videorate ! video/x-raw-yuv
 ,framerate=30/1 !  ffmpegcolorspace  ! autovideosink udpsrc port=9997 ! rtpbin.
recv_rtcp_sink_1 rtpbin.send_rtcp_src_1 ! multiudpsink clients="127.0.0.1:10001"
 sync=false async=false

or simply:

gst-launch.exe -v gstrtpbin name
=rtpbin udpsrc caps="application/x-rtp, media=\(string\)video, clock-rate=\(int\
)90000, encoding-name=\(string\)JPEG, ssrc=\(guint\)469657143, payload=\(int\)96
, clock-base=\(guint\)2841649723, seqnum-base=\(guint\)39869" port=9996 ! rtpbin
.recv_rtp_sink_1  rtpbin. ! rtpjpegdepay ! jpegdec ! videorate ! video/x-raw-yuv
 ,framerate=30/1 !  ffmpegcolorspace  ! autovideosink

In order to investigate the problems in my implementation, I would
like to change the sink and have as output the file jpeg as they are
decoded.
I mean, I don't want the jpeg decoded and re-encoded another time,
which could lose their original header or change the compression,
quantization tables or other parameters.

My idea is to compare the jpeg I sent with the image I retrieve by gstreamer.

Is there a simple way to do it? I can also run the program under
GNU/Linux but MS Windows is preferable.

Thanks,

Mauro




More information about the gstreamer-devel mailing list