FFmpeg - Video in Einzelbilder zerlegen - Script Erweiterung gesucht: alle 25 Frames 1 Bild ausgeben ?

  • Hallo Zusammen :-)


    Man wie die Zeit vergeht!

    Muss mich erstmal an das neue Foren Design gewöhnen.

    Sorry, das ich so lange nicht mehr hier reingeschaut habe.

    Hallo LigH - hoffe dir gehts gut?

    Gruß auch an Gubel, Stax76, Brother John, Selur, Tom Keller,

    Goldwingfahrer (Werde dich nie vergessen, hoffe dir gehts gut im Himmel)

    und alle die ich vergessen habe aufzuzählen...




    Zurück zum Thema...

    Möchte gerne ein Video in Einzelbilder mit FFmpeg zerlegen,

    so das alle 25 Frames (in meinem Fall) 1 Bild ausgegeben wird.

    Das geht sehr gut mit folgenden FFmpeg Befehl:



    Code
    1. ffmpeg -i S4390007.MP4 -vf "select=eq(pict_type\,I)" -vsync vfr S4390007-%%04d.jpg


    Nun suche ich einen Zusatzbefehl,

    damit in der Dateiaufzählung noch die Frame Nummern exakt mit aufgezählt / ausgegeben werden...


    So sieht es aktuell aus:

    150276.png


    S4390007-0001.jpg = Das ist Frame Nummer: 0

    S4390007-0002.jpg = Das ist Frame Nummer: 25

    S4390007-0003.jpg = Das ist Frame Nummer: 50

    S4390007-0004.jpg = Das ist Frame Nummer: 75

    S4390007-0005.jpg = Das ist Frame Nummer: 100

    usw...


    so wünsche ich mir die Datei Ausgabe:


    S4390007-0001-Fame0.jpg

    S4390007-0002-Fame25.jpg

    S4390007-0003-Fame50.jpg

    S4390007-0004-Fame75.jpg

    S4390007-0005-Fame100.jpg


    Wer kann mir hier weiter helfen?

  • In der ffmpeg-Dokumentation steht nur was von laufenden Nummern. Platzhalter mit Bedeutungen werden da nicht erwähnt, soweit ich sehe. Ich versuche noch im IRC zu fragen, bisher antwortet da aber noch keiner.


    Bei dir sieht es so aus, als ob du die I-Frames exportierst. Die müssen natürlich nicht immer den gleichen Abstand haben, je nach Einstellungen des Encoders.

  • LigH Hast du im IRC mittlerweile schon was rausfinden können?


    Ne es sind tatsächlich Keyframes.

    Hab das Video unter VirtualDub2 (former VirtualDub FilterMod) geladen.

    Vergleiche damit die entpackten Einzeibilder aus dem Video

    und bekomme mit der Keyframe > Taste in 25 Schritten die gezeigten Einzelbilder:


    S4390007-0001.jpg = Das ist Frame Nummer: 0

    S4390007-0002.jpg = Das ist Frame Nummer: 25

    S4390007-0003.jpg = Das ist Frame Nummer: 50

    S4390007-0004.jpg = Das ist Frame Nummer: 75

    S4390007-0005.jpg = Das ist Frame Nummer: 100

    usw...


    687764.png


    646757.png


    406296.png


    703187.png

  • Könntest du mal nach fragen ob sie die Funktion mit Einbauen könnten?

    Statt der Ausgabe in Bilder Nummern würde es auch reichen,
    das nur die Frame Nummern zu den entpacken Bildern exakt in den Dateinamen mit ausgegeben werden.


    Beides wäre natürlich schöner :-)

    Beispiel: S4390007.mp4-0002-Fame25.jpg


    Wenn ich jetzt z.B. eine gewünschte Scene im Video suchen möchte,

    dann müsste ich in meinem oben genannten Beispiel folgendermaßen vorgehen...


    Als Beispiel möchte ich jetzt wissen welcher Frame = S4390007-0044.jpg "ist"

    Rechnung: 44x25-25 = 1075

    Frame Nr. 1075 entspricht Bild Nr. S4390007-0044.jpg

  • Die Antwort auf meine vorherige Frage war ein definitives "No". Ich gehe nicht davon aus, dass jemand daran Interesse hat, denn das wäre auch kein triviales Thema. Das könnte Monate kosten, solche Funktionalität mit allen anderen bereits existierenden Funktionen abzustimmen.

  • Man kann durchaus sich zunächst das 25., danach das 50., schließlich das 75. usw. Bild exportieren lassen.


    Dazu müsste aber jedes Mal ffmpeg starten, zum jeweiligen einen Zielbild hin decodieren, und dann wieder beendet werden. Ratter, Ratter...


    Insgesamt ist mir der Zweck und Nutzen dieses Vorhabens auch noch unklar. Das machst du denn danach mit jedem 25. Bild bzw. mit jedem I-Frame?