Jak zrobić zrzuty ekranu z pliku filmowego w Linuksie

Temat minia­tur­kowy stałym czytel­ni­kom jest już zapewne aż za bardzo znany :-) Dzisiaj trochę od innej strony. Inte­re­so­wa­łoby was zrobie­nie czegoś takiego z (prak­tycz­nie) dowol­nego pliku filmowego?

Tego typu zrzuty ekranu (scre­en­shoty, scre­eny) najczę­ściej mają zasto­so­wa­nie do oceny jako­ści pliku filmo­wego. Oczy­wi­ście pod warun­kiem, że ktoś nie bawi się w jakieś nadmierne skalo­wa­nie czy kompre­so­wa­nie obrazka. W takim przy­padku nawet film dobrej jako­ści wygląda zawsze źle :-)

Jeżeli ktoś jest zain­te­re­so­wany filmi­kiem, z którego wyko­na­łem zrzuty powy­żej — odsy­łam do źródła.

Jak wyko­nać takie zrzuty klatek z filmu? Użyt­kow­nicy syste­mów Windows mają zada­nie (jak zwykle) ułatwione. Insta­lują sobie Media Player Clas­sic i po otwar­ciu filmu wybie­rają menu File -> Save Thumb­na­ils i tyle… Jeżeli komuś mało, to istnieje nawet dedy­ko­wany progra­mik do tego typu dzia­łań: Image Grab­ber.

W Linuk­sie różnego rodzaju skrypty zazwy­czaj wyko­rzy­stują biblio­teki Image­Ma­gick plus ffmpeg. Spośród testo­wa­nych przeze mnie najle­piej spra­wo­wał się skrypt nazwany Video Contact Sheet *NIX (Karta Konk­tak­towa Wideo(?))

Jeżeli chodzi o użyt­kow­ni­ków dystry­bu­cji „debia­no­po­chod­nych” (m.in. Ubuntu), to mam dla nich dobrą wiado­mość. Autor zrobił paczkę deb skryptu. Wystar­czy instal­nąć i… używać!

Jak używać? Poni­żej szybki kurs:

Podsta­wo­wym pole­ce­niem jest wpisa­nie w terminalu

vcs nazwapliku.coś

Skrypt domyśl­nie wyge­ne­ruje w ukła­dzie dwuko­lum­no­wym zrzuty ekranu co 5 min. Jak łatwo poli­czyć, z prze­cięt­nego 100 min. filmu otrzy­mamy 20 zrzu­tów, każdy w rozmia­rze orygi­nal­nym, w pliku png (wiel­kość ok. 4 MB).

Autor skryptu zadbał o to, abyśmy mieli możli­wość dosto­so­wa­nia do własnych potrzeb. Poni­żej podaję najczę­ściej wyko­rzy­sty­wane parametry:

  • –n — ile ma być zrobio­nych zrzu­tów klatek z filmu (skrypt ładnie sobie wyli­cza klatki nawet bardzo krót­kiego filmu), np. –n 12
  • –i — poda­jemy czas, co jaki ma być zrobiony zrzut klatki, np. –i 2m30s (poda­wa­nie naraz para­me­trów –n i –i jest bez sensu — sprzeczne argumenty)
  • –c — z ilu kolumn ma się skła­dać nasza karta zrzu­tów (cyferkę należy poda­wać bez spacji!), np. –c4
  • –H — usta­lamy w pikse­lach wyso­kość poszcze­gól­nych klatek (funk­cja nie zawsze działa), np. –H 240
  • –j — wpisa­nie tego para­me­tru wymu­sza stwo­rze­nie pliku wyni­ko­wego w forma­cie jpg (trochę skom­pre­so­wa­nego, ale za to mniej zajmu­ją­cego miej­sca na dysku).

Wpisa­nie

vcs –n 15 –H 120 –j wojna_zapalek.flv

stwo­rzy nam nastę­pu­jącą kartę zrzu­tów (nic nie majstro­wa­łem z rozdzielczościami/kompresjami itp.):

Jak widać powy­żej, zrobie­nie zbyt wąskiego obrazka popsuje nam nagłówek.

Upięk­sza­nie karty zrzutów

Dodat­kowo można użyć para­me­trów „upięk­sza­ją­cych” (wg mnie dezin­for­mu­ją­cych) –ki tworzy na brze­gach zrzu­tów imita­cje taśmy filmo­wej, doda­nie –kr obraca klatki, –ko powo­duje „najeż­dża­nie” na siebie klatek (nie zawsze działa).

Kilka hacków ^^

W kata­logu, z którego będziemy odpa­lać vcs tworzymy plik tekstowy vcs.conf. Wpisu­jemy w nim (nieko­niecz­nie wszystko)

user=Wiertarka
output_format=jpg
pts_tstamps=10

Pierw­szy para­metr zmie­nia nam nazwę użyt­kow­nika (w stopce) na Wier­tarka, drugi wymu­sza format jpg (nie trzeba wpisy­wać –j za każdym razem), trzeci zmniej­sza wiel­kość tzw. time­stamp (w pikse­lach), czyli infor­ma­cji o czasie filmu, z którego wyko­nano zrzut (można podać 0 i pozo­staje tylko mała kropka).

Podobne wpisy:

  1. Jak zrobić animo­wa­nego gifa z frag­mentu filmu
  2. Times New Roman, Arial, Verdana i in. w Linuksie
  3. Gry na emula­to­rze MAME w Linuksie
  4. Gnome Nauti­lus i minia­turki (Cz. 2 z 3)

One comment

  • 20 maja 2008 - 07:57 | Permalink

    Zawsze się zasta­na­wia­łem jak ludki robią takie scre­eny. Fajnie, że to opisa­łeś bo ostat­nio nie chce mi się googlować ^^

  • Dodaj komentarz

    Twój adres e-mail nie zostanie opublikowany.

    Możesz użyć następujących tagów oraz atrybutów HTML-a: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <p> <pre lang="" line="" escaped=""> <q cite=""> <strike> <strong>