Pastebin launched a little side project called VERYVIRAL.com, check it out ;-) Want more features on Pastebin? Sign Up, it's FREE!
Guest

fbits

By: a guest on Nov 6th, 2012  |  syntax: Bash  |  size: 0.94 KB  |  views: 217  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. #!/bin/bash
  2.  
  3. me="${0##*/}"
  4.  
  5. if [ -w "$TMPDIR" ]; then
  6.         tdir="$TMPDIR"
  7. elif [ -w '/tmp' ]; then
  8.         tdir='/tmp'
  9. elif [ -w "$HOME" ]; then
  10.         tdir="$HOME"
  11. elif [ -w "$PWD" ]; then
  12.         tdir="$PWD"
  13. else
  14.         echo "$me: error: can't find a writable directory for creating the temporary file" 1>&2 ; exit 1
  15. fi
  16.  
  17. tf="$( TMPDIR="$tdir" mktemp "${tdir}/${me}.XXXX" 2>/dev/null )"
  18. if [ -z "$tf" ]; then
  19.         echo "$me: error: can't create temporary file" 1>&2 ; exit 1
  20. fi
  21.  
  22. checkbits ()
  23. {
  24.         local bps abps tbps=0 n=0
  25.         bps="$( metaflac --show-bps "$1" )"
  26.         flac -ac "$1" 2>/dev/null | fgrep 'wasted_bits' | cut -d '=' -f 3 | cut -f 1 > "$tf"
  27.         while read wb; do
  28.                 tbps=$(( tbps + ( bps - wb ) ))
  29.                 ((n++))
  30.         done < "$tf"
  31.         abps=$(( ( ( tbps * 10 / n) + 5 ) / 10 )) # (* 10 + 5) / 10 for proper rounding
  32.         printf "%2u/%2u bits\t%s\n" "$abps" "$bps" "$1"
  33. }
  34.  
  35. for f in "$@"; do
  36.         case "$f" in
  37.                 *.flac) checkbits "$f" ;;
  38.                 *) continue ;;
  39.         esac
  40. done
  41.  
  42. rm -f "$tf"