CQTester
Download:
CQTester nur
EXE downloads: 7259
- (VB Runtime necessary)
CQTester Help
(Dieser Text) downloads: 2297
Es gibt verschiedene Methoden einen Film im CQ Modus (auf die Frage ob
CQ
besser als 2 pass VBR ist, gehe ich hier nicht ein...) passend auf eine
CD zu kriegen: Tok, CQMatic, DVD2SVCD, "von Hand" rechnen..., aber all
diese Methoden konnten mich nicht überzeugen, da sie meist keine
TMPGEnc Cuts unterstützen, oder kompliziert oder nicht Batch
fähig sind. Daher habe ich den CQTester entwickelt. Der Ansatz ist
relativ simpel: Die xxx.tpr Datei wird analysiert (isb. auf Cut Points)
und aus den genutzten Bereichen jeweils ca. 1 sek pro Minute Film
encodet.
Die Grösse der entstandenen MPG Datei wird auf die Länge des
Film hochgerechnet und daraus ein neuer CQ Wert berechnet. Mit diesem
wird wieder getestet usw. (CQMatic macht das ähnlich).
Nach max. 9 Versuchen sollte ein "brauchbarer" CQ Wert herausgekommen
sein. Die "Vorhersagegenauigkeit" liegt bei ca. 2-3% Abweichung.
CQTester wurde unter Windows2000 und XP entwickelt (Das Programm
verwendet dann die PSAPI.DLL die nur in diesen Betriebssystemen
verfügbar
ist), es sollte aber auch in Windows 9X/ME lauffähig sein.
Sonstige Vorraussetzungen:
- TMPGenc Version > ~2.58 (englisch!)
- Projekt in
TMPGEnc als "Text Projekt" gespeichert
- Ausgabe als vollständiger System - Stream
(Audio+Video) oder als elementare Streams (Video+Audio oder nur
Video) (also NICHT Audio only oder System
- Stream Video only)
- Nur ein (Video) Input Stream - falls mehrere
vorliegen, diese zunächst (z.B. mit den MPEG Tools) zusammenfassen
- Wenn man mehr als einen Audiostream verwenden
will, dann keinen Audiostream im TMPGEnc projekt angeben
Damit
der CQTester funktioniert MUSS ein Bereich "geschnitten" sein, ggf.
kann das aber der ganze Film sein. In diesem Fall in TMPGEnc unter
"Source range" nichts markieren, "Cut editing" klicken und "Cut except
currently selected area" auswählen (Also nicht "Start frame und
"End frame" auf bestimmte Werte stellen OHNE zu schneiden - "Start
frame" muss 0 sein und "End frame" -1!). Falls man als Ausgabe Stream
"ES Video only" verwendet, dann DARF auch nur der ganze Film selektiert
sein. Ein Beispiel ist im Anhang.
Falls man elementare Video und Audio Streams verwenden
will, kann der CQTester nach dem Encoden die Streams mit bbmpeg muxen,
hierzu ist die modifizierte Version von der DVD2SVCD Homepage
erforderlich. Link: www.dvd2dvd.org
Die benötigte bbMPEG Version ist links unten zu finden: bbMPEG
v1.24 beta 18 (SemiCLI 1.0.0.2). Falls man mit bbMPEG auch "von Hand"
muxen will, braucht man unter WinXP ggf. eine
gepatchte Version der bbmpeg.dll, gibt es z.B. hier: www.divx-digest.com/software/avi2mpg2
(Stichpunkt 5: bbMPEG XP patch). Diese in einem separaten Verzeichnis
installieren, da sie nicht kompatiben mit der SemiCLI Version ist. In
den bbMPEG Settings muss "Run in
batch mode" aktiviert sein. Falls man vorhat, den Film mit dvdauthor (bzw. meinem GUI for dvdauthor)
auf DVD zu brennen, kann man auch mit mplex muxen. Hierzu wird gleich
die nötige Option (mplex - f 8) verwendet. Bitte nur mit DVD
konformen Audio Streams verwenden.
Zusätzlich kann CQTester noch das
Audiofile mit BeSweet in das Zielformat konvertieren (bei manchen
Aufnahmen von DVB Streams hatte ich nach 10-20 min keinen Ton mehr im
encodeten Film - Audio vorher mit BeSweet transcodiert =>
keine Probleme mehr), hierzu ist natürlich ein installiertes
BeSweet erforderlich, dieses bekommt man bei: dspguru.doom9.net
Nach dem ersten Start müssen einige Dateipfade
gesetzt werden. Hierzu auf "Settings" klicken:
Die Pfade zu TMPGEnc.exe, RunbbMPEG.exe, mplex.exe und BeSweet.exe
auswählen
oder eintippen (Pfad zu RunbbMPEG.exe,
mplex.exe und
BeSweet.exe ist natürlich nur erforderlich, wenn man diese auch
verwenden will).
"Use BeSweet for Audiofile before encoding" lässt sich erst
aktivieren nachdem ein gültiger Pfad zu BeSweet.exe vorhanden ist.
Ebenso geht "Mux with bbmpeg" nur mit
gültigen Pfad zu RunbbMPEG.exe... Eine ausführliche Beschreibung der einzelnen
Einstellungen ist im Anhang.
Man kann entweder eine feste Sample Grösse verwenden ("Use fixed
Test Settings") oder die Sample Grösse dynamisch in
Abhängigkeit von der GOP Länge berechnen lassen ("Use dynamic
Test Settings" = default). Mit "Default min/CD" kann man eine Anzahl
von Minuten vorgeben, ab welcher der CQTester von zwei (oder noch mehr)
CD's ausgehen würde (siehe "Number of CD's" im Hauptfenster). Nack
Klick auf "OK" werden alle Einstellungen in der Windows Registrierung
gespeichert.
Der Wert für "MB pro CD" hängt von der CD-Rohlinggrösse
ab (1MB = 1048576 Bytes!). Kann jeder so verändern wie er das
will. Auch diese Einstellung wird in der
Windows Registrierung gespeichert. "Number of CD's" wird entsprechend
der Filmlänge und dem eingestellten Wert für "Default min/CD"
aus dem TMPGEnc Projekt bestimmt (kann dann aber
verändert werden). Der CQ Wert wird zunächst ebenfalls aus
der
TMPGEnc Projekt Datei entnommen, kann dann ebenfalls geändert
werden und ändert sich natürlich während der
Optimierung.
Als erstes das zuvor in TMPGEnc gespeicherte Projekt laden (mit dem
"Öffnen" Button oder eintippen)
Danach wird der Inhalt der Projekt Datei analysiert und im unteren
Fenster angezeigt.
Jetzt kann man die Anzahl CD's ändern (Standard ist 1 CD pro 90
Min Film) den "Start" CQ Wert anpassen und ggf. projektspezifisch auch
noch die MB pro CD anpassen (z.B. wenn man zwei Serien auf eine CD
packen will...). Wenn als Output in TMPGEnc elementare Streams (sowohl
Video+Audio als auch Video only) eingestellt sind, wird zusätzlich
noch die Größe der Audiodatei berechnet (entsprechend der im
TMPGEnc project enthaltenen Audiobitrate) sowie der MUX - Overhead
(wobei als Berechnungsgrundlage der Overhead von bbmpeg verwendet
wird). Beide Werte lassen sich hier auch ändern (nötig falls
man ein anderes Mux - Programm oder mehrere Audiostreams verwenden
will). Diese Werte werden während der Optimierung zur ermittelten
Grösse der Videodatei addiert und das Ergebnis mit dem "MB pro CD"
Wert verglichen.
Dann gibt es folgende Möglichkeiten:
"TestCQ": Damit wird nur ein Durchlauf mit dem momentan eingestellten
CQ Wert durchgeführt und eine Hochrechnung auf den gesamten Film
ausgegeben (im Popup Fenster). Ist ganz praktisch um zu testen ob der
Film mit einer persönlichen CQ Grenze noch passen würde.
"Opt. CQ": Startet die Optimierung mit bis zu 9 Durchläufen. Die
"Ergebnisse" sind im unteren Fenster zu sehen. Kann man verwenden um
z.B. die CQ-Werte einiger Projekte zu bestimmen und dann mit TMPGEnc's
eigener Batch Verwaltung zu encoden.
"Opt. + Enc." Startet die Optimierung und anschließend das
Encoden des ganzen Films (mit dem optimierten CQ Wert) sowie ggf. die
Umrechnung des Audiofiles mit BeSweet. Falls man als Output elementare
Video und Audio Streams verwendet, werden diese nach dem Encoden noch
gemuxt. Wenn die Option "Close after
encode" aktiviert ist, beendet sich CQTester nach dem Encoden. Die
Optimierung ist in einem Log file gespeichert, falls man es nachsehen
will.
"Stop" Beendet die Optimierung (aber nicht TMPGEnc).
"Quit" Beendet das Programm.
Will man gleich mehrere Filme encoden, so muss man zunächst alle
Filme als TMPGEnc Projekte fertigstellen und (im TMPGEnc Text Format!)
speichern. Dann kann man diese nacheinander in den CQTester laden, ggf.
die Anzahl der CD's und die MB pro CD anpassen (bei elementaren Streams
auch die Audio und Mux Größe) und auf "Add To Batch
List" klicken. Um ein Projekt wieder zu entfernen, zunächst die
Batch Liste mit "Show Batch List" anzeigen das zu entfernende Projekt
auswählen und auf "Remove" klicken. Außerdem kann man
natürlich hier die Liste vor dem Start noch mal ansehen. Zum
Ändern von Einstellungen (z.B. Anzahl CD's) in der Batch Liste das
Projekt noch mal entfernen und (mit den neuen Einstellungen) neu
hinzufügen. Wenn die Liste OK ist, mit "BatchRun" das Optimieren
und Encoden starten. Ab Version 0.19 kann die Liste auch als LST -
Datei gespeichert bzw. wieder eingeladen werden. Achtung: Es findet
keine "Prüfung" der Liste statt.
Viel Spaß,
Borax
Anhang:
Die Default Einstellung zum Testen/Optimieren des CQ Wertes ist "Use dynamic Test Settings" mit 2 GOP
Längen. Diese Einstellung ist gut geeignet für die DVD
typische GOP Länge von 15 Frames. In diesem Fall verwendet der
CQTester 30 Frames pro Testsample was (bei PAL Filmen mit 25 FPS) 1.2
Sekunden ergibt. Bei einer Gesamttestlänge von (ebenfalls Default)
2% des ganzen Films sich damit 1 Sample pro Minute. Wenn man wesentlich
längere GOPs verwendet, erhält man mit der Einstellung 1 GOP
vermutlich bessere Ergebnisse, da man ansonsten ein langes Sample nur
alle paar Minuten encodet und dadurch die Abweichungen bei
verschiedenen Offsets grösser werden.
Spezialisten dürfen auch gerne andere Werte für die
Optimierung verwenden, per Default werden bei "fixed Test settings"
0,72 sek encoded und zwar
alle 60 sek. Außerdem wird nicht ab Sekunde 0 encodet, sondern
ab
der unter "Start Offset (sek)" angegebenen Sekunde. Während
der Optimierung wechselt der CQTester dann immer zwischen zwei
verschiedenen Offsets. (Also beim Default Offset immer zwischen Sekunde
2
und Sekunde 31). Manchmal oszilliert dann die Testfunktion (z.B. bei
gleicher CQ liegt man beim Offset 2 Sekunden 5% über und bei 31
Sekunden 5% unter dem vorgegebenen Wert für "MB pro CD")
in diesem Fall wird der Offset automatisch um einige Sekunden
verschoben. Falls nach 9 "Versuchen" kein passender CQ ermittelt werden
konnte wird ein Durchschnittswert berechnet (mit "Least square fit"
durch die letzten 8 Versuche). Den "Verlauf" der Optimierung kann man
sich mit "ShowGraph" anzeigen lassen. Hier kann man auch "alte"
Optimierungen anzeigen, wenn man das entsprechende CQTester Log File
einläd.
Ebenso kann man den Eintrag für die BeSweet Optionen
verändern. Am einfachsten, wenn man das BeSweet GUI verwendet,
dort die Einstellungen
wie gewünscht vornimmt und dann den entsprechenden Teil der
Kommandozeile in das Textfeld "BeSweet settings" reinkopiert.
Anmerkung zum (Auto-)muxen mit bbmpeg: Da sich die Einstellungen etwas
unterscheiden, je nachdem ob MPEG1 oder MPEG2 encodet wird, verwendet
der CQTester zwei "Templates" zum Starten von bbmpeg:
defaultmpeg1.ini und defaultmpeg2.ini. Diese beiden Dateien entsprechen
der "default.ini" welche von bbmpeg erstellt wird, wenn man unter "Load
and Save Settings" seine Einstellungen mit "Save as Default" speichert.
Falls man andere Einstellungen will/braucht, dann in bbmpeg die
gewünschten Einstellungen vornehmen und als default speichern.
Anschließend die neu erstellte default.ini in defaultmpeg1.ini bzw. defaultmpeg2.ini
umnennen und die "alten" damit ersetzen. Alternativ kann man das auch
mit einem Texteditor anpassen.
Weil es bisher das häufigste Problem war, hier noch ein Beispiel
für die Schnitteinstellung "ganzer Film" mit TMPGEnc