sala@home:~$

named pipe

A dvdauthor parancssoros használatát bemutató bejegyzésben szerepelt az alábbi kódrészlet:

tcextract -i mozi.vob -t vob -x mpeg2 > mozi.m2v
 tcextract -i mozi.vob -t vob -x ac3 > mozi.ac3 
 mplex -f 8 -o mozi.mpg mozi.m2v mozi.ac3

 Ha jobban megnézzük, akkor észrevehető, hogy

mozi.vob

fájlt kétszer olvassuk végig. Ez nyilván nem túl hatékony, a mostani bejegyzés célja egy olyan megoldás bemutatása, ahol elég egyszer végigolvasni a fájl. (Ha csak egyszer olvassuk végig, akkor nem is feltétlenül kell a DVD-ről a vob fájlt átmásolni a merevlemezre). Korábban már többször használtunk pipe-okat (csöveket), most is ezt fogjuk tenni, de a korábbi példákkal ellentétben most named pipe-okra ( másnéven FIFO, magyarul talán elnevezett vagy nevesített cső ) lesz szükségünk:

mkfifo aud.fifo
 mkfifo vid.fifo
 tcextract -i vid.fifo -t vob -x mpeg2 > mozi.m2v &
 tcextract -i aud.fifo -t vob -x ac3 > mozi.ac3 &
 cat mozi.vob | tee vid1.fifo aud1.fifo > /dev/null
 mplex -f 8 -o mozi.mpg mozi.m2v mozi.ac3
 rm aud.fifo vid.fifo

Először is létrehozunk 2 named pipe-ot az mkfifo paranccsal, és elindítjuk a háttérben ( & ) a két

tcextract

parancsot, ami az eredeti verzióval szemben nem a

mozi.vob

fájlt, hanem a csöveket olvassa. Adat is kell a csövekbe, ezért

cat

paranccsal olvassuk ki a vob fájlt, a tee segítségével pedig egyszerre öntjük bele a kiolvasott adatot a 2 csőbe. Az

mplex

parancs nem változott, a legvégén letöröljük a csöveket.