#!/usr/bin/env bash mkfifo video.rgb24 mkfifo depth.rgb24 mkfifo video.mjpg mkfifo depth.mjpg pids=() ./freenect-server--kinect -v video.rgb24 -d depth.rgb24 & pids+=($!) ./freenect-server--http 8090 video.mjpg depth.mjpg & pids+=($!) ffmpeg -pix_fmt rgb24 -s 640x480 -f rawvideo -i video.rgb24 -f mpjpeg - > video.mjpg & pids+=($!) ffmpeg -pix_fmt rgb24 -s 640x480 -f rawvideo -i depth.rgb24 -f mpjpeg - > depth.mjpg & pids+=($!) cleanup() { kill -- "${pids[@]}" rm -f {video,depth}.{rgb24,mjpg} } trap cleanup EXIT wait