Standardmäßig nehmen neue iPhones Videos im HEVC (High Efficiency Video Coding) Format auf. Konkret werden die Videos dann als H.265 MOV-Datei gespeichert. Auf modernen Geräten kann das auch vorteilhaft sein, weil Speicherplatz gespart wird. Ältere Geräte oder manche Player kommen damit aber unter Umständen nicht zurecht. In dieser Anleitung möchte ich einen Weg zeigen, wie die Videos mit Avidemux und dem ExifTool so konvertiert werden können, dass das Video auch auf älteren Geräten abgespielt werden kann und sämtliche Meta-Informationen wie Aufnahmedatum, Rotationsinformationen und GPS-Positionen etc. erhalten bleiben.
Inhaltsverzeichnis
Vorbereitungen
Ich werde die Konvertierung per Batch-Skript erledigen, weil ich so auch viele Videos automatisch nacheinander konvertieren kann. Damit das funktioniert, muss zuerst Avidemux installiert und ExifTool heruntergeladen und entpackt werden. Die Datei exiftool(-k).exe muss in exiftool.exe umbenannt werden.
HDR Tone Mapping ab Avidemux 2.8.0
Avidemux 2.8.0 bringt eine neue Funktion HDR Tone Mapping mit, welche standardmäßig aktiviert ist. Diese sorgt bei mir aber eher für Probleme. Videos hatten bei mir dann einen starken Farbstich und die Dateien sind sehr viel größer als ohne diese Funktion. Je nach Szene fällt der Farbstich unterschiedlich stark auf.


Um diese Funktion zu deaktivieren, ist die Datei %AppData%\avidemux\config3 zu bearbeiten und der Wert tonemapping auf 0 zu setzen:

Videos per Skript konvertieren
Vom Batch-Skript werden folgende Aufgaben durchgeführt:
- Per Schleife alle MOV-Dateien im angegebenen Verzeichnis durchlaufen.
- MOV-Video mit der Avidemux CLI in MP4 H.264 konvertieren.
- Meta-Informationen (z.B. Aufnahmedatum, Rotationsinformationen und GPS-Positionen) aus MOV-Video auslesen und in MP4-Video einfügen. Dieser Schritt ist deswegen wichtig, damit alle originalen Informationen zu dem Video beibehalten werden. So wird es auch in diversen Apps mit dem korrekten Aufnahmedatum und Aufnahmeort angezeigt. Die Rotation ist insbesondere für Hochkantvideos wichtig.
Das Skript
Mein Skript sieht wie folgt aus:
rem Rafael Nockmann, 2022-05-29
rem Konvertiert iPhone MOV (H.265) Videos in MP4 (H.264).
rem Das Skript konvertiert alle MOV-Dateien im angegebenen Verzeichnis.
rem Bei HDR-Videos: Funktioniert bis einschließlich Avidemux 2.7.8 problemlos. In Version 2.8.0 wird "HDR Tone Mapping" eingeführt, welches zu Problemen führt: Farbstich und sehr große Videodatei.
rem "HDR Tone Mapping" kann in Datei %AppData%\avidemux\config3 deaktiviert werden. Dafür muss der Eintrag tonemapping auf 0 gesetzt werden.
rem Bei Umlauten im Dateipfad: Das Skript muss im ANSI-Format abgespeichert sein.
rem https://sourceforge.net/projects/avidemux/files/avidemux/2.7.8/
rem https://sourceforge.net/projects/avidemux/files/avidemux/2.8.0/
rem https://exiftool.org/
rem http://www.avidemux.org/admWiki/doku.php?id=using:command_line_usage
rem https://exiftool.org/faq.html#Q9
rem https://exiftool.org/exiftool_pod.html#COPYING-EXAMPLES
set videodir="C:\Bilder\2022-05 Urlaub Allgäu und Tirol AT"
set avidemux="C:\Program Files\Avidemux 2.8 VC++ 64bits\avidemux_cli.exe"
set exiftool="C:\Temp\exiftool.exe"
set videodir=%videodir:"=%
for %%f in ("%videodir%\*.mov") do (
%avidemux% --load "%%f" --video-codec x264 --audio-codec copy --output-format mp4 --save "%videodir%\%%~nf.mp4" --quit
rem Metainformationen aus Datei anzeigen:
rem "exiftool.exe" -s "file.mov"
rem Nur relevante Zeitangaben und Rotation aus Metainformationen der MOV-Datei auslesen und in MP4-Datei schreiben:
rem %exiftool% -TagsFromFile "%%f" -CreateDate -FileModifyDate -Rotation "%videodir%\%%~nf.mp4" -overwrite_original
rem Alle Metainformationen aus MOV-Datei auslesen und in MP4-Datei schreiben:
%exiftool% -TagsFromFile "%%f" -All -FileModifyDate -Rotation "%videodir%\%%~nf.mp4" -overwrite_original
)
Das Skript anpassen
Das Skript muss zunächst angepasst werden. In Zeile 19 bis 21 befinden sich drei Variablen, dessen Wert angepasst werden muss:
- Zeile 19: Pfad zu den MOV-Videos
- Zeile 20: Pfad zur Avidemux CLI
- Zeile 21: Pfad zum ExifTool
Für Avidemux habe ich den win64/VC++ 64 bits Installer verwendet. Das spielt aber eigentlich keine Rolle. Nur der Installationspfad ist dann etwas unterschiedlich. Im Installationspfad befindet sich die Datei avidemux_cli.exe. Der volle Pfad ist in meinem Beispiel C:\Program Files\Avidemux 2.8 VC++ 64bits\avidemux_cli.exe.
Das ExifTool wird als gepacktes ZIP heruntergeladen. Nach dem Entpacken findet man die Datei exiftool(-k).exe. Diese Datei muss in exiftool.exe umbenannt werden. In meinem Beispiel ist der Pfad zur Datei C:\Temp\exiftool.exe.
Das Skript sieht bei mir dann wie folgt aus:

Das Skript ausführen
Es ist eine Eingabeaufforderung zu öffnen und in das Verzeichnis zu navigieren, in dem das Skript liegt. Um das Skript zu starten, muss lediglich der Name des Skriptes in der Eingabeaufforderung eingegeben werden. Alternativ kann das Skript natürlich auch per Doppelklick gestartet werden. Dann empfiehlt es sich aber noch ein pause in der letzten Zeile des Skriptes einzubauen, damit sich die Eingabeaufforderung nicht sofort nach Beendigung der Konvertierung schließt.
Anschließend beginnt der Konvertierungsvorgang, der einige Minuten in Anspruch nehmen kann:

Das war es auch schon. Leider konnte ich kein grafisches Tool finden, welches die Aufgabe für mich zufriedenstellend löste. Aber das Skript tut seinen Dienst 🙂
Weiterführende Links
http://www.avidemux.org/admWiki/doku.php?id=using:command_line_usage
https://exiftool.org/faq.html#Q9
https://exiftool.org/exiftool_pod.html#COPYING-EXAMPLES
https://exiftool.org/forum/index.php?topic=8676.0
Quellen
https://www.techwalla.com/articles/how-to-convert-multiple-videos-with-avidemux