Beliebiges Filmformat in TS-Datei umwandeln

Aus TuxBoxWIKI
Version vom 14. Dezember 2005, 09:17 Uhr von Ksweber (Diskussion) (PAL-Plus Erzeugung hinzugefügt)
Wechseln zu: Navigation, Suche


Allgemeines

Ein Film als TS-Datei hat den Vorteil, dass man diese Inhalte in seiner Medienbibliothek per Fernbedienung im Zugriff hat. Man kann dann im Film vor- und zurückspringen, was über den VLC-Stream nicht geht. Weiterhin hat der VLC-Stream immer noch seine Grenzen, was die Qualität des Streams angeht (1250 KBit/s Video, 192 KBit/s Audio).

Hier nun mein Vorgehen, welches Kommandozeilen-Werkzeuge und GUI-versehene Werkzeuge kombiniert. Ich arbeite unter Linux wie folgt:


Film-Datei per mencoder nach MPEG2 konvertieren

Mit dem Programm mencoder kann man alle Videos, die der Mplayer abspielen kann decodieren und neu MPEG2-konform codieren.

Man sollte sich aber vorher darüber klar werden, ob man ein PAL, oder ein PALplus Ausgabeformat erzeugen will. Bei eher breitbildverdächtigen Video-Quellen, würde ich für eine bessere Qualität PALplus empfehlen, also eine anamorphe Bildaufzeichnung.

Liegt eine Breitwandformat-Quelle wie Cinemascope oder Panavision mit einem Seitenverhältnis von 2,35:1 vor, dann ergibt dies für ein PAL-Bild eine effektive genutzte Bildfläche von 720x306 Pixeln, der Rest ist mit schwarzen Balken aufgefüllt. Für ein PALplus-Bild dürfen wir 720x436 Pixel verwenden, was deutlich mehr Information speichert und der Bildqualität entgegenkommt, obwohl weiterhin schwarze Balken zum Auffüllen nötig sind.

PAL-Anweisung

Mencoder wie folgt aufrufen:

mencoder film.[mpeg1|divx|...]  \
         -o filmNeu.mpg -of mpeg -ofps 25 \
         -oac lavc -ovc lavc \
         -srate 44100 \
         -lavcopts acodec=mp2:vcodec=mpeg2video:vhq:keyint=25:vbitrate=10000:abitrate=192:scplx_mask=0.2  \    
         -vf scale=720:-2,expand=0:576,crop=704:576

PALplus-Anweisung

Hier kommt prinzipiell der gleiche Aufruf zum tragen, nur müssen die Seitenlängen beide explizit gesetzt werden. D.h. die letzte Zeile wird wie folgt abgeändert:

-vf scale=720:Y_NEU,expand=0:576,crop=720:576

Y_Neu errechnet sich wie folgt aus dem Seitenverhältnis x:y der Quelle:

1024/(x/y)

Im obigen Beispiel eines 2,35:1 Kinoformats ergibt sich per 1024/(2,35/1) der neue vertikale Wert 435,74. Wir würden daher für Y_NEU 436 einsetzen.

Bild und Ton trennen

Leider sind bei meinen Versuchen nach der obigen Übersetzung manchmal Bild und Ton nicht mehr synchron gewesen. Dies passiert oft durch Fehler in der Eingangsdatei. ProjectX zaubert beim Demuxen aber die fehlende Info wieder her:

  1. ProjectX öffnen (java -jar /usr/lib/jar/pX.jar)
  2. Die Datei filmNeu.mpg öffnen
  3. Go drücken.

Es entstehen die Dateien filmNeu.mpv (Bild) und filmNeu.mp2 (Ton).


Bild und Ton wieder vereinen

Die beiden Informationsquellen wieder synchron zueinanderfügen:

mplex -f 9 -o filmNeu.mpg filmNeu.mpv filmNeu.mp2

Manchmal sind Bild und Ton um einen festen Faktor different. Sollte also eine Differenz bestehen, dann müssen wir beim Muxen einen weiteren Parameter vorsehen (z.B. 200ms):

mplex -f 9 -O 200ms -o filmNeu.mpg filmNeu.mpv filmNeu.mp2

Manchmal driften Bild und Ton aber nach anfänglicher Synchronität wieder auseinander. Hier hat mir schon der Parameter -V geholfen, der bei variablen Bitraten zum Einsatz kommt:

mplex -f 9 -V -o filmNeu.mpg filmNeu.mpv filmNeu.mp2


MPEG nach TS wandeln

Dann noch den MPEG-Film in ein TS-Format umbasteln lassen. Hierzu auf der Kommandozeile folgenden Aufruf tätigen:

java -jar /usr/lib/jar/pX.jar -c /usr/lib/jar/pX_ts.ini -o . filmNeu.mpg


Aufräumen

Alle Dateien, bis auf das TS-File, sind nun entfernbar!!!



Review-KandidatDieser Artikel befindet sich derzeit im Reviewprozess. Hilf mit, ihn zu verbessern! Falls du bei weiteren Artikeln helfen willst, findest du hier eine Auswahl offener Artikel.