2007-02-12 (03:00) The Brando MP4 watch as seen here: http://gizmodo.com/gadgets/gadgets/brando-mp4-watch--video-killed-the-mp3-star-212506.php and here: http://www.the-gadgeteer.com/review/brando_mp4_watch ... has Windows software for converting images and videos (it plays mp3s natively). I'm working on tools to avoid the need for Wine, or a Windows box. I've sorted the conversion of images so far with the scripts in this directory, messy but functional. I started out making a ppmtosomething compatible perl script, to maybe later port to C, but then just got bored. I might even add in system calls to the convert processes and just have the one perl script for it all (probably should use CPAN ImageMagick libs). I'm unsure if pnmdepth does fancier stuff than my division based averaging on the 8 to 5 or 6 bit values. If it does I can't tell so far, I might reverse the process on larger images so I can get a better visual feel. I had considered running pnmdepth twice, once for 5 once for 6 bit and nabbing the middle value of the 6bit one, but that would be an awfully messy way to do it :) I'm now looking at the video format, playing with two example ones I have now and working on perl to extract the frames and mp3 so I can work towards inserting back again. This page helped greatly basically explaining exactly what to do. http://wiki.multimedia.cx/index.php?title=NXV So does elvis' hex view. update: 2007-02-18 (23:50) I've uploaded a kludgy little perl script that will take a directory full of .raw files (converted using the other scripts in this directory) and an mp3 (128kbps, JStereo, 44100Hz - lame default and seemingly what the watch likes) and create a working .nxv file. Hooray! This should be portable to MacOSX too, so basically all main operating systems should be able to create .nxv files now, not just Windows. This is VERY much work in progress, you'll need to view the perl to see what filenames it needs and creates. It's hardwired in many places (this is why I call it kludgy). I've found that the first 21 bytes as described http://wiki.multimedia.cx/index.php?title=NXV are not quite enough, but 112 bytes of the header from the .nxv that came with the watch seemed to do the trick. I pad with 0x00 in all of the other places that seemed to be random data and the video played back fine. I've created a video that plays back longer than the video that came with it, confirming the bytes in the header don't limit play length. To use this you'll need to do something like the following: ffmpeg -sameq -deinterlace -i ./file.avi -f image2 -r 16.1 sample_000\%04d.jpg ffmpeg -sameq -i ./file.avi -ar 44100 audio.wav lame audio.wav # (yes I could have just made ffmpeg make the mp3...) cp audio.wav.mp3 sample.mp3 # (in previous tests, I was adding RIFF headers, with riffmp3_elf_intel) for i in samp*jpg; do sh ./convert-1.2.sh $X end perl createvid-1.2.pl mount /dev/sdX /mnt/watch cp sample.nxv /mnt/watch umount /mnt/watch Enjoy. You need ImageMagick and ffmpeg if you want to create 100s of images from a movie in the way I demonstrated. I recommend checking/altering the ./convert-1.1.sh script. I've recently decided I prefer to crop to 128 rather than composite the correct aspect ratio on to a 128x128 black square, as this leave letterboxing on an already tiny screen. One thing I can't stand is incorrect aspect ratio display though. I've taken away the +0.5 averaging as this created incorrect looking colours. I'm quite certain there is a correct 5:6:5 rgb display mode to ffmpeg/imagemagick or something that could better automate this whole process. Then again cedega could probably run the directx9 requiring nxv convertion tool for native conversion under wine. My estimates put the frame rate at 16.1 fps but I could have worked that out incorrectly. Also although I'm letting this loose to the public, it currently doesn't produce video with the audio correctly in sync, I'm going to create some longer videos with some obvious audio placemarks and see if I can do some sort of padding in video or audio. My aim is to put a 25-30minute video of something like The Office or Friends for my wife to watch on the tube on the way to work. This was her b'day prezzy and it was 3 months late to be delivered so this is the least I can do :)