to-gif.sh 834 B

1234567891011121314151617181920212223242526272829303132
  1. #!/usr/bin/env bash
  2. set -o pipefail
  3. set -o errexit
  4. set -o nounset
  5. # set -o xtrace
  6. # Set magic variables for current file & dir
  7. __dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
  8. __file="${__dir}/$(basename "${BASH_SOURCE[0]}")"
  9. __base="$(basename ${__file} .sh)"
  10. __root="$(cd "$(dirname "${__dir}")" && pwd)"
  11. width=600
  12. speed=0.7
  13. input="${__root}/assets/uppy-demo-oct-2018.mov"
  14. base="$(basename "${input}")"
  15. output="${__root}/assets/${base}.gif"
  16. ffmpeg \
  17. -y \
  18. -i "${input}" \
  19. -vf fps=10,scale=${width}:-1:flags=lanczos,palettegen "${__root}/assets/${base}-palette.png"
  20. ffmpeg \
  21. -y \
  22. -i "${input}" \
  23. -i "${__root}/assets/${base}-palette.png" \
  24. -filter_complex "setpts=${speed}*PTS,fps=10,scale=${width}:-1:flags=lanczos[x];[x][1:v]paletteuse" \
  25. "${output}"
  26. du -hs "${output}"
  27. open -a 'Google Chrome' "${output}"