I had a lot of fun trying to get my Orbit MP to do everything I want under Ubuntu. It's v4l2, and I'm used to using vlc for everything streaming, but vlc in Ubuntu doesn't support v4l2. The latest nightlies of vlc do support v4l2, but I couldn't get them to compile cleanly.
I found a program called uvc_stream, and it's a great program for what it's meant to do. It provides motor control for the Orbit MP and streaming video, and works quite well. Unfortunately, it does not stream any sound; only video.
My current solution is to use ffmpeg and vlc together -- ffpmeg can read the v4l2 data from the cam and pass it off to vlc in a format vlc can understand. Because ffmpeg has no problem with the camera or the sound, this works just great but leaves one deficiency: There's no way to use the motor controls to move the cam around.
I've solved that problem by writing my own script to control the camera. Soon I'll write a CGI to call out to this control program and control the cam off the web.
In the meantime, here's an example of how to use ffmpeg and vlc together to stream video from this camera:
ffmpeg -f audio_device -i /dev/dsp1 -f video4linux2 -r 30 -s 640x480 -i /dev/video0 -f mpeg - | vlc file://- -I dummy --ttl 32 --sout '#transcode{vcodec=mp1v,vb=256,acodec=mpga,ab=32,channels=1,height=240,width=320}:std{access=http,mux=mpeg1,dst=:8084}'
As you can see, I call ffmpeg set to read the video and audio devices for the cam. The source is set to read at 640x480. Then this is piped as mpeg to vlc, which transcodes it to a stream that is 320x240, at 256bits for video and 32 for audio. This is sufficiently low for me to stream from my cable internet, which has rotten upstream speeds. The stream is available at http://localhost:8084/
Now I've also written a script to control the camera's motor from the commandline.
You can get the source code for that here: control.c
If you aren't a technical wizard, simply put this file into a directory of your choice, then compile it thusly:
gcc control.c -o control
This will leave you with an executable called "control" -- simply run it for a list of options.
I love my MythTV. Someday I'll put up a page all about how great it is. Until then, I can tell you about my adventures in streaming video from MythTV.
MythTV has a really excellent web interface package called MythWeb. MythWeb in Ubuntu does support streaming --- kind of. It streams videos by basically streaming the video file straight off the disk. This works well in certain circumstances, like viewing the files locally on the LAN. But if you want to watch your videos from a friend's house, or the office, or your phone, it just won't do. The files are way too large for your average cable internet connection's crappy upload speeds.
A decent solution is to use vlc to transcode the video on-the-fly to a smaller resolution and different format, suitable for the sort of upload speeds you can get from home.
I haven't had time to put a proper script together, but in the meantime, here's a replacement for the default handler.pl file that the MythWeb uses for streaming. This replacement handler.pl does the following when you click on a picture of a video in MythWeb:
The implication of the first item is: if your www-data user is already using vlc for things (hint, it isn't) then this will cause problems. The link to the video probably won't work right for you either, but if you take that url and load it in vlc, you'll see the stream works just great.
You'd put this handler.pl in /usr/share/mythtv/mythweb/modules/stream/handler.pl if you wanted to try it out with your MythWeb.
I'll make this short: use mmplayer on the Treo 650. Use vlc to transcode the source to mp1v, mpga, and a reasonably tiny resolution. It works... it doesn't work great because the Treo 650 is a peice of crap, but it does work.