GNU parallelコマンドで並列実行する - Bye Bye Moore
でやったGNU parallelで早くなるかと思い実験
実際のところ
$ time (fswebcam -d /dev/video0 -r 640x480 -F 2 -S 4 image_0.png; fswebcam -d /dev/vide o2 -r 640x480 -F 2 -S 4 image_2.png; fswebcam -d /dev/video4 -r 640x480 -F 2 -S 4 image_4.png; fswebcam -d /dev/video8 -r 640x480 -F 2 -S 4 image_8.png;) --- Opening /dev/video0... … --- Processing captured image... Writing JPEG image to 'image_8.png'. real 0m4.430s user 0m0.317s sys 0m0.098s
お待ちかねのGNU Prallel版。
区切りは改行でやってるので、デバイス番号は手打ち……。
$ time (printf "0\n2\n4\n8\n" | parallel fswebcam -d /dev/video{} -r 640x480 -F 2 -S 4 image_{}.png) --- Opening /dev/video0... ... --- Processing captured image... Writing JPEG image to 'image_4.png'. real 0m1.684s user 0m0.502s sys 0m0.230s