101 lines
3 KiB
Bash
Executable file
101 lines
3 KiB
Bash
Executable file
#!/bin/bash
|
|
FOLDER=$1
|
|
SPEED=$1
|
|
LABEL=$1
|
|
|
|
MBIT="$SPEED stream"
|
|
T="pngcairo size 1000,600 enhanced font \"LiberationSerif,20\""
|
|
EXT=png
|
|
#T="pdfcairo"
|
|
#EXT=pdf
|
|
|
|
function runplot {
|
|
for R in `seq -w 0 100`; do
|
|
FLDS=( $1 )
|
|
NAMS=( $2 )
|
|
|
|
FN=`ls ${FLDS[0]}/run${R}_*.times 2> /dev/null`
|
|
if [ -z $FN ] ; then
|
|
return
|
|
fi
|
|
FILE=`basename $FN`
|
|
|
|
FN=`ls ${FLDS[0]}/run${R}_*.times 2> /dev/null`
|
|
TIMES=`basename $FN`
|
|
VIEWERS=`echo $FILE | cut -d '_' -f 2`
|
|
TECH=`echo $FILE | cut -d '_' -f 3`
|
|
SECS=`echo $FILE | cut -d '.' -f 1 | cut -d '_' -f 4`
|
|
TIME=$(( $SECS / 60 ))m
|
|
|
|
FILES=()
|
|
TIME_FN=()
|
|
|
|
for i in `seq $(( ${#FLDS[@]} - 1 )) -1 0`; do
|
|
FN=`ls ${FLDS[$i]}/run${R}_*.times 2> /dev/null`
|
|
if [ -z $FN ] ; then
|
|
return
|
|
fi
|
|
FILES[$i]="${FLDS[$i]}/`basename $FN`"
|
|
FN=`ls ${FLDS[$i]}/run${R}_*.times 2> /dev/null`
|
|
TIME_FN[$i]="${FLDS[$i]}/`basename $FN`"
|
|
done
|
|
|
|
if [ -n "$3" ] ; then
|
|
COMMON_DATA="${TIME}, ${MBIT}, ${VIEWERS} $3"
|
|
CFN="$3_${VIEWERS}_${TIME}"
|
|
COMMON_FILENAME=${CFN,,}
|
|
else
|
|
COMMON_DATA="${TIME}, ${MBIT}, ${VIEWERS} ${TECH}"
|
|
COMMON_FILENAME="${TECH}_${VIEWERS}_${TIME}"
|
|
fi
|
|
|
|
PLOT5=""
|
|
for i in `seq $(( ${#FLDS[@]} - 1 )) -1 0`; do
|
|
if [ -n "${PLOT5}" ] ; then
|
|
PLOT5="${PLOT5}, "
|
|
fi
|
|
sort --field-separator=',' --key=4g < "${TIME_FN[$i]}" > "${TIME_FN[$i]}_sorted"
|
|
VC=`cut -f 4 -d ',' < "${TIME_FN[$i]}" | awk "(int(\\\$1) >= ${SECS}000-5000) {sum++} END{print sum}"`
|
|
SC=`cut -f 4 -d ',' < "${TIME_FN[$i]}" | awk "(int(\\\$1) >= ${SECS}000-30000) {sum++} END{print sum}"`
|
|
#and buffer times. Smoothing makes no sense here. Don't.
|
|
PLOT5="${PLOT5}'${TIME_FN[$i]}_sorted' using (\$4-${SECS}000)/1000 with linespoints lw 1 title '${NAMS[$i]} (${VC}, ${SC})'"
|
|
done
|
|
|
|
gnuplot << EOF
|
|
set terminal ${T}
|
|
set datafile separator ","
|
|
set key on under center
|
|
|
|
#set style fill solid 0.25 border -1
|
|
#set style boxplot outliers pointtype 7
|
|
#set style data boxplot
|
|
#set boxwidth 0.5
|
|
set pointsize 0.2
|
|
set arrow from 0,-5 to ${VIEWERS}-1,-5 nohead
|
|
|
|
set title "Available buffer time, ${COMMON_DATA} clients"
|
|
set output '${COMMON_FILENAME}_buffers.${EXT}'
|
|
set format y "%gs"
|
|
set ylabel "Buffer size (above line = success)"
|
|
set xlabel "Each point represents a single connection"
|
|
unset xtics
|
|
plot ${PLOT5}
|
|
|
|
|
|
EOF
|
|
|
|
for i in `seq $(( ${#FLDS[@]} - 1 )) -1 0`; do
|
|
rm -f "${FLDS[$i]}/${TIMES}_sorted"
|
|
done
|
|
done
|
|
}
|
|
|
|
#runplot "adobe_rtmp nginx_rtmp wowza_rtmp mist_rtmp flus_rtmp" "Adobe Nginx Wowza MistServer Flussonic"
|
|
|
|
runplot "$LABEL" "$FOLDER" "$SPEED"
|
|
|
|
#runplot "wowza_dash mist_dash wowza_dash_new mist_dash_new mist_dash3" "Wowza Mist WowNew MistNew MistNewer"
|
|
#runplot "mist_dash mist_dash_new mist_dash3" "Old New Newer" "MistDash"
|
|
#runplot "wowza_hls_new flus_hls_new mist_hls_new mist_hls5" "Wowza Flus Mist MistNew"
|
|
#runplot "adobe_rtmp nginx_rtmp wowza_rtmp mist_rtmp flus_rtmp mist_rtmp5" "Adobe Nginx Wowza MistServer Flussonic MistNew"
|
|
|