Advertisement
Guest User

recordwin.zsh

a guest
Oct 16th, 2015
105
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 0.93 KB | None | 0 0
  1. #!/usr/bin/env zsh
  2. f="${1-$$.mkv}"
  3. rate=30
  4. echo "Click a window to record.."
  5. coords=( $(xwininfo | awk '/Absolute upper-left [XY]:/ {print $4} /Width:|Height:/ {print $2}') )
  6. sleep 0.1
  7. aopts=(-f alsa -rtbufsize 1M -thread_queue_size 64 -i default)
  8. #aopts=(-f pulse -i default)
  9. #aopts=()
  10. ffmpeg -s $((coords[3]/2*2))x$((coords[4]/2*2)) -r $rate -f x11grab -show_region 1 -i ${DISPLAY}+${coords[1]},${coords[2]} $aopts -c:v libx264 -pix_fmt yuv420p -qp 0 -tune zerolatency -preset ultrafast -y $f
  11. #ffmpeg -s ${coords[3]}x${coords[4]} -r $rate -f x11grab -i ${DISPLAY}+${coords[1]},${coords[2]} -c zlib out.mkv
  12. if false
  13. then
  14.     cd $(mktemp -d)
  15.     ffmpeg -i out.mkv '%4d.png'
  16.     echo -n "Press enter to make gif"
  17.     read
  18.     convert -delay $((100/rate)) -layers optimize *.png out.gif
  19.     echo "$(pwd)/out.gif"
  20.     echo "Press enter to remove temp files"
  21.     read
  22.     rm *.png out.mkv
  23.     echo "$(pwd)/out.mkv"
  24. fi
  25. echo $f
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement