Thema: Geschwindigkeit von Encodern messen (Windows)
Da Windows im Gegensatz zu Linux keinen eingebauten Befehl zum Messen von Ausführungszeiten anbietet, habe ich eine kleine Batchdatei geschrieben um das Ermitteln der Encodierdauer zu erleichtern. Gleichzeitig ermöglicht sie es, alle Dateien encodieren zu lassen ohne sich permanent zwischendurch Werte aufschreiben zu müssen. LAME, mppenc und oggenc geben zwar die Zeiten selbst aus, aber es ist für meine Begriffe angenehmer es so zu machen.
Erstellen Sie sich eine Datei mit der Endung .bat, z.B. encode.bat. Diesen Dateityp nennt man Batchdatei und wer DOS nicht mehr kennt, dem sei gesagt, dass diese Dateien eine Folge von Befehlen enthalten die nacheinander ausgeführt werden. Genau das nutzen wir aus, wir automatisieren den Encodierprozess dadurch etwas.
Inhalt der Datei:
@echo off
echo %time% Starte FLAC Encoder...
for %%I in (*.wav) do flac.exe -5 --totally-silent "%%I" "%%~nI.flac" & call showtime "%%~nI.flac"
echo.
echo %time% Starte MPC Encoder...
FOR %%I in (*.wav) do mppenc.exe --quality 5 --silent "%%I" & call showtime "%%~nI.mpc"
echo.
echo %time% Starte Ogg Vorbis Encoder...
for %%I IN (*.wav) do oggenc.exe -q 6 -Q "%%I" -o "%%~nI.ogg" & call showtime "%%~nI.ogg"
echo.
echo %time% Starte LAME MP3 Encoder...
for %%I IN (*.wav) do lame.exe -V 2 --vbr-new --silent "%%I" "%%~nI.mp3" & call showtime "%%~nI.mp3"
echo.
pause
Erstellen Sie eine zweite Datei showtime.bat mit folgendem Inhalt:
@echo %time% %1
Sie wird die aktuelle Uhrzeit sowie den Dateinamen der gerade encodierten Datei ausgeben.
Bevor Sie den Test starten, stellen Sie bitte sicher, dass folgende Voraussetzungen erfüllt sind:
* alle zu encodierenden WAV-Dateien liegen im gleichen Ordner
* die gewählten Encoder-Versionen entsprechen unseren Vorgaben
* alle Kommandozeilen-Encoder und ebenfalls die beiden angelegten .bat-Dateien liegen ebenfalls in diesem Ordner
* die Dateinamen der Encoder stimmen mit denen in der ersten Batchdatei überein
Sollte dies der Fall sein, dann können Sie den Test mit einem Doppelklick auf die obere Batchdatei (in meinem Fall encode.bat) starten, alternativ kann man sie auch über die Kommandozeile (Start | Ausführen - cmd) ausführen. Wer die Ausgabe in ein Textdatei umlenken will, der benutzt einen Befehl in der Form encode > encode.log.
Die Ausgabe sieht dann wie folgt aus:
15:50:19,39 Starte FLAC Encoder...
15:50:22,70 "01.flac"
15:50:25,73 "02.flac"
15:50:30,14 "03.flac"
15:50:34,46 "04.flac"
15:50:34,48 Starte MPC Encoder...
15:50:46,29 "01.mpc"
15:50:56,78 "02.mpc"
15:51:10,78 "03.mpc"
15:51:23,78 "04.mpc"
15:51:23,78 Starte Ogg Vorbis Encoder...
15:51:37,71 "01.ogg"
15:51:50,10 "02.ogg"
15:52:07,03 "03.ogg"
15:52:22,57 "04.ogg"
15:52:22,57 Starte LAME MP3 Encoder...
15:52:38,68 "01.mp3"
15:52:53,70 "02.mp3"
15:53:14,39 "03.mp3"
15:53:32,26 "04.mp3"
Drücken Sie eine beliebige Taste . . .
Es erfordert nun ein wenig Geschick mit Excel oder einem anderen geeigneten Tabellenkalkulationsprogramm, um die Encodierdauer zu erfassen und anschließend die Länge der Testdateien durch die Encodierdauer zu dividieren um den Geschwindigkeitswert zu erhalten.
Für auf bestimmte Weise zusammenhängende Dateien, z.B. solche eines Albums, empfehlen wir ihnen, Laufzeit und Encodierdauer dieser Dateien zu summieren und anschließend zu dividieren, bei der Betrachtung von Dateien aus verschiedenen Quellen, beispielsweise Einzeltracks oder mehrere Alben dagegen, zunächst die Geschwindigkeit für jede Datei/jedes Album zu ermitteln und anschließend einen Mittelwert zu bilden.