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.
- Ein wenig an verschiedenen Projekten rumprogrammieren - DRI / DRM und damit volles 3D unter FreeBSD/amd64 geniessen
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.
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
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
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
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.
PGP-Key: 0xEFBCCBCB Zu bekommen per Keyserver: http://pgpkeys.pca.dfn.de/pks/lookup?op=get&search=0x5938E583EFBCCBCB