1#!/bin/sh 2# example how to output video on multiple windows in sync. 3# might be even more useful in combination with vo ggi 4# to distribute the video arbitrarily 5 6dir=/tmp/$$ 7count=$1 8shift 9 10if test 0"$count" -lt 1; then 11 echo "At least 1 slave instance must be used." 12 echo "" 13 echo "Usage:" 14 echo "./mplmult.sh n mplayer-opts" 15 echo "n number of MPlayer instances that display the video" 16 echo "mplayer-opts anything you would specify to mplayer," 17 echo " more than one file will usually not work" 18 exit 1 19fi 20 21mkdir -m 700 $dir 22if test $? -ne 0; then 23 echo "Could not create temp dir!" 24 exit 1 25fi 26 27mkfifo $dir/stream.yuv 28i=1 29fifo_list="" 30while test $i -le $count; do 31 fifo_list="$dir/mp$i $fifo_list" 32 i=$(($i+1)) 33done 34 35mkfifo $fifo_list 36(cat $dir/stream.yuv | tee $fifo_list > /dev/null ) & 37for fifo in $fifo_list; do 38 # -benchmark is necessary so that it will not do any timing. 39 # the master instance already takes care of it and not specifying 40 # it will break A-V sync. 41 # -demuxer y4m is necessary because otherwise excessive probing 42 # (probably by # the lavf demuxer) causes a long delay. 43 mplayer -nocache -quiet -benchmark -demuxer y4m "$fifo" > /dev/null 2>&1 & 44done 45mplayer -nocache -fixed-vo -vo yuv4mpeg:file=$dir/stream.yuv "$@" 46 47rm -rf $dir 48