MKVToolNix: Kann man damit den fps-Flag von Video-Dateien ändern?

Registriert
Juli 2022
Beiträge
161
Ich habe das Programm vor einigen Jahren mal benutzt, um die Tonhöhe von Streams anzupassen (wegen PAL-Speedup). Die waren allerdings alle korrekt in 23,976. Mehr habe ich mich mit dem Programm nicht beschäftigt.
Nun würde ich gerne neben diesem Schritt noch die Videodatei selbst statt mit 25 fps mit 23,976 abspielen lassen – aber ohne dass es jede Sekunde zu Rucklern kommt. Hintergrund:

1. Auch wenn mein Mediaplayer (Orbsmart R82) die Framerate korrekt umschaltet, geht dadurch der Anfang des Films im schwarzen Bild während des Umschaltens verloren. Ebenso der Schluss, wenn es wieder zurückstellt. Kann man zwar umgehen, indem man vor dem Start die Framerate manuell einstellt, aber diesen Schritt möchte ich mir sparen.
2. Wichtiger: Bei Musik/Songs in Filmen bemerkt man die unterschiedliche Geschwindigkeit nicht nur durch die 4% höhere Tonhöhe, sondern auch die entsprechend schnellere Geschwindigkeit der Songs. Das würde ich gerne beheben.

Gibt es also eine Möglichkeit, laienhaft ausgedrückt, dem Video einen Flag zu verpassen, damit es statt in 25 in 23,976 fps abgespielt wird, die Bilddaten aber nicht neu codiert/berechnet werden, um die Qualität zu erhalten?

Vielen Dank schon mal!
 
Es gibt ein Feld dafür, in das man die Framerate als Wert oder Bruch eingeben kann. Allerdings findet kein Resampling des Tons statt, was Du zwar auch nicht möchtest, aber nicht jeder Player kommt damit klar. Es kann auch sein, dass der Player solche Metadaten ignoriert. Probiere es doch aus, das Programm ist schnell runtergeladen.
 
  • Gefällt mir
Reaktionen: Bundesgerd
Wenn du nur das Flag änderst, nicht aber die FPS selbst, bringt das etlicher Abspieler aus dem Tritt.

Besser: Neu mit 23,976 FPS enkodieren.
 
  • Gefällt mir
Reaktionen: wuselsurfer und inge70
Blöde Frage meinerseits, mit welchem Player spielst du denn deine Medien ab? In Plex 100% und Jellyfin meiner Ansicht nach auch müsste es die Option geben, dass er eine Pause macht während die Umschaltung der Bildwiederholfrequenz erfolgt.

Aber vielleicht habe ich die Fragestellung einfach nicht verstanden.
 
Doch, das ist ein Punkt der Fragestellung. Der Orbsmart R82 startet sofort.

Ein resampling des Tons würde ich auch auf alle Fälle wollen, doch da weiß ich wie es geht 😉
Also wenn ich es richtig verstanden habe, geht das mit dem Flag, könnte aber den Player irritieren. Wenn man aber auch das Bild neu kodiert, würde das ja wahrscheinlich zu Qualitätsverlusten führen, oder? Oder gibt es empfehlenswerte Einstellungen dafür, falls es mit dem Flag nicht funktioniert?
 
CarlFredricksen schrieb:
Wenn man aber auch das Bild neu kodiert, würde das ja wahrscheinlich zu Qualitätsverlusten führen, oder?

Ja, leider. Ein erneutes Enkodieren bringt immer Qualitätsverlust mit sich, weil etwas schon Komprimiertes noch einmal komprimiert wird.

Wenn du Zugriff auf das Original (DVD, BD, UHD-BD) hast, solltest du mit dem Original neu enkodieren. Hast du keinen Zugriff darauf, mußt du in den sauren Apfel beißen und das nehmen, was du hast. Teste einfach mal, wie stark der Qualitätsverlust ausfällt. Zur Not auch mit CRF 0 probieren.
 
mkvtoolnix -> header editor -> default duration -> länge eines frames in ns:

1775130855593.png


-> 1 / 41666666 * 10^9 = 24 (fps)
 
Danke für eure Antworten. Ich bin gerade unterwegs, daher kann ich noch nichts ausprobieren. Vielleicht klappt das mit dem Flaggen ja doch. Ansonsten würde ich die Filme mal testweise neu enkodieren. Es handelt sich dabei übrigens um Aufnahmen aus arte.
Ich hatte vor ein paar Wochen mal eine Datei, die ich aus YouTube heruntergeladen hatte, neu enkodiert, da sie sich unbearbeitet nicht überall abspielen ließ. Ich hab dann die Parameter so eingestellt, dass es möglichst keinen sichtbaren Verlust gibt. Klappte auch. Aber die Datei war danach statt 1 GB 20 GB groß. Da waren meine Einstellungen wohl zu viel des Guten 😁
 
Warum willst Du überhaupt von 25fps nach 23.976fps wechseln? Das klingt nicht sonderlich vernünftig.
Ok, Du willst wirklich "Reverse PAL Speedup".

