Despite becoming the sole owners of Symbian, Nokia have gone ahead and announced the N900. The N900 is the next in the 770/N800/N810 line of devices based on the Debian-derived Maemo platform. Unlike it’s predecessors however, the N900 is in fact a phone. One of the best things about the previous Maemo devices is the lack of restrictions on what you could do. Enabling root access to the underlying Linux system was possible (and easy) allowing a lot of access. Even updating it with unsigned firmware images was allowed. In theory this will all be possible with the N900, but in practice, things might not be so open. I remember a quote from someone at Nokia some time ago along the lines of “As soon as you put a sim in it, the operators want a piece of it”. Although you can get a sim-free unlocked N900 (the UK price is advertised as £499.99) I’d guess any operator subsidised N900 will have restrictions.
I recently managed to get video streaming (and transcoding in real time) to my Nokia 770 :D Here’s a guide for anyone wanting to do the same thing. This assumes you have a wireless network with a computer on it. The first thing you need to do is install MPlayer on your 770. The media player that comes with it is too limited with regards to what it can play. The interface to Maemo MPlayer is a bit limited but I tend to start it from the command line anyway. Then install VLC (VideoLAN client) on your PC. VLC is a cross platform media player with wonderful codec support and more important built in streaming and transcoding support. To stream (and transcode) using VLC, go to the Open File dialog box and select “Stream/Save” (and click the associated “Settings” button). From there select HTTP streaming (remember the port) and set up your transcoding options. The following are ideal for the 770:
- M4V video
- MP3 audio
- 256 kbps video
- 64bps audio
- Width: 400
- Height: 244
You need to fiddle a bit to specify the width and height. As you select the options you’ll notice the “target” field at the top change. Highlight the bit that says “scale=1” and replace it with “width=400,height=244”. You can also select play locally if you want to see what it’s playing on the screen at the same time. After you’ve done all that click OK as many times as necessary to get back out of the windows and click Play. The video will now be streaming to anyone trying to listen. The first thing to do is to test it using VLC itself. Open another instance of VLC and go to File -> Open Network Stream. Select HTTP and enter your IP address or (localhost) and the port you selected earlier. When you hit play you should see the video clip playing (quite small). If not, then try again… Assuming it’s all working, it’s time to see it on the 770. Run XTerm (you really need XTerm if you want to do cool stuff with a 770) and type in the following:
mplayer -cache 8192 -aspect 16:9 http://_your.ip.address_:_port_ Hopefully you’ll have your video clip playing wonderfully on your 770 :D 256kbps is good enough for most clips at that resolution. Actions scenes get a bit blocky but don’t complain too much. 256kbps is also low enough to fit through most if not all ADSL upstream connections and, even better, small enough to fit through newer cellphone connections (the 770 can use a phone as a bluetooth modem). In fact UK readers on T-Mobile can get Web ‘n’ Walk Max for £22.50 a month get 10GB of bandwidth and are allowed to use the connection for video streaming and Voice Over IP. My final goal would be getting it to work with MythTV (it can already use VLC for streaming) and have live TV anywhere I can get a signal on my phone…
My recently ordered Nokia 770 has arrived :o) For those that don’t know, it isn’t a phone - Nokia market it as an “Internet Tablet”. Basically it’s a PDA running Linux with WLAN, Bluetooth and an 800x480 touchscreen display. There’s too much about it that’s cool for me to go into right now, so I’ll leave you with the picture :) Apparently the term “UMPC” is being used by a few people to describe the 770 (and similar devices) - “Ultra Mobile PC”.
We recently got a new Nokia N93 at work and had the fun task of benchmarking it. In raw processing power when running Java it outperforms the second best phone we have (the Nokia E61) by about 50%. Unfortunately, like all the Nokia handsets, it’s not so good at image handling and so unfortunately loses out to Sony Ericssons overall. The big disappointment though is the hardware acceleration. 3D graphics in J2ME should theoretically be done using JSR 184 (an API for 3D graphics - there is at least one other but JSR 184 is the most supported). The N93 has hardware acceleration supporting OpenGL ES and according to the documentation the JSR 184 implementation automatically uses hardware accelerated OpenGL ES if it is supported. Unfortunately the performance suggests otherwise - the N93 handles one of our 3D games almost as well as an N73. My guess is to get the proper hardware acceleration you need to write Symbian apps…