Advertisement
Suncatcher

vlc_transcode

Oct 31st, 2015
190
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 0.98 KB | None | 0 0
  1. #!/bin/sh
  2. usage() {
  3.     cat <<-USAGE 1>&2
  4.     usage: ${0##*/} [DIR ...]
  5.  
  6.     optional arguments:
  7.       DIR   directories to search. Use current directory if not given.
  8.     USAGE
  9.     exit 1
  10. }
  11.  
  12. error() {
  13.     printf '%s: error: %s, aborting.\n' "${0##*/}" "$1" 1>&2
  14.     exit $2
  15. }
  16.  
  17. transcode_dir() {
  18.     indir=$(readlink -f -- "$1")
  19.     outdir="$HOME/${indir##*/}"
  20.  
  21.     ! mkdir -pv -- "$outdir" && error "cannot create directory \"$outdir\"" 3
  22.  
  23.     cd -- "$indir"
  24.     for a in *.$fmt; do
  25.         $vlc -I dummy -vvv "$a" --sout "#transcode{acodec=$acodec,ab=$arate,channels=2}:duplicate{dst=std{access=file,mux=ogg,dst=\"$outdir/${a%.*}.$ext\"}}" vlc://quit
  26.     done
  27.     cd - 2> /dev/null
  28. }
  29.  
  30. while getopts "h" option; do
  31.     case $option in
  32.         h|\? )  usage;;
  33.     esac
  34. done
  35. shift $((OPTIND-1))
  36.  
  37. acodec="vorb"
  38. arate="256"
  39. ext="ogg"
  40. vlc="/usr/bin/vlc"
  41. fmt="mp3"
  42.  
  43. if [ $# -eq 0 ]; then
  44.     transcode_dir .
  45. else
  46.     while [ $# -ge 1 ]; do
  47.         [ ! -d "$1" ] && error "not a directory: \"$1\"" 2
  48.         transcode_dir "$1"
  49.         shift
  50.     done
  51. fi
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement