home | gallery | blog | contact Diese Website ist allenfalls für Leute interessant, die mich kennen.
This Website is solely of interest to people who know me, if at all.
Daniels Homepage

tinker stuff
(completely obsolete)
Mitsubishi AMiTY Laptop
Verschlüsselte Dateisysteme
Palm Pilot Potpourri
VPS mit Debian
TechniSat TechniPlayer
Openmoko Freerunner
GTD mit TiddlyWiki
bastelkram
(obsolet)
 
last change
03. April 2019
letzte Änderung
 

Linux TechniSat TechniPlayer MEncoder MPlayer USB

TechniSat TechniPlayer - Anschliessen an und Befüllen mit Linux

History

06. Jan 2008: Kleinere Korrekturen
05. Jan 2008: Erste Version

TechniSat TechniPlayer

Allgemeines

Der TechniSat TechniPlayer ist etwas kleiner als eine Zigarettenschachtel (75x42x14 mm) und hat ein 2-Zoll-Farbdisplay mit einer Auflösung von 220x176 Pixel. Das ist nicht gerade üppig - es ist also mehr ein Gerät mit dem man primär Musik und Radio hören und gelegentlich auch mal ein Video ansehen kann. Dafür ist das Gerät schon ab 70 Euro zu haben (Stand: Ende 2007). Es gibt 7 Bedienknöpfe, einen Ein/Aus-Schalter, einen USB-Anschluss, eine Klinkenbuchse (3,5 mm) und einen Steckplatz für eine SD-Speicherkarte. Der interne Speicher ist (bei dem mir vorliegenden Gerät) 2 GB gross. Weitere technische Einzelheiten kann man auf der Website von TechniSat nachlesen.

Das Gerät sieht edel aus, wenn es neu ist, aber es verkratzt leicht (Display-Schutzfolie benutzen!) und durch das ständige Befingern bildet sich schnell eine leider gut sichtbare Schmierschicht. Ein Brillenputztuch tut gute Dienste, insbesondere, wenn man sich anschickt, ein Video anzuschauen.

Dem Gerät liegt u.a. ein USB-Anschlusskabel und eine CD bei, die eine Windows-Software enthält, mit der man Media-Dateien für den TechniPlayer konvertieren kann. Jetzt kommt sozusagen der Akt, wo der Frosch ins Wasser springt: Wie macht man das mit Linux?

Anschliessen

Der TechniPlayer wird unter Linux als USB Storage-Device erkannt. Unerklärlicherweise schlugen zunächst alle Versuche, Dateien auf das Gerät zu kopieren fehl (Buffer I/O error on device). Nach einigem Gefluche bin ich dann auf die Idee gekommen, dass es möglicherweise eine neuere Firmware für das Gerät gibt und dass es klug wäre, diese erstmal einzuspielen, bevor ich anfange, an meinem Linux herumzudoktern. Tatsächlich war die Firmware auf dem Gerät von Juni 2007, die neueste ist jedoch vom 21.08.2007 und auf der Website von TechniSat erhältlich. Immerhin. Natürlich braucht man ein Windows-Tool zum Einspielen der Firmware; also musste der Rechner meines Bruders herhalten. Danach ging alles glatt:
kernel: usb 5-4: new high speed USB device using ehci_hcd and address 10
kernel: usb 5-4: new device found, idVendor=071b, idProduct=3203
kernel: usb 5-4: new device strings: Mfr=1, Product=2, SerialNumber=3
kernel: usb 5-4: Product: ROCK MP3
kernel: usb 5-4: Manufacturer: RockChip
kernel: usb 5-4: SerialNumber: USBV1.00
kernel: usb 5-4: configuration #1 chosen from 1 choice
kernel: scsi10 : SCSI emulation for USB Mass Storage devices
kernel: usb-storage: device found at 10
kernel: usb-storage: waiting for device to settle before scanning
kernel:   Vendor: RockChip  Model: USB MP3           Rev: 1.00
kernel:   Type:   Direct-Access                      ANSI SCSI revision: 00
kernel: SCSI device sdb: 4082176 512-byte hdwr sectors (2090 MB)
kernel: sdb: Write Protect is off
kernel: sdb: Mode Sense: 03 00 00 00
kernel: sdb: assuming drive cache: write through
kernel: SCSI device sdb: 4082176 512-byte hdwr sectors (2090 MB)
kernel: sdb: Write Protect is off
kernel: sdb: Mode Sense: 03 00 00 00
kernel: sdb: assuming drive cache: write through
kernel:  sdb: unknown partition table
kernel: sd 10:0:0:0: Attached scsi removable disk sdb
kernel: sd 10:0:0:0: Attached scsi generic sg1 type 0
kernel:   Vendor: RockChip  Model: USB  SD           Rev: 1.00
kernel:   Type:   Direct-Access                      ANSI SCSI revision: 00
kernel: sd 10:0:0:1: Attached scsi removable disk sdc
kernel: sd 10:0:0:1: Attached scsi generic sg2 type 0
kernel: usb-storage: device scan complete
Der Inhalt des internen Speichers musste leider als Kollateralschaden dran glauben; nach dem Firmware-Update musste ich ihn unter Windows mit FAT neu formatieren. Aber das Mounten von /dev/sdb, sowie Lesen und Schreiben funktioniert jetzt einwandfrei.

