RTP/RTSP
by Benjamin M. Schwartz
The IRC channel is lossy, so I thought I would repeat here:
To make RTP work, what you want is:
1. On the server side, gst-rtsp-server [1]
2. On the client side, gstreamer's rtspsrc [2]
RTSP is a protocol that first uses reliable transport to initiate a
session (using the Session Description Protocol, SDP), agree on headers,
etc., and then internally switches to RTP for unreliable low-latency data
transmission. RTSP is The Right Way, blessed by the IETF, etc.
--Ben
[1] http://cgit.freedesktop.org/gstreamer/gst-rtsp-server/tree/docs/README
[2]
http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-good...
14 years
Codec speed optimizations
by Benjamin M. Schwartz
You seem to be interested in codec speed optimizations. I'm a
Theora/Sugar/OLPC dev, so I'd like to help with that. I've heard your
pipelines look like
10:07 lmacken> GST_INPIPE = "udpsrc ! theoradec ! ffmpegcolorspace !
ximagesink"
10:07 lmacken> GST_OUTPIPE_BASE = "v4l2src ! theoraenc bitrate=50
speed-level=2
keyframe-force=1 ! udpsink host=%s"
You would do better with
GST_INPIPE = "udpsrc ! theoradec ! ffmpegcolorspace ! xvimagesink"
Using xvimagesink instead of ximagesink engages the graphics processor's
output acceleration.
GST_OUTPIPE_BASE = "v4l2src !
video/x-raw-yuv,width=320,height=240,framerate=15/1,format="(fourcc)I420"
! theoraenc bitrate=50 speed-level=2 ! udpsink host=%s"
I've added gstreamer "caps" (capabilities) after v4l2src to reduce the
video resolution produced by the camera. Encoding 640x480 at 15 fps is
unlikely to be viable even on an XO-1.5. I've also removed
"keyframe-force", since it's likely to have a major negative impact on
image quality at fixed bitrate.
Using these pipelines will probably require you to upgrade to OS119 due to
bug #10106.
I don't recommend that you attempt grayscale encoding. The color data
(chroma planes) require very little bandwidth and CPU time. You'll only
make things slower by trying to filter it out. To make things faster
you'd have to modify the Theora encoder, and then you'd have grayscale output.
--Ben
14 years
Re: [Ovc] Codec speed optimizations
by Stephen Jacobs
Ben, thanks for the help.
For Sign Language, frame rate and resolution are likely the key factors. We'll likely want to experiment with the a 320 by 400 window and the ability to turn off audio as possible ways to improve performance. Thoughts???
Stephen Jacobs
Associate Professor
Interactive Games and Media
Rochester Institute of Technology
102 Lomb Memorial Drive
Bldg 70
Rochester, NY 14618
sj(a)mail.rit.edu
585-475-7803
14 years
theora optimizations
by Luke Macken
Hey all,
I just had a quick conversation with the creator of theora, an Xorg hacker, and
a GNOME developer.
I'll pick at these guy's brains more later on, once we can determine the
specific bottlenecks.
In the mean time, can you guys try removing the keyframe-force=1, and see if
that has any effect to the framerate?
Here's a quick snippet of the conversation:
10:06 lmacken> any gstreamer/theora experts around?
10:07 lmacken> I'm looking to optimize this pipeline for the XO-1.5. Right now it's
getting about 7 frames/sec... and we need at least 15 to support sign
language.
10:07 lmacken> GST_INPIPE = "udpsrc ! theoradec ! ffmpegcolorspace ! ximagesink"
10:07 lmacken> GST_OUTPIPE_BASE = "v4l2src ! theoraenc bitrate=50 speed-level=2
keyframe-force=1 ! udpsink host=%s"
10:08 xiphmont> what is the resolution?
10:08 halfline> keyframe-force=1 is probably going to slow you down...
10:08 xiphmont> I assume the bottleneck is encode, not decode?
10:09 xiphmont> keyframe-force is actually under the allowed minimum I think
10:10 halfline> lmacken: the number isn't a boolean, "1" means "every single frame"
when the default is like 64 or something
10:10 lmacken> xiphmont: the resolution of the XO-1.5 camera is 640×480, I believe
10:11 xiphmont> is the same machine doing encode and decode?
10:11 lmacken> xiphmont: no, it's between two XO's
10:11 xiphmont> encdode is much more expensive than decode in general.
10:12 ajax> well, same spec machine on each end anyway
10:12 lmacken> halfline: oh, interesting. so should we just remove the keyframe-force ?
10:12 halfline> yea i wouldn't screw with that unless you have a compelling reason
14 years