Frage von Martin.Schneider:Hallo, zusammen,
ich habe regelmäßig viele AVI-Dateien, die mit der falschen Framerate laufen.
Mit AVIfrate lassen sich diese natürlich einfach ändern - jedoch nur immer eine Datei, heißt: Ich muss mich durch 500 Dateien durchklicken und 500 Mal die richtige Framerate einstellen.
Gibt es ein Tool, welches das von der Kommandozeile aus macht?
Wichtig: Das Tool muss wirklich die Framerate ändern, also nicht umkopieren in eine neue Datei mit der richtigen Framerate, weil die AVIs sehr groß sind und der Plattenplatz in der Regel dazu nicht ausreicht.
Da ich die Dateien anschließend in TMPGEnc Xpress in MPEGs umwandle, wäre es auch okay, wenn mir jemand einen Trick sagen könnte, mit dem ich TMPG sagen kann: Interpretiere die AVIs als Filme mit x Frames, das kann er aber nicht.
AVIsynth kann das zwar, hat aber hat den Nachteil, für jede Quelldatei ein Script schreiben zu müssen...
Danke für Eure Tipps!
Viele Grüße,
Martin
Antwort von tommyb:
Bei Avisynth müsstest Du zwingend umcodieren.
Für dein Vorhaben würde sich u.A. ffmpeg eignen in Verbindung mit einer batch-Datei (*.bat) und dem "copy" argument für Video und Audio.
Die bessere und einfacher bedienbare Alternative ist hingegen VirtualDub in der aktuellsten Version.
Lade eine AVI Datei in das Programm und stelle Video sowie Audio auf "Directstream copy". Gehe dann in Framerate und ändere diese nach deinen Wünschen.
Gehe nun auf File -> Queue Batch Operation -> Batch Wizard und wähle alle AVI Files die Du ändern willst.
Antwort von Martin.Schneider:
Hallo, und danke erst mal für Deine Antwort.
Aber... Nicht, dass wir aneinander vorbeireden...
Wichtig: Das Tool muss wirklich die Framerate ändern, also nicht umkopieren in eine neue Datei mit der richtigen Framerate, weil die AVIs sehr groß sind und der Plattenplatz in der Regel dazu nicht ausreicht.
Wenn ich Dein Posting richtig verstehe, sind wir wieder beim Umkopieren...?
Gruß,
Martin
Antwort von carstenkurz:
Wenn das über die Kommandozeile gemacht wird, kannst Du doch nach jedem Umkopieren das Original löschen.
Ansonsten ist der Ansatz über AVIfrate ja schon am besten. Vielleicht versuchst Du es mal mit einem Macro-Rekorder oder ähnlichen Tools, AutoIt z.B. kann auch so ein GUI Programm automatisieren.
http://www.autoitscript.com/autoit3/index.shtml
- Carsten
Antwort von tommyb:
Aber... Nicht, dass wir aneinander vorbeireden...
Ja das stimmt. In diesem Fall würde eine Schar neuer Dateien entstehen.
Im Endeffekt würde dann nur noch die Automatisierung mittels Autoit (wie vorgeschlagen) helfen oder aber tatsächlich ein Batch-Script ähnlich diesem hier:
Erste Datei, z.B. aufruf.bat
@echo off
START /B /WAIT changefps.bat "videodateien\0001.avi"
START /B /WAIT changefps.bat "videodateien\0002.avi"
START /B /WAIT changefps.bat "videodateien\0003.avi"
START /B /WAIT changefps.bat "videodateien\0004.avi"
Zweite Datei: changefps.bat
@echo off
set fullfilename=%~dpn1
set filename=%~n1
set extension=%~x1
IF NOT EXIST %fullfilename% goto ENDE
ffmpeg BLABLABLA "%fullfilename%%extension%" BLABLABLA "%fullfilename%_temp%extension%"
del "%fullfilename%%extension%"
ren "%fullfilename%_temp%extension%" "%filename%%extension%"
:ENDE
Und als Bonus, hier ein Script welches Dateien mit einer bestimmten Endung in eine Textdatei schreibt:
@echo off
DIR *.mkv /B /S /A>>"dateiliste.txt"
Die beiden ersten Scripts sind quick & dirty, der letzte funkt auf jedem Fall. Beachte allerdings, dass Umlaute in Batchdateien am besten nichts suchen sollten.
Antwort von Martin.Schneider:
Hi!
Wow, super, vielen Dank für die Mühe!
Viele Grüße,
Martin