Nachdem JoeB uns nun hinreichend oft in den Allerwertesten getreten hat (danke!), hab ich nun auch mal ausprobiert, wie man H.264-Video "richtig" produziert: Nämlich gleich als MPEG4-Datei, statt zwischendurch als AVI.
Dafür kann man den "Mencoder" verwenden, der mit dem Mplayer parallel zu ffmpeg und ffdshow entwickelt wird (es basieren ja alle auf der "libavcodec"-Bibliothek), und das plattformübergreifend (also lauffähig auf verschiedenen Betriebssystemen). Das geht am leichtesten, wenn man ihn als Kommandozeilen-Programm entwickelt. Deshalb ist der Mencoder für sich wohl nicht jedermanns Sache.
Für Windows gibt es nun von Doom9 die Benutzeroberfläche "MeGUI", meines Wissens nach sollte Version 0.168 wohl eine recht aktuelle sein. Sie erfordert das .NET-Framework (funktionierte bei mir auf Version 1.1) und ist im englischen doom9-Forum zu finden:
http://forum.doom9.org/showthread.php?s=&threadid=87567
(Leider, da bisher nicht konfigurierbar!) in das selbe Verzeichnis wie MeGUI gehören ebenfalls:
- Mplayer/Mencoder, z.B. von celtic-druid's Mirror
- mp4creator aus den mpeg4ip-Tools von RareWares.
Und zum Erstellen von AAC-Tonspuren:
- BeSweet (1.4 stable + 1.5 beta 29 - mit der bsn.dll 0.24, die sich direkt konfigurieren läßt)
- die AAC-DLLs aus Nero (Programme\Gemeinsame Dateien\Ahead\AudioPlugins: aac.dll, aacenc32.dll - evtl. noch weitere?)
Außerdem sollte AviSynth 2.5x installiert sein, und evtl. ein aktueller ffdshow, oder besser noch der Osmo4-Player, wenn man den Mplayer nicht so toll finden sollte.
Die Bedienung der MeGUI ist etwas spröde, deshalb versuche ich hier mal so gut, wie ich kann, kurz zu erläutern, was man dabei beachten muss.
Zunächst die AviSynth-Skriptdatei: Sie sollte YV12 als Videoformat ausgeben. In der GUI im "Input"-Register öffnen.
Dann evtl. eine Tonspur: MeGUI kann bereits fertig encodierte MP4-Audio- oder AAC-Dateien an den Mux-Schritt übergeben, oder startet bei anderen Dateitypen (z.B. AC3 oder MP2) BeSweet für die Umwandlung.
{ - Unfug mit MP4-Audio entfernt - }
Nach dem Festlegen des Encodingformates (Codec: AVC), des Dateityps (File Type: MP4) und des Dateinamens für die Ausgabe-Datei, folgt jetzt mehr oder weniger Routine:
- Register "Video": Mode = "Automated 2-pass", Bitrate, sonstige Optionen...
- Register "Input": Checkbox "and start" anhaken, Button "Queue" klicken
für die schnelle Methode. Wer lieber spielen will, muss mehr tun:
- Register "Video": Mode = "3pass, 1st pass", Quantizer, sonstige Optionen...
- Register "Input": Checkbox "and start" freilassen, Button "Queue" klicken
- Register "Video": Mode = "3pass, 2nd pass", Bitrate, sonstige Optionen...
- Register "Input": Checkbox "and start" freilassen, Button "Queue" klicken
- Register "Video": Mode = "3pass, 3rd pass", Bitrate, sonstige Optionen...
- Register "Input": Checkbox "and start" freilassen, Button "Queue" klicken
- Register "Queue": Wenn hier alles stimmt (letzter Punkt des Jobs hat den Mode "mux"): "Start" klicken
Bei mir lief nach ein paar Experimenten dann auch tatsächlich alles durch - bis zum Mux. Hier hing das Programm dann ziemlich lange - was am mp4creator liegen soll. Ich dachte zunächst an einen Absturz, bis mich Doom9 mit der Nase auf die ReadMe im MeGUI-Archiv stieß... :redface:
Meine Vermutung geht dahin, dass die Konsolen-Umleitung der .NET-GUI hier Schwierigkeiten hat, und versuchte, aus den Kommandozeilen der Log-Datei die wichtigsten Informationen herauszuziehen. Es gelang mir schließlich, deren Arbeitsweise nachzuvollziehen. Das Ergebnis ist eine Batchdatei (als "Alternative"), die unter Windows 2000 bisher ordentlich funktioniert, und am Ende die MP4-Datei auch noch etwas optimiert.
Es ist möglich, dass man unter Windows XP die Programmstarts in dieser Batchdatei überarbeiten muss - ich habe mal gelesen, dass Windows XP die Programme einfach alle startet und nicht auf deren Ende wartet. Dann müsste man sie, um das zu vermeiden, mit "START /WAIT" aufrufen. Aber ich besitze Windows XP nicht, kann das also nicht testen.
Auf jeden Fall muss vor dem ersten Start die Position der verwendeten Programme eingetragen werden - die ist in meiner Batchdatei nämlich konfigurierbar (bei der MeGUI habe ich das bisher nicht gefunden).
Die Bedienung erklärt sich nach dem Start der Batch-Datei ohne Parameter. Bitte nicht aus dem Explorer starten, sondern aus einem DOS-Fenster - es wäre ja sonst auch schwierig, im Explorer die erforderlichen 5 Parameter anzugeben...
{ Batch-Datei aktualisiert }