Kategorien
Tutorials

iPhone MOV (H.265) in MP4 (H.264) konvertieren

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.

Getestet wurde dieser Artikel mit Avidemux 2.7.8 und 2.8.0 und ExifTool 12.38 und 12.41.

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.

Wird die Datei exiftool(-k).exe nicht in exiftool.exe umbenannt, wird das Skript nach jeder Konvertierung pausiert und muss manuell per Tastendruck fortgesetzt 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.

Avidemux HDR Tone Mapping deaktiviert
In diesem Bild das Video mit deaktivierter HDR Tone Mapping Funktion. Das Bild sieht aus, wie erwartet.
Avidemux HDR Tone Mapping aktiviert
In diesem Bild das Video mit aktivierter HDR Tone Mapping Funktion. Das Bild weist einen starken Grünstich und eine zu hohe Belichtung auf.

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

Avidemux HDR Tone Mapping deaktivieren
Über die Konfigurationsdatei kann das HDR Tone Mapping in Avidemux global deaktiviert werden.

Videos per Skript konvertieren

Vom Batch-Skript werden folgende Aufgaben durchgeführt:

  1. Per Schleife alle MOV-Dateien im angegebenen Verzeichnis durchlaufen.
  2. MOV-Video mit der Avidemux CLI in MP4 H.264 konvertieren.
  3. 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
)
Der Inhalt des Skriptes muss einfach in eine Textdatei mit der Endung .cmd oder .bat abgespeichert werden. Ich nenne die Skriptdatei bei mir beispielsweise convert-mov-h265-to-mp4-h264.cmd.

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:

convert_mov_h265_to_mp4_h264.cmd
Das fertige Skript. Die Zeilen 19 bis 21 müssen entsprechend angepasst werden.

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:

Avidemux MOV (H.265) in MP4 (H.264) konvertieren
Konvertierungsvorgang per Skript von MOV (H.265) in MP4 (H.264).

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

Seit mehreren Jahren begeistere ich mich privat und beruflich für die IT. Das habe ich dann auch zum Anlass genommen, diesen Blog ins Leben zu rufen, um dort praxisnahe Tutorials über verschiedene IT-Themen zu schreiben und meine selbst geschriebene Software zu veröffentlichen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert