Framerate ruiniert Bild-Ton Synchronität

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Framerate ruiniert Bild-Ton Synchronität

    Anzeige
    Hallo Leute,

    wir haben ein kleines Problem mit der Framerate (Glaube ich) bei Cathrine für die PS3. Das aufgenommene Material wird in Premiere Elements 10 mit 60 fps ausgezeichnet. Nun habe ich das Problem, dass der Ingameton nicht zum Bild passt. Hattet ihr auch solche Probleme? Was kann ich tun um das Problem zu lösen?

    Gruß,
    Harrow von Barojax

    UNSERE AKTUELLEN PROJEKTE - JEDEN TAG NEU:
    Dark Souls (15:00)
    Kingdom Hearts (15:30)
    Mirror's Edge (16:00)


  • Höchstwahrscheinlich nehmt ihr von der PS3 mit variabler Framerate auf (eine Mediainfo der Rohaufnahme könnte das bestätigen), was dann für Premiere ein enormes Problem darstellt. Das lässt sich leider auch nicht so einfach korrigieren, dazu müsstest du die Frameraten umwandeln.
  • Video
    ID : 1
    Format : AVC
    Format/Info : Advanced Video Codec
    Format-Profil : High@L4
    Format-Einstellungen für CABAC : Ja
    Format-Einstellungen für ReFrames : 3 frames
    Codec-ID : avc1
    Codec-ID/Info : Advanced Video Coding
    Dauer : 21min
    Bitrate : 7 809 Kbps
    Breite : 1 280 Pixel
    Höhe : 720 Pixel
    Bildseitenverhältnis : 16:9
    Modus der Bildwiederholungsrate : variabel
    Bildwiederholungsrate : 59,286 FPS
    originale Bildwiederholungsrate : 59,940 FPS
    minimale Bildwiederholungsrate : 0,248 FPS
    maximale Bildwiederholungsrate : 60,060 FPS
    Standard : Component
    ColorSpace : YUV
    ChromaSubsampling : 4:2:0
    BitDepth/String : 8 bits
    Scantyp : progressiv
    Bits/(Pixel*Frame) : 0.143
    Stream-Größe : 1,15 GiB (99%)
    Sprache : Englisch
    Kodierungs-Datum : UTC 2015-07-04 12:56:35
    Tagging-Datum : UTC 2015-07-04 12:56:35
    colour_range : Limited
    colour_primaries : BT.709
    transfer_characteristics : BT.709
    matrix_coefficients : BT.709

    Audio
    ID : 2
    Format : AAC
    Format/Info : Advanced Audio Codec
    Format-Profil : LC
    Codec-ID : 40
    Dauer : 21min
    Source_Duration/String : 21min
    Bitraten-Modus : konstant
    Bitrate : 10,2 Kbps
    nominale Bitrate : 99,3 Kbps
    Kanäle : 2 Kanäle
    Kanal-Positionen : Front: L R
    Samplingrate : 48,0 KHz
    Stream-Größe : 1,54 MiB (0%)
    Source_StreamSize/String : 15,0 MiB (1%)
    Sprache : Englisch
    Kodierungs-Datum : UTC 2015-07-04 12:56:35
    Tagging-Datum : UTC 2015-07-04 12:56:35
    mdhd_Duration : 1270171

    UNSERE AKTUELLEN PROJEKTE - JEDEN TAG NEU:
    Dark Souls (15:00)
    Kingdom Hearts (15:30)
    Mirror's Edge (16:00)


  • Anzeige

    Barojax // Harrow schrieb:

    Modus der Bildwiederholungsrate : variabel
    Bildwiederholungsrate : 59,286 FPS
    originale Bildwiederholungsrate : 59,940 FPS
    minimale Bildwiederholungsrate : 0,248 FPS
    maximale Bildwiederholungsrate : 60,060 FPS

    Jup, exakt da liegt das Problem. Schnittprogramme können mit einer variablen Framerate nur ganz schlecht umgehen, weil Timelines eben auf konstanter Framerate aufbauen. Das müsstest du vorher umwandeln, um es ordentlich schneiden zu können. @Sagaras erklärt dir sicher sehr ausführlich, wie das geht.
  • Barojax // Harrow schrieb:

    Bildwiederholungsrate : 59,286 FPS
    originale Bildwiederholungsrate : 59,940 FPS
    minimale Bildwiederholungsrate : 0,248 FPS
    maximale Bildwiederholungsrate : 60,060 FPS


    Original FPS mit der aufgenommen worden ist beträgt exakt 59,940 FPS.

    Und zwars nennt sich diese FPS Zahl "NTSC DOUBLE"
    Sie wird folgendermaßen exakt berechnet:
    60 / 1,001 = 59,940059‾

    Damit man aber keine Periode angibt, kann man FPS auch via Zähler und Nenner angeben mit Ganzzahligen Werten. 60000 / 1001
    Zähler: 60000
    Nenner: 1001
    (Merken, wenn du dir das zweite Bild anschaust dann.)

    Auf jedenfall ist das die FPS die dein Video eigentlich haben sollte, laut der Mediainfo.

    Leider wurde in Variabler Framerate (VFR) aufgenommen. Das heißt das die FPS innerhalb des Videos schwanken tut. Dafür hast du laut der Mediainfo den maximalsten Wert mit 60,060 FPS und den niedrigsten mit 0,248 FPS.

    Hmm... vllt hilft dieses Bild ja mal was man sich unter VFR vorstellen sollte:


    Oben sieht man eine Constant Framerate (CFR) und unten halt eine Variable Framerate (VFR)

    Wird eine VFR in ein CFR Programm geladen, so wird angenommen das die Frames der VFR eine konstante Länge haben. Was natürlic falsch ist. Daher wird dann das Video entweder länger oder kürzer als Ursprünglich. Je nach dem wie die Verteilung ausfällt und gedroppt wurde innerhalb der VFR.

    Deine kürzeste FPS beträgt 0,248 FPS. Das sind ungefähr 4 sek pro Frame (Standbild vllt.)
    Deine längste FPS beträgt 60,060 FPS. Das sind ungefähr 17ms pro Frame (Schnelle Drehbewegung im Video vllt.)


    Deine Aufgabe ist es jetzt die Lücken und die Framelängen wieder zu fixen indem du VFR -> CFR Konvertierst. Dabei können neue Frames erzeugt werden bzw. auch dezimiert werden. Halt so das sie dann eine Constante Framerate (CFR) haben (siehe Bild oberes Schema)

    Ein Tool das das kann ist AVISynth mit dem Plugin FFMS2, L-Smash, DSS oder DSS2.

    Eine GUI die soetwas integriert hat wäre der SSM unter der Option Sonstiges zu finden.



    Danach geht man auf Skript speichern und kann dann das Skript via VirtualDub, RadVideo, AVSPmod oder FFMpeg wieder in ein Video encodieren.

    Am besten wäre dann ein Lossless Codec zu verwenden wie UTVideo z.B.
    umezawa.dyndns.info/archive/utvideo/utvideo-15.2.0-win.exe

    Da dein Video und auch das in meinem Testvideo (siehe Bild oben) ein YUV420 Farbraum ist, reicht es absolut aus UTVideo 420 VCM als Encoder zu verwenden für das AVS Skript.

    Das Video sollte nun in CFR vorliegen.



    Extra:
    Wer wissen will welche Frames in welchen VFR liegen, der kann sich der FFMS2.avsi bedienen.
    Das ganze sieht dann folgendermaßen Skriptmäßig aus:

    Quellcode

    1. LoadPlugin("D:\MeGUI\Tools\FFMS2.dll")
    2. Import("D:\MeGUI\Tools\FFMS2.avsi")
    3. File = "L:\C\Temp\testaufnahme.MP4"
    4. FFIndex(file)
    5. FFVideoSource(file)
    6. FFInfo()


    Das ergibt dann folgende Ausgabe:


    Oben links sieht man nun wie weit die Frames auseinanderdriften. Sprich der Frame 1045 in meinem Beispiel hat in VFR die Zeitposition 43,102s, wärend es aber in CFR auf Zeitposition 41,874s wäre. Basierend darauf das es genau 2224 Frames gesammt besitzt.

    Lasse ich es aber nun von FFMS2 in CFR wandeln, so habe ich folgendes Bild:



    Es wurde nun auf exakt 25 FPS gebracht. Jeder Frame ist nun Zeitlich gleich lang. Und die Framemenge hat sich laut dem Bild sogar vermehrt auf 2228 Frames insgesammt. Sprich es wurden 4 Frames hinzugefügt um entweder gedropte Frames zu füllen oder um kürzere bzw. längere Frames der VFR Zeitlich auszubügeln.
    Der Frame 1045 in meinem Bild ist jetzt nicht der gleiche Frame wie oben. Weil dann würde ich ja auf 41,874s sein und nicht auf 41,800s ^^

    Sprich es wurde irgendwo Frames davor noch gesetzt. Mein Tatsächlicher gesuchter identischer Frame liegt nun bei 1047. Sprich es wurden davor 2 Frames eingefügt. Damit komme ich nun auf 41,920s für meinen identischen Frame. Bedeutet aber auch das zuvor irgendwo eine relativ geringe Lücke war.
  • Sagaras schrieb:

    Danach geht man auf Skript speichern und kann dann das Skript via VirtualDub, RadVideo, AVSPmod oder FFMpeg wieder in ein Video encodieren.

    Am besten wäre dann ein Lossless Codec zu verwenden wie UTVideo z.B.
    umezawa.dyndns.info/archive/utvideo/utvideo-15.2.0-win.exe

    Da dein Video und auch das in meinem Testvideo (siehe Bild oben) ein YUV420 Farbraum ist, reicht es absolut aus UTVideo 420 VCM als Encoder zu verwenden für das AVS Skript.

    Das Video sollte nun in CFR vorliegen.


    Ehrlich gesagt raffe ich diesen Teil noch gar nicht. Wie encode ich genau das Skript zum Video ? Ich bekomme bei RadVideo nur so eine Bink und Smacker Datei...

    UNSERE AKTUELLEN PROJEKTE - JEDEN TAG NEU:
    Dark Souls (15:00)
    Kingdom Hearts (15:30)
    Mirror's Edge (16:00)


  • Barojax // Harrow schrieb:

    Ehrlich gesagt raffe ich diesen Teil noch gar nicht. Wie encode ich genau das Skript zum Video ? Ich bekomme bei RadVideo nur so eine Bink und Smacker Datei...




    1. AVS Skript auswählen und auf "Convert a file" klicken

    2. Als "Output typ..." nimmste AVI und sagst das er Video und Audio konvertieren soll. Dann klickst du auf Convert

    3. Es folgt die Analyse des Files und die Abfrage mit welchen Videocodec du das Skript encodieren möchtest.

    PS: Egal ob du VirtualDub oder RADTools nutzt, AVISynth sollte auf deinem Rechner installiert sein, damit das Ganze funktioniert.

    Blöde Frage: wie genau encodiere ich denn das Skript mit AVSPmod ?


    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Sagaras ()

  • Sagaras schrieb:

    3. Es folgt die Analyse des Files und die Abfrage mit welchen Videocodec du das Skript encodieren möchtest.


    Aus irgendeinem Grund hat die .avi keinen Inhalt und ist 0 Bytes groß. Man ich bin wirklich schlecht in sowas ^^. Wo könnte der Fehler liegen?

    UNSERE AKTUELLEN PROJEKTE - JEDEN TAG NEU:
    Dark Souls (15:00)
    Kingdom Hearts (15:30)
    Mirror's Edge (16:00)


  • Barojax // Harrow schrieb:

    Aus irgendeinem Grund hat die .avi keinen Inhalt und ist 0 Bytes groß. Man ich bin wirklich schlecht in sowas ^^. Wo könnte der Fehler liegen?


    Sagaras schrieb:

    PS: Egal ob du VirtualDub oder RADTools nutzt, AVISynth sollte auf deinem Rechner installiert sein, damit das Ganze funktioniert.