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