#!/bin/bash function usage() { echo "Usage: vncrecord rec [server] " echo " vncrecord conv [quality] " echo "First record to .fbs file; default server is ipeps. Ctrl-C when done. " echo "Then convert the saved .fbs file to e.g. MPEG-4. Quality is ffmpeg's " echo "-qscale; default is 5, smaller is better quality, range is 2 to 31." exit 1 } function record() { case $# in 1) SRV=ipeps:0 ; OUT=$1 ;; 2) SRV=$1 ; OUT=$2 ;; *) usage ;; esac rfbproxy --server="${SRV}" -rs "${OUT}" } function convert() { case $# in 2) Q=5; IN=$1; OUT=$2 ;; 3) Q=$1; IN=$2; OUT=$3 ;; *) usage ;; esac rfbproxy -x "${IN}" | ppmtoy4m -S 420jpeg | ffmpeg -f yuv4mpegpipe -i - -qscale $Q -y "${OUT}" } case $# in 0) usage ;; *) ;; esac OP=$1 shift case "${OP}" in "rec") record $* ;; "conv") convert $* ;; *) usage ;; esac