Media-Dateien umkodieren

Audio

Kein Problem: Eine mit LAME kodierte MP3-Datei ist ohne weiteres abspielbar. LAME ("LAME Ain't an Mp3 Encoder") muss man aus dem Quellcode selbst kompilieren, aber der übliche Dreisprung ./configure, make und make install tut. Die ersten beiden Sprünge führt man als nicht privilegierter Benutzer und den letzten als "root" aus. Danach ein
lame datei.wav datei.mp3
und man hat eine auf dem TechniPlayer abspielbare MP3-Datei. Will man zusätzlich ID3-Tags erzeugen, kann man beispielsweise id3v2 benutzen.

Video

Videos für den TechniPlayer unter Linux zu erzeugen, ist schon eher eine Herausforderung. Dass es grundsätzlich gehen müsste, ahnt man, wenn man eine mit dem Windows-Tool konvertierte Datei untersucht. Dort lacht einem folgendes entgegen:
linux$ mplayer -v datei.avi

MPlayer 1.0xxxxxxxx-SUSE Linux 10.x (i686) (C) 2000-200x MPlayer Team
[...]
VIDEO:  [XVID]  224x176  12bpp  20.000 fps  398.7 kbps (48.7 kbyte/s)
[V] filefmt:3  fourcc:0x44495658  size:224x176  fps:20.00  ftime:=0.0500
Clip info:
 Software: MEncoder Sherpya-MinGW-20060312-4.1.0
[...]
MPEG 1.0, Layer II, 44100 Hz 128 kbit Stereo, BPF: 417
Channels: 2, copyright: No, original: Yes, CRC: No, emphasis: 0
AUDIO: 44100 Hz, 2 ch, s16le, 128.0 kbit/9.07% (ratio: 16000->176400)
Bei dem OEM, der den Player für TechniSat herstellt, kocht man also auch nur mit (OpenSource-) Wasser. Etwas merkwürdig finde ich die reduzierte Framerate von 20 fps (anstatt der üblichen 25 fps) und dass MP2- (MPEG-1 Layer 2) und nicht MP3- (MPEG-1 Layer 3) Audio verwendet wird (was man bei einem MP3-Player eigentlich erwarten würde). Möglicherweise liegt diesen Massnahmen der Versuch zugrunde, die zum Dekodieren erforderliche Rechenleistung möglichst gering zu halten.

Um es kurz zu machen: Ich habe lange rumprobiert, um mit dem MEncoder unter Linux TechniPlayer-kompatible Videos zu erzeugen. Schliesslich und endlich ist folgendes Skript dabei herausgekommen:

#!/bin/bash
#
# technip-conv.sh
#
# set -x

function usage () {
echo "benutzung: `basename $0` -v <VIDEO bitrate> -a <AUDIO bitrate> \
-c <VIDEO FILTER args> QUELLDATEI ZIELDATEI"
echo "defaults: -v 400 -a 128 -c dsize=1.25,scale=224:176"
echo "Die Namen der Quell- und Zieldatei duerfen nicht uebereinstimmen."
echo "Einfachstes Beispiel: `basename $0` QUELLDATEI ZIELDATEI"
exit 1
}

echo "Konvertierung nach AVI/XVID/MP2 fuer TechniSat TechniPlayer"

while getopts "v:a:c:" opt; do
    case $opt in
       v) VRATE="$OPTARG"
          ;;
       a) ARATE="$OPTARG"
          ;;
       c) SCALE="$OPTARG"
          ;;
      \?) usage
          ;;
    esac
done

shift $(($OPTIND - 1))

if [ "$#" -lt "2" ]; then
    usage
fi

SOURCE=$1
TARGET=$2

test -f $SOURCE || usage

if [ $SOURCE == $TARGET ]; then
    usage
fi

test -z $VRATE && VRATE="400"
test -z $ARATE && ARATE="128"
test -z $SCALE && SCALE="dsize=1.25,scale=224:176"

echo "  video br: $VRATE"
echo "  audio br: $ARATE"
echo "   vfilter: $SCALE"
echo "quelldatei: $SOURCE"

echo -n "     Start: "
date
nice -n 19 mencoder -noodml $SOURCE -vf $SCALE -ofps 20 -ovc xvid -xvidencopts \
bitrate=$VRATE:max_bframes=0:quant_type=h263 -srate 44100 -oac lavc \
-lavcopts acodec=mp2:abitrate=$ARATE -o $TARGET > /dev/null 2>&1
echo -n "      Ende: "
date

exit 0
Der Aufruf des MEncoder mit den richtigen Parametern am Schluss des Skripts macht den Job. Natürlich kann man sich das Drumherum des Skripts auch schenken und den MEncoder direkt aufrufen. Die besagten Parameter sind unmittelbar aus dem Skript ersichtlich.

Viel Spass mit dem TechniPlayer ohne Windows!


Copyright (c) 2008 daniel(-at-)bischof.org - Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 (GFDL).



 
links
Humanistische Union
FFII
Deutsche Vereinigung für Datenschutz
Big Brother Awards
Fefes Blog

Linux Weekly News
Linux Today
Slashdot
xkcd
verweise
 
quote
"Trust the math.
Encryption is your friend."

   Bruce Schneier
zitat