Neukodiert, sofern notwendig, wird nur die Tonspur. Der Film wird im Idealfall nur verlangsamt (ohne Rekompression).

Edit: Wobei die heutigen Formate/Container das u.U. nicht mehr so einfach unterstützen und man die Struktur der Bildspur dennoch neu erstellen/rekodieren muss (obwohl das technisch an sich nicht nötig wäre). Sicher bin ich mir da nicht. Edit: MKV hat da vermutlich "besonderes" Talent, bzw. kann dem Player das nochmal gesondert mitteilen.

Edit2: Hier wäre ein FFmpeg/mkvmerge Beispiel.
https://wiki.robotz.com/index.php/Compensate_for_PAL_Speedup_in_Digital_Video
ffmpeg -loglevel info -y -i "$file" -map 0 -c copy -c:a ac3 -filter:a aresample=resampler=soxr,asetrate=46033.92 -ar 48000 tmp.mkv
mkvmerge -o "$outfile" --default-duration 0:23.976fps tmp.mkv
 
Zuletzt bearbeitet:
Liegt das echt am Orbsmart und nicht am Monitor/TV?

Ein Video ~4% langsamer oder schneller abzuspielen ist nie eine elegante Lösung. Noch dazu die Transcodierung der Tonspur wegen Länge und Tonhöhe.

Wieso stellst du den Player nicht einfach fest auf 60FPS?
 
Ich würde mir da auch eher eine Echtzeitlösung suchen. Kodi sollte das können.
 
Das wäre gut. Auf meinem PC habe ich das mit reclock gemacht. Funktioniert toll.

Mit KODi kenne ich mich überhaupt nicht aus. Und noch weniger, wie das dann in dem Media-Player funktionieren könnte. Aber die Tonhöhe habe ich bei der Serie Die Straßen von San Francisco schon mal angepasst, da diese auf den BRs nicht immer gestimmt haben. Das hat sehr gut funktioniert.
 
CarlFredricksen schrieb:
Ich hatte vor ein paar Wochen mal eine Datei, die ich aus YouTube heruntergeladen hatte, neu enkodiert, da sie sich unbearbeitet nicht überall abspielen ließ. Ich hab dann die Parameter so eingestellt, dass es möglichst keinen sichtbaren Verlust gibt. Klappte auch. Aber die Datei war danach statt 1 GB 20 GB groß. Da waren meine Einstellungen wohl zu viel des Guten 😁

Du kannst mit dem Parameter CRF auch schrittweise nach oben gehen, bis du einen Unterschied in der Bildqualität erkennst. 0 ist die höchste Qualität, benötigt aber auch den meisten Speicherplatz. 51 ist die niedrigste Qualität, benötigt aber auch wenigsten Speicherplatz. Standardmäßig wird 23 verwendet, was einen Mittelweg darstellt.

Ggf. nennt das Programm, das du zur Bearbeitung verwendest, das ganze auch anders als FFmepg mit seinem CRF.
 
Ich habe heute gemerkt, dass ich mit dem Programm mkvtoolnix ja auch geirrt hatte 🤦🏻‍♂️ Ich habe natürlich mit avidemux die Tonhöhe abgesenkt. Danach die Datei durch Toolnix laufen lassen.
Man kann mit avidemux auch gleichzeitig die Tonspur strecken. Aber um das dann in ffmpeg oder so auch immer dann mit einem geflaggten Film zusammenzuführen, ist dann schon die ganze hohe Kunst. Wenn's überhaupt klappt.
Oder eben in avidemux auch das Bild verlangsamen und – wie du schreibst – mit der Qualität experimentieren.
 
Ich habe nun mit avidemux den Ton verlangsamt und tiefer rechnen lassen. Dann habe ich in mkvtoolnix die originale Videodatei und die Videodatei des gepitchten und verlangsamten Tons importiert. Von letzterer habe ich nur den Ton benutzt, bei der unveränderten Filmdatei habe Ich nur den Videostream benutzt. Diesen habe ich dann mit dem Befehl 25/23,976 verlangsamt. Es passte auch alles zusammen und bis zum Schluss blieben Bild und Ton synchron. Doch immer nach ca. einer halben Stunde begann der Film zu ruckeln.
Das liegt wahrscheinlich daran, dass der Videostream nicht 25 fps ist, sondern 50. Verlangsamt würden daraus 47,952. Die spielte der R82 zwar auch ab, kann aber nur 23,976, 24, 50, 59 und 60 Hertz gut. Bei meinem Stream streckte er dann die Flügel.
Natürlich könnte ich auch den Video-Stream neu kodieren lassen, aber das würde dauern, es ginge auf Kosten der Bildqualität usw. Daher begnüge ich mich nun damit, den Ton auf die richtige Höhe zu pitchen. Das da was nicht genau passt, fällt normalerweise nur bei bekannten Liedern auf, die dann 4,1 % schneller laufen.
Oder gibt es eine Möglichkeit, aus den 50 fps 25 zu machen (ohne Verlust) und dann alles zusammen zu muxen?
 
Zurück
Oben