[Gelöst] I-Frames aus Video extrahieren.

Sound, Digitalkameras, TV+Video und Spiele.
Antworten
Benutzeravatar
ottonormal
Beiträge: 3404
Registriert: 20.01.2014 22:25:29

[Gelöst] I-Frames aus Video extrahieren.

Beitrag von ottonormal » 11.09.2019 11:45:12

Hallo,

weiß jemand wie ich mit ffmpeg alle I-Frames aus einem Video als png/jpg extrahieren kann?
Alternativ ein Programm, das das kann?
Zuletzt geändert von ottonormal am 11.09.2019 18:53:39, insgesamt 1-mal geändert.

MaGe
Beiträge: 1717
Registriert: 01.06.2014 17:12:16

Re: I-Frames aus Video extrahieren.

Beitrag von MaGe » 11.09.2019 12:17:21

Testen:!
Dadurch werden alle i-Frames als PNG-Bilder im Verzeichnis test/ ausgegeben.

ffmpeg -i mein-Video -vf "select=eq(pict_type\,I)" -vsync vfr test/frame-%02d.png


gruss MaGe
Wir müssen uns vor der Klimaerwärmung nicht fürchten.
Uns rottet die soziale Kälte viel früher aus.

Benutzeravatar
ottonormal
Beiträge: 3404
Registriert: 20.01.2014 22:25:29

Re: I-Frames aus Video extrahieren.

Beitrag von ottonormal » 11.09.2019 12:18:14

Gerade im Netz gefunden:

Code: Alles auswählen

ffmpeg -i test.mkv -f image2 -vf "select='eq(pict_type,PICT_TYPE_I)'" -vsync vfr yi%03d.png
damit funktioniert es. Gibt es noch andere (bessere) Befehle?

Benutzeravatar
ottonormal
Beiträge: 3404
Registriert: 20.01.2014 22:25:29

Re: I-Frames aus Video extrahieren.

Beitrag von ottonormal » 11.09.2019 12:23:10

MaGe hat geschrieben: ↑ zum Beitrag ↑
11.09.2019 12:17:21
ffmpeg -i mein-Video -vf "select=eq(pict_type\,I)" -vsync vfr test/frame-%02d.png
Das funktionierte leider nicht. Trotzdem danke!

inne
Beiträge: 3281
Registriert: 29.06.2013 17:32:10
Lizenz eigener Beiträge: GNU General Public License
Kontaktdaten:

Re: I-Frames aus Video extrahieren.

Beitrag von inne » 11.09.2019 12:38:59

ottonormal hat geschrieben: ↑ zum Beitrag ↑
11.09.2019 12:18:14
Gerade im Netz gefunden: [...] damit funktioniert es. Gibt es noch andere (bessere) Befehle?
Woran willst Du im Ergebnis das besser festmachen, wenn du es messen willst?

Dieses ist aus dem FFmpeg Wiki:
https://trac.ffmpeg.org/wiki/FilteringGuide hat geschrieben:

Code: Alles auswählen

ffmpeg -i input -vf select='eq(pict_type\,I)' -vsync vfr output_%04d.png        # to select only I frames
Ansonsten siehe auch hier: https://ffmpeg.org/ffmpeg-filters.html

PS: Eine Verbesserung, aber ob Du das willst, wäre vlt. alle extrahierten Bilder als ein Mosaik zu bekommen?

Benutzeravatar
ottonormal
Beiträge: 3404
Registriert: 20.01.2014 22:25:29

Re: I-Frames aus Video extrahieren.

Beitrag von ottonormal » 11.09.2019 13:55:47

inne hat geschrieben: ↑ zum Beitrag ↑
11.09.2019 12:38:59
Dieses ist aus dem FFmpeg Wiki:
https://trac.ffmpeg.org/wiki/FilteringGuide hat geschrieben:

Code: Alles auswählen

ffmpeg -i input -vf select='eq(pict_type\,I)' -vsync vfr output_%04d.png        # to select only I frames
Ja, danke das funktioniert auch.
Ich habe nur das Problem, dass nicht wirklich ALLE I-Frames ausgegeben werden.
Der Fall ist der:
Ein E-Buch möchte ich zu einem PDF machen. Aber nicht einfach konvertieren, sondern es soll genau so aussehen, wie auf dem Desktop im Calibre-E-Buch-Leser.
Deshalb habe ich das auf dem Desktop einmal komplett von vorn bis hinten "durchgeblättert" und dabei mit "vokoscreen" ein Video davon erstellt. Das Video habe ich mit 12 Bildern/sek aufgenommen, jede Seite ca. 1 bis 2 Sekunden lang.
So sollte jede Seite mit einem I-Frame beginnen. Leider ist das aber anscheinend nicht so, weil einige Seiten fehlen.

Nun suche ich eine Möglichkeit, von jeder Seite ein Bildschirmfoto zu machen. Bei ca. 200 Seiten/Bildern ist das aber in der Praxis auch nicht so einfach. Oder es dauert eben sehr (zu) lange.
Lässt sich so etwas nicht irgendwie automatisieren?

Benutzeravatar
ottonormal
Beiträge: 3404
Registriert: 20.01.2014 22:25:29

Re: I-Frames aus Video extrahieren.

Beitrag von ottonormal » 11.09.2019 18:50:22

Jetzt ist alles i.O.
Ich habe noch mal alles neu gemacht. Bei der Vokoscreen-Aufnahme jetzt nur alle 3 Sekunden weitergeblättert. Nun fehlen keine I-Frames mehr. Ich war vorher wohl manchmal etwas zu schnell. :wink:

Antworten