Advertisement
Guest User

musicwebm.zsh

a guest
Oct 16th, 2015
135
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 1.66 KB | None | 0 0
  1. #!/usr/bin/env zsh
  2. set -e
  3. while getopts "a:p:w:" o
  4. do
  5.     case $o in
  6.         a)  if=$OPTARG
  7.             n=${if:t:r}
  8.             t="$(ffprobe $if 2>&1|sed -n 's/.*Duration: \([^,]\+\),.*/\1/p')"
  9.             ;;
  10.         p) p=$OPTARG;;
  11.         w) vopts=(-vf "scale=$OPTARG:-1");;
  12.         *) cat<<END
  13. Usage: $0 [options]
  14.     -a song.flac  - audio source
  15.          by default will be taken from audio player (mocp or deadbeef)
  16.     -p image.png - picture
  17.          by defalt path will be taken from clipboard
  18.     -w width - scale picture
  19. END
  20.            exit 1
  21.     esac
  22.  
  23. done
  24. shift $((OPTIND - 1))
  25. if [[ -n $if ]]
  26. then
  27.     :
  28. elif pgrep mocp > /dev/null
  29. then
  30.     if="$(mocp -i | sed -n 's/^File: //p')"
  31.     n="$(mocp -i | sed -n 's/^Title: //p')"
  32.     [[ -z $n ]] && n=${if:h:t}
  33.     t="$(mocp -i | sed -n 's/^TotalTime: //p')"
  34. elif pgrep deadbeef > /dev/null
  35. then
  36.     if="$(deadbeef --nowplaying %F)"
  37.     n="$(deadbeef --nowplaying %t)"
  38.     t="$(deadbeef --nowplaying %l)"
  39. else
  40.     echo "nothing to do"
  41.     exit 1
  42. fi
  43. [[ -n $p ]] || p="$(xclip -o| tr -d \')"
  44. aopts=(-q:a 5)
  45. #aopts=(-c:a libopus -application audio -vbr on -b:a 95k -strict -2)
  46. #aopts=(-c:a copy)
  47.  
  48. [[ -f "$n.webm" ]] && echo "$n exists" && false
  49. ffmpeg -hide_banner -loop 1 -r 1 -t $t -i $p \
  50.   -c:v vp9 -pix_fmt +yuv420p -g 9999 -b:v 0 -qmax 16 -qmin 16 -y /tmp/v.webm
  51. ffmpeg -hide_banner -i $if $@ -vn -sn $aopts -map_metadata 0 -y /tmp/a.webm
  52. #for pass in 1 2
  53. #    ffmpeg -hide_banner -loop 1 -r 1 -i $p \
  54. #        $@ $vopts \
  55. #        -t $t -pass $pass -g 9999 -auto-alt-ref 1 -lag-in-frames 16 -y /tmp/v.webm
  56. #        #-vf 'setpts=10*PTS' \
  57. mkvmerge /tmp/v.webm /tmp/a.webm -o $n.webm
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement