Yamagi.org - Finger



Login: yamagi         			Name: Yamagi Burmeister
Directory: /home/yamagi             	Shell: /bin/tcsh
Last login Thu Jan 26 18:04 (CET) on pts/10 from 10.0.1.1
No Mail.


Projekt:


- Ein wenig an verschiedenen Projekten rumprogrammieren
- DRI / DRM und damit volles 3D unter FreeBSD/amd64 geniessen  


Plan:

Kein finger(1) mehr

Beitrag #34 - 18.08.2010


Hallo, so Leid es mir tut, aber ab heute ist mein Planfile nur noch per
Webinterface zugaenglich und nicht mehr per finger(1). Grund ist der
Umzug auf einen neuen Server auf dme ich aus verschiedenen Gruenden,
hauptsaechlich Sicherheitsbedenken, kein finger-Daemon mehr installieren
werde.

x264 statt mpeg4

Beitrag #33 - 04.10.2010


Ich musste einige Filme encoden und entschloss mich diesmal x264 - eine
freie H.264 Implementierung - zu probieren. Der Codec ist inzwischen
besser parallelisiert als der alte mpeg4-Codec der libav, man kann einen
Quadcore auf vier Threads zu ~75% auslasten. Auch erreicht er bessere
Kompressionsraten, man kommt grob mit der halben Bitrate aus. Alles in
Allem eine gute Entscheidung. Die fuer eine DVD anscheinend optimalen
Optionen sind:
 bitrate=850:pass=1:turbo=1:keyint=250:keyint-min=25:bframes=6:ref=3:
 subq=5:me=umh:mixed-refs=1:no-fast-pskip=1:trellis=1:vbv-maxrate=3900:
 vbv-bufsize=2100:threads=4

und fuer den zweiten Pass:
 bitrate=850:pass=2:turbo=0:keyint=250:keyint-min=25:bframes=6:ref=3:
 subq=5:me=umh:mixed-refs=1:no-fast-pskip=1:trellis=1:vbv-maxrate=3900:
 vbv-bufsize=2100:threads=4

x49gp auf FreeBSD

Beitrag #32 - 04.06.2009


x49gp ist ein Emulator fuer die neueren Taschenrechner von HP. Er deckt
alle auf ARM-Prozessoren basierende Modelle ab. Dies sind genauer der
49G, 49G+ und 50G. Streng genommen sind diese gar nicht ARM-basiert,
denn auf der relativ starken Hardware mit dem ARM-Prozessor wird eine
alte, bereits aus der HP-48 Serie bekannte Saturn-CPU emuliert. Auf
dieser Emulation laeuft dann das CAS. Dies hat den Nachteil, dass ein
grosser Teil der moeglichen Leistung verpufft. Der Vorteil ist, dass
vorhandene HP-48 Emulatoren auch die neueren Modelle emulieren konnten,
ist es dem CAS doch egal, ob es im Taschenrechner im Emulator oder auf
dem Computer im Emulator laeuft. Also scheint alles gut zu sein. Es gibt
bei dieser Loesung jedoch ein Problem und an dieser Stelle kommt x49gp
ins Spiel. Diese neueren Taschenrechner erlauben es inoffiziell nativen,
fuer ARM uebersetzten Code auszufuehren. Man kann also Programme in C
schreiben und diese laufen dann auch in nativer Geschwindigkeit.  
Ein Saturn-Emulator kann diesen Code allerdings nicht ausfuehren, was
das Entwickeln eklig macht. Man muss auf dem PC bauen, es auf den
Taschenrechner transferieren, ausfuehren, etc. Debugger? Nur mit dem
Kopf durch den Po. x49gp emuliert nun die ARM-Hardware, auf dieser wird
das ROM des Taschenrechners ausgefuehrt. Also der Saturn-Emulator und in
diesem das CAS. Man hat einen vollstaendigen Taschenrechner auf dem
Desktop und kann in diesem wunderbar entwickeln. Diese Loesung zeigt
aber auch, wie bescheuert HPs Ansatz ist. Der Emulator ist bei 3GHz nur
knapp dreimal so schnell wie der native Taschenrechner, obwohl die
Host-CPU noch locker Kapazitaeten haette. Es ist der Saturn-Emulator,
der hier bremst. Oder anders gesagt, HP ist es zu teuer das CAS auf ARM
zu portieren und es ist ebenfalls zu teuer den Saturn
weiterzuentwickeln.
Wie dem auch sei, ich habe x49gp auf FreeBSD portiert. Es war nicht so
wahnsinnig schwer, nur dank der dreckigen Makefiles ein wenig frickelig.
Das Ergebnis funktioniert einwandfrei, eine Anleitung oder einen Port
baue ich in den naechsten Tagen. Hier erst einmal ein Screenshot

