Das Problem:
Es gibt eine Reihe von Videodateien, die nur mit einem benutzerdefinierten Player abgespielt werden können, und ich möchte diese zurückentwickeln, sodass das Video auf gängigen Mediaplayern (wie VLC oder MPC) abgespielt werden kann.
Was ich bisher herausgefunden habe:
Die Untersuchung der Dateien ergab, dass es sich um EBML-Dateien handelt, die von derMatroska-Mediencontainer.
Also änderte ich die Dateierweiterung in .mkv und untersuchte die Datei weiter mitMKVToolNixUndFFMPEG.
MKVToolNixUntersuchungen ergaben, dass eine Videospur mit h.264 und eine Audiospur mit AC3-Kodierung vorhanden waren.
Allerdings wurde die Audiospur durch eine bewusste Änderung des Tags „Spurtyp“ als Video und die Videospur als Audio „markiert“.
MKVToolNixScreenshot der Titelinfos:
- FFMPEGbestätigt auch das gleiche:
[matroska,webm @ 0x7f966c800a00] Codec konnte in avformat_find_stream_info nicht geöffnet werden
[h264 @ 0x7f966c811a00] Codec-Typ oder ID stimmen nicht überein
[ac3 @ 0x7f966c812600] Codec-Typ oder ID stimmen nicht überein[matroska,webm @ 0x7f966c800a00] Codec-Parameter für Stream 0 (Audio: h264 (Hoch), 0 Kanäle) konnten nicht gefunden werden: nicht angegebene Abtastrate. Erwägen Sie, den Wert für die Optionen „analyzeduration“ und „probesize“ zu erhöhen.
[matroska,webm @ 0x7f966c800a00] Codec-Parameter für Stream 1 (Video: ac3, keine, 192 kb/s) konnten nicht gefunden werden: Größe nicht angegeben. Erwägen Sie, den Wert für die Optionen „analyzeduration“ und „probesize“ zu erhöhen.
(redigiert)
Dauer: 01:46:42.00, Start: 0,035000, Bitrate: 2629 kb/s
... Stream Nr. 0:0 (eng): Audio: h264 (Hoch), 0 Kanäle (Standard)Stream Nr. 0:1 (eng): Video: ac3, keines, 192 kb/s, 31,25 fps, 31,25 tbr, 1k tbn, 1k tbc (Standard)
Zweifel:
Ist es möglich, den Matroska-Container zu bearbeiten und das Tag „Tracktyp“ der Medientracks zu ändern?
Ist es möglich,ffmpegden richtigen Eingabecodec für die Video- und Audiospur anzugeben und diese zu extrahieren (vorzugsweise ohne erneute Kodierung)?
Antwort1
Ich konnte keinen EBML-Editor oder Matroska Media-Container-Editor finden, mit dem ich die Werte des „Tracktyps“ in den Matroska-Dateien einfach ändern könnte.
Also musste ich einen Hex-Editor verwenden, um die Binärdateien direkt zu bearbeiten. Ohne MKVToolNix wäre das eine zeitaufwändige Aufgabe gewesen. DerMKVToolNix Infotoolenthält jetzt die praktische Funktion, die Position der Daten (eines Tags) in einer Matroska-Datei anzugeben!
Demnach "Spurtyp: Audio" befindet sich an Position 414 und "Titeltyp: Video" befindet sich an Position 532 in der Matroska-Datei.
Screenshot der MKVToolNix-Infoansicht:
Nach dem Öffnen der Datei im Hex-Editor (Testversion vonSynalyze It! Profür macOS), suchen Sie einfach nach den Daten an der Position, auf die MKVToolNix Info zeigt. Screenshot:
Wir finden, dass Position 414 die Daten enthält 83 81 02
(Audio-- für das Etikett„Track-Typ“) und Position 532 enthält die Daten 83 81 01
(Video- für das Etikett„Track-Typ“). Wir müssen diese Daten also nur austauschen und ersetzen.