video filmpjes op een iAudio U3 via Linux

met behulp van Linux video filmpjes grabben en converteren voor iAudio U3

iAudio U3Af en toe is het weer tijd voor een nieuwe MP3 speler. De oude heeft te weinig capaciteit, meestal is de accu binnen een uur uitgeput en als gadget-junkie moet de drang naar nieuwe gadgets nu eenmaal bevredigd worden.

Een iPod is natuurlijk helemaal hip om te hebben, maar zo’n iPod nano kan bijvoorbeeld geen Ogg Vorbis aan en heeft zelfs niet eens de mogelijkheid om videofilmpjes af te spelen. Een iPod video vond ik te groot en te duur, dus het is een Cowon iAudio U3 geworden. Subliem geluid, ondersteund alle standaarden: MP3, WMA, OGG Vorbis, JPEG, XviD, WAV, TXT, FLAC, MPEG4 en heeft een 260K TFT-LCD Display met 160×128 pixels (formaatje postzegel, maar wel vlijmscherp beeld). Je kan er dus ook je foto’s op bekijken, radio mee luisteren of geluid opnemen met de bijzonder gevoelige microfoon.
Officieel wordt Linux niet genoemd als ondersteund platform, maar je kan het apparaat mounten (USB stekker aansluiten, met dmesg | tail kijken welk device eraan is toegekend, b.v. /dev/sda en dat dan mounten met: mkdir /iAudio ; mount /dev/sdb /iAudio) en bestanden heen en weer kopieeren.

Als je fimpjes wilt omzetten zodat ze op de U3 te bekijken zijn kan dat heel goed met mencoder (meegeleverd in het mplayer package). Output formaat moet 160×128 pixels zijn met 15 frames per seconde. Dat gaat als volgt:

mencoder orgineel.ext -quiet -oac pcm -ovc xvid -ofps 15 -vf scale=160:-2 -xvidencopts bitrate=256:vhq=4:me_quality=4:max_bframes=0 -o film.avi

Uiteraard vervang je orgineel.ext door de naam van het video bestand dat je wilt converteren. Hierna moet er nog een slag plaatsvinden om het geluid te converteren van PCM naar MP3:

transcode -i film.avi -P1 -b 0,1 -o U3-film.avi

En nu kan het bestand U3-film in de movie folder op je U3 geplaatst worden.

Wat een erg hoge “coolness” factor heeft is om het journaal op die manier te kijken. Met mplayer kan je zo de laatste versie van het journaal streaming bekijken:

mplayer 'rtsp://streams3.omroep.nl/tv/nos/journaal/bb.laatste.rm'

Dus voor het opslaan naar disk en slechts een kleine wijziging nodig:

mplayer -dumpstream -dumpfile journaal.rm 'rtsp://streams3.omroep.nl/tv/nos/journaal/bb.laatste.rm'

Vervolgens journaal.rm met mencode omzetten, door transcode halen en voila. De ondertitels zijn nog net (maar dan ook net) leesbaar.

Ik heb een klein programma in Perl gescheven wat alle video files in een directory in een keer kan converteren naar het juiste formaat

[perl]
#!/usr/bin/perl
# (c) 20060801 by Ewald

use strict;

my $DEBUG = 0;
my @files = glob( “*.mp4” ); # get files to work on
my $out1;
my $out2;
my $org;

foreach my $file ( @files ) {
next if -d $file; # directory?
next if -z $file; # zero byte ?
$DEBUG && print “$file\n”;
$org = $file;
$file =~ tr/A-Z/a-z/; # lowercase
$file =~ tr/\ /_/; # get rid of spaces
$file =~ s/[\’\”\[\]\(\)\$\&]//g; # get rid of special char’s
$file =~ s/\.mp4$//; # strip extension
$DEBUG && print “$file\n”;
$org =~ s/(.)/\\$1/g; # escape everything for the shell
$out1 = $file . “.avi”;
print “transcoding $file\n”;
$DEBUG && print “mencoder $org -quiet -oac pcm -ovc xvid -ofps 15 -vf scale=160:-2 -xvidencopts bitrate=256:vhq=4:me_quality=4:max_bframes=0 -o $out1\n”;
qx(mencoder $org -quiet -oac pcm -ovc xvid -ofps 15 -vf scale=160:-2 -xvidencopts bitrate=256:vhq=4:me_quality=4:max_bframes=0 -o $out1);
$out2 = “U3_” . $out1;
$DEBUG && print “transcode -i $out1 -P1 -b 0,1 -o $out2\n”;
qx(transcode -i $out1 -P1 -b 0,1 -o $out2);
unlink $out1; # remove intermediate file
$DEBUG && exit 0; # in debug we run only once
}
[/perl]
Het programma is ook te downloaden: cvt2u3.pl

have fun!