staging.inyokaproject.org

ffmpegthumbnailer: mehrere und größere Bilder

Status: Ungelöst | Ubuntu-Version: Ubuntu 19.10 (Eoan Ermine)
Antworten |

caiusjuliuscaesar

Anmeldungsdatum:
20. Januar 2009

Beiträge: 302

Hallo,

gibt es eine Möglichkeit, dem ffmpegthumbnailer beizubringen, aus den Videos größere Thumbs und vielleicht mehrere Thumbs in einem jpg zu extrahieren?

Ich habe das nicht gefunden. Ggf ein konsolbasiertes Alternativprogramm?

Gruß und danke CJC

Dakuan

Avatar von Dakuan

Anmeldungsdatum:
2. November 2004

Beiträge: 6234

Was auch immer du vorhast, das wird nicht so einfach gehen.

  1. Alle Thumbnails sind im .png Format

  2. Alle Thumbnails sind in eine 128x128 px große Box eingepasst

  3. Die Namen der Thumbnails ergeben sich aus der MD5 Summe des URL kodierten Pfades zur Datei (+file:// Präfix).

Du wirst dich also schwer damit tun, die richtigen Thumbs wieder zu finden, zumal die Verzeichnisse recht groß werden können. Hier mal ein Beispiel:

     0: /home/dakuan/.thumbnails
   167: /home/dakuan/.thumbnails/normal
     0: /home/dakuan/.cache/thumbnails
     0: /home/dakuan/.cache/thumbnails/fail
     3: /home/dakuan/.cache/thumbnails/fail/gnome-thumbnail-factory
    20: /home/dakuan/.cache/thumbnails/fail/mate-thumbnail-factory
  9478: /home/dakuan/.cache/thumbnails/normal

Die Thumbs von ffmpeg sollten sich im Verzeichnis der letzten Zeile wiederfinden. Ich benutze hauptsächlich VLC und mpv. Bei VLC kann man während der Wiedergabe Schnappschüsse machen. Ich glaube das geht auch bei angehaltener Wiedergabe.

Die so erhaltenen Einzelbilder kannst Du dann mit feh kombinieren. Das geht etwa so:

feh -i -y100 -E100 -W600 -oOutput.jpg thumb*.jpg
  • -i steht für Index Mode

  • -y & -E ist die gewünschte Größe

  • -W ist die Breite des Ausgabebildes

  • -o Name der Ausgabedatei

  • thunmb*.jpg das Namensnuster der Eingabedateien oder eine Liste der gewünschten Dateien.

Ich denke was anderes wirst du nicht finden.

p.s. Dazu kommt noch, dass Thumbnails vom System nach 6 Monaten wieder gelöscht werden.

coram

Anmeldungsdatum:
17. Januar 2015

Beiträge: 643

Ich hatte mir mal mit FFmpeg etwas gebastelt, um zwölf Thumbnails eines Films zu einem 3x4-Tableau zusammenzufassen:

ffmpeg -i input.mp4 -vf 'select=not(mod(n\,500)),scale=240:135,tile=3x4' -frames:v 1 output.png

Von jedem 500. Frame wird ein Thumbnail der Größe 240x135 Pixel aufgenommen. Die (ersten zwölf) Thumbnails werden zu einem "gekachelten" Bild mit 3 Spalten und 4 Reihen zusammengesetzt. Je nach Filmauflösung und Filmlänge muss der Befehl ggf. angepasst werden, um ein brauchbares Ergebnis zu erhalten; da heißt es also experimentieren. 😉

caiusjuliuscaesar

(Themenstarter)

Anmeldungsdatum:
20. Januar 2009

Beiträge: 302

Sehr gut. Vielen Dank. Das letzte Kommando funktioniert bei mir, aber nicht, wenn ich es in einen find-Prozeß einbinde:

ffmpeg -i input.mp4 -vf 'select=not(mod(n\,500)),scale=240:135,tile=3x4' -frames:v 1 output.png

und zwar wie folgt:

1
find "$Basis" -type f \(  -iname '*.mp4' -or -iname "*.m4v"  \)  -exec   ffmpegthumbnailer  -i {} -vf 'select=not(mod(n\,500)),scale=240:135,tile=3x4' -frames:v 1 -o $(basename {} ).png \;

Ich vermute, daß ich in dem Teil

1
... 'select=not(mod(n\,500)),scale=240:135,tile=3x4' 

die Hochkommata ' maskieren muß, aber wie?

Außerdem würde ich gerne jpg-Dateien bekommen. Kann ich noch ein convert von jpg nach png einbinden?

Gruß und danke,

CJC

Dakuan

Avatar von Dakuan

Anmeldungsdatum:
2. November 2004

Beiträge: 6234

Ich habe die Originalversion auch mal ausprobiert, geht prima. Kommt in meine Tool-Sammlung.

Kann ich noch ein convert von jpg nach png einbinden?

Ich habe einfach mal .png gegen .jpg getauscht. Ging auch.

BTW, was mich überrascht hat war, das abei eine ganz normale .jpg Datei entstanden ist. Wenn ich z.B. ffmpeg benutze um .webp Dateien in JPG zu konvertieren, konnten viele Programme die JPG nicht anzeigen. Da fehlte am Dateianfang immer der APP0-Marker. Das musste ich dann immer mit jhead reparieren.

Nachtrag: Das erste Bild ist fast immer schwarz. Kann man da noch eine Verzögerung einbauen? In der etwas länglichen Onlinedoku konnte ich dazu noch nichts finden.

coram

Anmeldungsdatum:
17. Januar 2015

Beiträge: 643

caiusjuliuscaesar schrieb:

Außerdem würde ich gerne jpg-Dateien bekommen. Kann ich noch ein convert von jpg nach png einbinden?

Wie Dakuan bereits bemerkt hat, funktioniert der ffmpeg-Befehl auch direkt mit jpg statt png. Bei mir wird dann zwar eine gelb eingefärbte Meldung von wegen "deprecated pixel format used" ausgeworfen, aber das tut dem gelungenen Ergebnis keinen Abbruch.

Bei der Einbindung in den find-Befehl kann ich leider nicht helfen, da ich "find" nur selten verwende und zu wenig Erfahrung damit habe.

Dakuan schrieb:

Nachtrag: Das erste Bild ist fast immer schwarz. Kann man da noch eine Verzögerung einbauen? In der etwas länglichen Onlinedoku konnte ich dazu noch nichts finden.

Versuche mal die ffmpeg-Option "-ss n" für eine Verzögerung von n Sekunden (n = passende ganze Zahl oder Dezimalzahl). Für 1.5 Sekunden sähe das so beispielsweise so aus:

ffmpeg -ss 1.5 -i input.mp4 -vf 'select=not(mod(n\,500)),scale=240:135,tile=3x4' -frames:v 1 output.png

Dakuan

Avatar von Dakuan

Anmeldungsdatum:
2. November 2004

Beiträge: 6234

Danke, die -ss # Option hilft. Ich musste teilweise eine Verzögerung von 5 sec einstellen um den dunklen Vorspann zu überbrücken. Übrigens, auch GIF geht. Da könnte man auf die Idee kommen, animierte Gif's zu erstellen.

Zum Scriptproblem kann ich auch nicht viel sagen, da ich nicht verstanden habe, wie die gefundenen Dateien von find an ffmpeg weiter gereicht werden. Beim Quoting sehe ich erstmal nicht das Problem, da es ja in der Kommandozeile funktioniert.

caiusjuliuscaesar

(Themenstarter)

Anmeldungsdatum:
20. Januar 2009

Beiträge: 302

An alle: danke!

Antworten |