Let me start by saying that I found the recipe for this on Josh Lifton’s website. So most of the credit really goes to him. I’ve just simplified (and expanded) his method to cover generic quicktime streaming.
So basically what we want to do is to connect the N800 to a network, setup a quicktime server (or darwin streaming server for people who don’t have access to OSX server) and get the N800 to create a H.263 stream (audio and video) and send it to our server. Sounds easy right?
Here are the bits you need:
- N800 Internet tablet
- Mac (or PC) with Quicktime 7 (or higher) installed
- A server box running OSX server (can be the same machine as above) or a PC running Darwin Streaming server.
Recipe for N800
Assuming you have the N800 powered up and setup for Network usage (wireless), here are the steps I followed to get the N800 prepped:
Put the application manager in “redpill” mode. Go to “Tools > Application catalogue”, click “New”, enter “matrix” into the “Web Address” field, click “Cancel”. Choosing the red pill will activate the red pill mode, obviously, and chosing the blue one will deactivate it.
Install Dropbear SSH Server and Client software onto your N800. Now ssh from the Mac (or PC) to your N800 and login as root (password is rootme by default). Change the password and make a note of it. On the N800 (through ssh and vi) edit /etc/apt/source.list file and either add the differences or replace the content with the following:
#maemo:name Nokia Catalogue
deb http://catalogue.tableteer.nokia.com/certified/ bora user
#maemo:name Nokia Catalogue (3rd party software)
deb http://catalogue.tableteer.nokia.com/non-certified/ bora user
deb http://openbossa.indt.org.br/canola/repository-beta2/bora bora user
#maemo:name Maemo Repository
deb http://repository.maemo.org/ bora free non-free extras
#maemo:name Maemo Extras
deb http://repository.maemo.org/extras bora free non-free
#maemo:name Tuomas Kulve - Maemo - Bora
deb http://tuomas.kulve.fi/debian bora maemo
#maemo:name Kernel Concepts
deb http://downloads.kernelconcepts.de/maemo3 bora free
#maemo:name MUlliNER.ORG Repository
deb http://www.mulliner.org/nokia770/repository/ bora free
#maemo:name eko.one.pl Catalogue
deb http://eko.one.pl/maemo/ bora user
#maemo:name Nokia Research Centre Cambridge
deb http://repository.nrcc.noklab.com/ bora extras
#maemo:name tortoise catalogue
#deb http://www.users.ecs.soton.ac.uk/~cej105/maemo.html bora user
deb http://mike.yi.org/packages/maemo/ bora main
deb http://maemo-hackers.org/apt bora main
#maemo:name FBReader repository
deb http://www.fbreader.org/maemo bora user
deb http://mg.pov.lt/770 bora user other
At this point reboot your N800 by issuing the reboot command from ssh window. Okay you’ve made it this far, good that means you have not bricked your machine yet :-). SSH back to your N800 and login with the new root password (remember we changed the password earlier). Now use the Application Manager and install the following packages (this is up-to-date as of May, 25, 2007):
Recipe for Streaming Server (QTSS)
The procedure described in this document was tested with the Apple QuickTime Streaming Server (QTSS) running on a Mac OS X 10.4.9 Server machine. Similar results are most likely possible with the open source Darwin Streaming Server (DSS). You have to find out where the streaming directory of the server is. By default on QTSS it is /Library/QuickTimeStreaming/Movies/ folder. We now need to create an SDP file that point our quicktime client at the stream. Think of the .sdp file as a stub file on the server that tells the client all the relevant information about the stream. I’ve succesfully used the following sdp file, just copy and paste the text using a text editor and save it in the Movies directory as a text file (ie: n800.sdp):
o=- 37 614155991 IN IP4 127.0.0.0
m=audio 5432 RTP/AVP 0
c=IN IP4 XX.XX.XX.XX
m=video 5434 RTP/AVP 96
c=IN IP4 XX.XX.XX.XX
This SDP file can be used once the XX.XX.XX.XX address listed in the file (in two places) is replaced with the IP address at which the streaming server is located.
Be sure the default camera application is not running before the GStreamer pipeline is started. Once the N800 and QTSS have been configured as above, the only thing left to do is start the audio and video streaming from the N800 by running the following command from the terminal (either via SSH session or xterm application on N800):
gst-launch-0.10 gconfv4l2src ! video/x-raw-yuv,width=352,height=288,framerate=\(fraction\)15/1 ! hantro4200enc stream-type=1 profile-and-level=1001 ! video/x-h263,framerate=\(fraction\)15/1 ! rtph263ppay mtu=1438 ! udpsink host=XX.XX.XX.XX port=5434 dsppcmsrc ! queue ! audio/x-raw-int,channels=1,rate=8000 ! mulawenc ! rtppcmupay mtu=1438 ! udpsink host=XX.XX.XX.XX port=5432
This command (all one line) creates and starts playing a GStreamer pipeline that encodes the raw audio and video streams, stuffs them into RTP packets, and sends them to the streaming server (change the XX.XX.XX.XX addresses in two places to server IP address). Once the GStreamer pipeline has been started, the N800’s camera can be popped out without the default camera application starting up.
Now goto your quicktime client and choose File/Open URL from the menu and type the following: rtsp://XX.XX.XX.XX/n800.sdp (change the XX.XX.XX.XX to server IP address).