Ffmpeg-Ausgabe-Screenshot-Galerie

7

Weiß jemand, ob ffmpeg so etwas wie Video-Thumbnails erstellen kann? Ich habe dieses Bild aus dem VLC-Forum genommen

Ich weiß, dass Totem dies kann, aber Totem unterstützt das von mir verwendete Videoformat nicht

Danke im Voraus

Sie können diesen Artikel auch sehen

Levan
quelle
die Suche nach FFMpegThumbsdem im Standard - Ubuntu - Repository
thom
Vielen Dank für die Antwort, aber ich glaube nicht, dass es das tut, was ich möchte. Ich möchte ein Bild aus einem Video ausgeben. und die Beschreibung dieser Software sagt nicht, dass es das tut
Levan
Aha ... also willst du keine Thumbnails (wie du gefragt hast), sondern komplette Standbilder?
thom
Sie sehen das Bild, das ich aus VLC-Foren aufgenommen habe. Das ist es, was ich möchte, um ein Video in ein solches Bild zu verwandeln.
Levan

Antworten:

6

Erstellen Sie ein Mosaik mit Screenshots aus einem Film mit ffmpeg

Erstellen Sie ein Mosaik aus Screenshots

Wenn Sie etwas älteres als Ubuntu 15.04 verwenden, ffmpegbezieht sich das sogenannte " " -Paket aus dem Repository auf eine gefälschte Version aus der Libav-Gabel, die nicht über die von Ihnen benötigte Funktionalität verfügt. Sie müssen daher einen statischen Build von herunterladenffmpeg oder befolgen Sie zum Kompilierenffmpeg eine Schritt-für-Schritt-Anleitung .

Beispiel Befehl select, scaleund tileFilter:

./ffmpeg -i input -vf "select=gt(scene\,0.4),scale=160:-1,tile" -frames:v 1 \
-qscale:v 3 preview.jpg

In diesem Beispiel ist die Ausgabe 960x450. Sie können einen zusätzlichen Skalierungsfilter hinzufügen, wenn Sie dies ändern möchten, oder Sie können die Größe jeder Kachel ändern. Beispiel für eine 600 Pixel breite Ausgabe:

./ffmpeg -i input -vf "select=gt(scene\,0.4),scale=160:-1,tile,scale=600:-1" \
-frames:v 1 -qscale:v 3 preview.jpg

Sie können der Ausgabe sogar Text hinzufügen. In diesem Beispiel werden oben im Bild 24 Pixel schwarze Polsterung hinzugefügt und in der Mitte der Polsterung der Text "Iron Man" hinzugefügt.

./ffmpeg -i input -vf "select=gt(scene\,0.4), \
  scale=160:-1, \
  tile, \
  scale=600:-1, \
  pad=iw:ih+24, \
  drawtext=fontsize=30:box=1:fontfile=/usr/share/fonts/TTF/Vera.ttf:text='Iron Man':x=(w-text_w)/2:0"
  -frames:v 1 -qscale:v 3 preview.jpg

Andere Sachen

  • Sie können die Ausgabequalität mit steuern -qscale:v. Der effektive Bereich ist eine lineare Skala von 2-31; wo 2 ist beste Qualität.

  • Weitere Informationen finden Sie in der selectFilterdokumentation .

llogan
quelle
Die Ausgabedatei ist leer, es wurde nichts codiert (überprüfen Sie die Parameter -ss / -t / -frames, falls verwendet)
evandrix
@evandrix Hat für mich gearbeitet. Sie können eine Pastebin-Site verwenden, um Ihren Befehl und das vollständige Protokoll anzuzeigen und hier einen Link bereitzustellen.
Llogan
Das Problem bei diesem Ansatz ist, dass er sehr langsam ist. Es ist besser, ffmpeg einige Male auszuführen, um einen Frame zu suchen und in ein Bild umzuwandeln, und diese Bilder dann zu kacheln.
Ondra Žižka
@ OndraŽižka wie kann ich so etwas machen kannst du ein Beispiel geben?
Phani Rithvij