Tehnografija dana: FIFO-i
FIFO-i su “imenovane cevi” (named pipes), i znaju da budu korisni kad je korišćenje standardnih “cevi” (|) otežano ili nemoguće. To su uglavnom slučajevi kad procesi koji treba da komuniciraju, a nisu startovani iz istog shell-a.
Meni su zgodno poslužili kada sam se bakćao sa kompresijom DVDa u H.264 format, a pritom nisam imao mencoder kompajliran sa x264 podrškom (x264 je slobodna implementacija H.264 kodeka). Ovde ću to iskoristiti kao primer sa koga se vidi kako rade FIFO-i.
Prvo otvorite dva terminala. FIFO se pravi komandom mkfifo, recimo:
mkfifo fifo.tmp.yuv
Zatim u jednom od terminala treba pokrenuti program koji “osluškuje” taj fifo, u ovom slučaju to je x264:
x264 --bframes 3 --b-pyramid --ref 2 -B 900 -8 -w --no-psnr --no-ssim --progress --fps 25 -o out.mkv fifo.tmp.yuv 720x432
Posle toga (redosled je bitan), u drugom terminalu treba pokrenuti mencoder:
mencoder -vf format=i420,softskip,crop=720:432:0:72 -nosound -ovc raw -of rawvideo -ofps 25 -o fifo.tmp.yuv dvd://1
(ovde je mencoder podešen tako da cropuje crne trake oko filma, sve to prebacuje u nekompresovani raw format videa i prosleđuje izlaz na fifo.tmp.yuv; a x264 kao ulaz koristi fifo.tmp.yuv i kompresuje video)
Kasnije, fifo se može ukloniti, kao i svaki drugi fajl, komandom rm.
Napomena: ovo ne kompresuje zvuk, samo video, zvuk se lako može “izvući” iz DVDa sledećom komandom:
mplayer dvd://1 -aid 129 -dumpaudio -dumpfile sound.ac3
(gde je aid broj audio stream-a)

Još uvek bez komentara