#!/bin/bash # C5: per-codec FPS at N=3 runs. Wall-time measurement, no output file written. set -u OUT=$HOME/measurements/p3 mkdir -p $OUT codecs=("h264:h264.mp4" "vp8:vp8.webm" "mpeg2:mpeg2.ts") for spec in "${codecs[@]}"; do codec=${spec%%:*}; ext=${spec#*:} cf=$HOME/measurements/encoded/bbb_60s_720p.${ext} log=$OUT/bench_${codec}.log > $log echo "=== $codec ===" | tee $log for run in 1 2 3; do t0=$(date +%s.%N) out=$(LIBVA_DRIVER_NAME=v4l2_request timeout 30 ffmpeg -hide_banner -benchmark -loglevel error \ -hwaccel vaapi -hwaccel_output_format vaapi \ -i "$cf" -vf "hwdownload,format=nv12" -f null - 2>&1 0) { mean=sum/n for (i in el) ss += (el[i]-mean)^2 sd=sqrt(ss/n) printf " N=%d mean=%.3fs sigma=%.3fs fps=%.2f±%.2f\n", n, mean, sd, 1440/mean, 1440*sd/(mean*mean) } }' $log | tee -a $log done echo "=== done $(date -Iseconds) ==="