Quake II

Beitrag #31 - 03.06.2009


Ich habe eben nach einigen Monaten bis Jahren - je nach dem wo man die
Grenze zieht - des Entwickelns meinen Quake II Client veroeffentlicht.
Realistisch gesehen muesste man den ganzen defekten Kram neuschreiben,
aber da das viel zu aufwaendig ist, ist dies das Machbare. Aber schaut
selbst auf http://www.yamagi.org/quake2

DVD-Backup zu Matroska-Video mit mencoder

Beitrag #30 - 20.05.2009


Nachdem ich aus gegebenem Anlass einmal ausgetueftelt habe, wie man aus
zickigen DVDs ein Matroska-Video erstellt, hier eine kurze Anleitung.

Verwendete Software:
  - cpvts: Kopiert eine DVD 1:1 auf die Festplatte, entfernt dabei den
    CSS Kopierschutz. Leider nicht in den Ports vorhanden, Google findet
    es aber :) Aus den Ports sollten multimedia/libdvdread und
    multimedia/libdvdcss installiert sein.
  
  - mencoder: Encoder des mplayer-Projektes, im Wesentlichen ein
    Frontend auf libavcodec. In den Ports unter multimedia/mencoder.

  - oggenc: Zum Encoden von Wave-Dateien ins ogg/Vorbis Format. Teil von
    audio/vorbis-tools.

  - dvdxchap: Dieses Tool erzeugt eine Kapitelbeschreibung der DVD,
    welche von mkvmerge gelesen werden kann. Teil von
    multimedia/ogmtools.

  - mkvmerge: Tool zum Erstellen der Matroskadatei. Zu finden unter
    multimedia/mkvtoolnix.

Wieso Matroska und nicht OGM, werden sich nun einige Fragen. An sich
nehmen sich beide Formate nicht viel, sie koennen in etwa das Gleiche.
Es gibt jedoch einen entscheidenden Unterschied. Matroska kann grafische
Untertitel, wie die DVD sie mitbringt. OGM kann nur textbasierte
Untertitel, die Untertitel der DVD muessen konvertiert werden. Ein
Vorgang, der kaum voll automatisiert geht, man muss die konvertierten
Untertitel korrekturlesen, was sehr nervig ist.

Der Trick beim Rippen ist, dass mencoder den Sound einfach uebernimmt,
ihn also 1:1 umwandelt. Um die Synchronitaet zum Bild zu halten, werden
in das das Bild Frames eingefuegt oder entfernt. Rippt man nun nur das
Bild und den Ton nicht, sprich man nutzt die Option -noaudio, ist es
anschliessen praktisch unmoeglich den den Sound synchron zum Bild
einzumischen. Daher sollte immer mit Ton gerippt werden, auch wenn die
Tonspur am Ende nicht genutzt werden soll.

Wir legen ein Verzeichnis an, in welches die DVD kopiert wird.
  mkdir dvd/

Im ersten Schritt wird die DVD auf die Festplatte uebertragen. Dies ist
sehr anzuraten, da die Festplatte schneller als die DVD ist, also
spaeter zeit gespart wird. Ausserdem ist man CSS gleich los.
  cpvts -d /dev/cd0 -a dvd/

