Faceți căutări pe acest blog

luni, 27 februarie 2012

Ffpoth

 Un utilitar interesant pentru creat imagini cu miniaturi (thumbnails) luate la intervale regulate dintr-un fișier video, este ffpoth. Avem nevoie și de ffmpeg și imagemagick.

 Instalare:
- Arch: yaourt -S ffpoth
- alte distribuții: http://code.google.com/p/ffpoth/wiki/install

 Sintaxa comenzii e destul de simplă și intuitivă, toate opțiunile următoare sunt opționale, fără ele se iau în considerație valorile implicite:
 ffpoth -b timp -e timp n număr w lățime fișier-video | opțiuni montaj
-b = timpul peste care se va sări la începutul fișierului video; implicit e 0, valorile peste 1 sunt considerate secunde, iar valorile între 0 și 1 sunt interpretate ca find procente/ fracțiuni (0,5 = mijlocul fișierului video)
-e = timpul de la finalul fișierului peste care se va sări; implicit e 1, valorile peste 1 sunt secunde, valorile între 0 și 1 sunt procente/ fracțiuni
-n = numărul miniaturilor ce vor compune imaginea, implicit 20
-w = lățimea  miniaturilor, implicit 160, 0 se consideră lățimea originală; inălțimea va fi calculată automat păstrând raportul lățime- înălțime
 Deci comanda ar putea fi:
ffpoth fișier-video | opțiuni-montaj

 Opțiunile pentru montarea miniaturilor sunt utilitare aparținând pachetului imagemagick: montage, convert, composite, etc. Pentru a vedea toate aplicațiile cuprinse în suita imagemagick dați comanda (Arch Linux):
pacman -Ql imagemagick | grep bin   

 Manipularea imaginilor se poate face și folosind alte imagini, în cazul de față ffpoth doar extrage imagini din fișierul video și le micșorează, și în faza a doua unul din utilitarele suitei imagemagick le combină în forma dorită. Manualele acestor utilitare vă dau toate opțiunile utile.

 Autorul a avut amabilitatea să dea chiar și exemple practice aici: http://code.google.com/p/ffpoth/wiki/examples  tot ce trebuie să facem e să alegem forma/ geometria/ aranjamentul preferat și să înlocuim în comanda- exemplu numele fișierului video, numărul de cadre/ miniaturi (-n), dimensiunea acestora (-w), dimensiunea chenarului ce desparte miniaturile (-geometry +x+y), numărul coloanelor ce compun imaginea (-tile nx), calitatea imaginii/ compresia (- quality n), colțul în care să fie afișat textul dorit (-gravity ...) etc.

 Câteva rezultate:
 ffpoth ArchLinux.ogv  | montage - -geometry +1+1 -tile 4x -quality 100 arch.png


ffpoth -w300 -n12 ArchLinux.ogv  | montage - -geometry +1+1 -tile 3x -quality 100 arch1.png


 Pentru chestii mai complexe trebuie create funcții sau scripturi bash. După exemplul autorului putem crea un script bash (un fișier text) cu următorul conținut (am modificat puțin astfel încât să putem modifica numele sursei și rezultatului):
#!/bin/bash
Streams=$(ffmpeg -i $1 2>&1 | grep '^[[:blank:]]*Stream' | sed 's/^[^:]*.[^:]*..//;s/([^)]*.//g;s/ ,/,/g')
Text=$(echo -ne "File: $1\nSize: $(stat -c '%s' $1) bytes\n$Streams")
ffpoth -w120 -n20 $1 |
  convert - -gravity northeast -stroke '#000C' -strokewidth 2 -annotate 0 '%c' -stroke none -fill white -annotate 0 '%c' MIFF:- |
    montage - -geometry +1+1 -tile 4x MIFF:- |
      convert label:"$Text" - -append $2
 Facem fișierul executabil și dăm în consolă comanda:
./nume-script nume-fișier-video nume-imagine    (sau  sh nume-script nume-fișier nume-imagine )
 De exemplu:
./ffp ArchLinux.ogv  arch-test.png




Sursă: https://bbs.archlinux.org/viewtopic.php?id=133025

Niciun comentariu:

Trimiteți un comentariu

Back to top