Nun kopieren wir das Bild und eine beliebige Tonspur in eine AVI-Datei
um. Wir encoden aus dieser heraus, da es erfahrungsgemaess bessere
Synchronitaet gewaehrleistet als ein direktes Rippen von der DVD.
  mencoder -oac copy -ovc copy -dvd-device dvd/ -o film_roh.avi dvd://N

Anschliessend wird encodet, ein klassisches 2-Pass Encoding. Es kann
jeder Codec genutzt werden, hier nehme ich MPEG4.
  mencoder -cache 65536 -oac mp3lame -lameopts cbr:br=256 -ovc lavc
  -lavcopts vcodec=mpeg4:vbitrate=1500:threads=8:vpass=1:v4mv:mbd=2
  :autoaspect:turbo film_roh.avi -o film_bild_pass1.avi

  mencoder -cache 65536 -oac mp3lame -lameopts cbr:br=256 -ovc lavc
  -lavcopts vcodec=mpeg4:vbitrate=1500:threads=8:vpass=2:v4mv:mbd=2
  :autoaspect film_roh.avi -o film_bild_pass2.avi

Nun den Ton extrahieren und in ein Vorbis-Strom konvertieren. Dies kann
nicht ueber den Umweg ueber eine WAVE-Datei erfolgen, da deren maximale
Laenge nicht selten zu kurz ist. Zuerst wird also eine Fifo erstellt.
  mkfifo sound.fifo

Nun wird oggenc gestartet:
  oggenc -r -C 6 -R 48000 -q 6 -o audio1.ogg sound.fifo

Und mplayer um den Stream zu uebergeben:
  mplayer -ao pcm:file=sound.fifo:fast:nowaveheader -vo null -vc
  null -aid 128 -af channels=6 -dvd-device dvd/ dvd://N

Dies wiederholen wir mit allen Audiostreams, die wir haben wollen.
Anschliessend kommen wir zu den Untertitel.

 mencoder -dvd-device dvd -vobsubout subtitles -vobsuboutindex 0 -sid
 0 -nosound -ovc copy -o /dev/null dvd://1

Auch dies wird mit allen Untertiteln wiederholt. Abschliessend fehlen
noch die Kapitel:
 dvdxchap dvd/ > chapters.txt

Damit haben wir alles und koennen unsere Matroskadatei erstellen. Die
genauen Optionen sind in der Manpage zu mkvmerge(1) erklaert, dass hier
nur als Beispiel. Escapes per \, da sonst das finger-Script die
Doppelstriche als Formatierung interpretiert...
  mkvmerge \-\-title "Unser Film" \-\-track-name 0:"Main Feature" -A 
  \-\-aspect-ratio 0:16/9 film_bild_pass2.avi \-\-language 0:de 
  \-\-track-name 0:"German" audio1.ogg \-\-language 0:ja \-\-track-name 
  0:"Japanese 5.1" audio2.ogg \-\-language 0:de \-\-track-name 
  0:"German Subtitle" subtitlese.idx \-\-chapters chapters.txt 
  -o unser-film.mkv

Das war es, wir haben nun ein 1:1 Abbild der DVD. Es sind 5.1
Audiospuren in allen gewuenschten Sprachen enthalten, ebenso Untertitel
und die Kapiteleinteilung. Wer es moechte kann in die gleiche Datei auch
noch das Bonusmaterial einfuegen. Die Datei kann von vielen Mediaplayer
abgespielt werden, zum Beispiel mplayer oder VLC bieten sich dort an.


Oeffentlicher Schluessel:


PGP-Key: 0xEFBCCBCB 

Zu bekommen per Keyserver:
http://pgpkeys.pca.dfn.de/pks/lookup?op=get&search=0x5938E583EFBCCBCB


Home | Naechste Seite