Skip to content

Instantly share code, notes, and snippets.

@gtrak
Created July 9, 2015 17:56
Show Gist options
  • Save gtrak/d2a576c628869ee6910a to your computer and use it in GitHub Desktop.
Save gtrak/d2a576c628869ee6910a to your computer and use it in GitHub Desktop.
#!/usr/bin/env boot
(require '[clojure.java.io :as io])
(defn inputs
[input-dir]
(->> (io/file input-dir)
file-seq
(filter #(.isFile %))))
(defn dir-uri
[path]
(-> (io/file path)
.toURI
(str "/")
java.net.URI.))
(defn output-for
[input-dir output-dir path]
(let [rel (.relativize (.toURI (io/file input-dir)) (.toURI path))]
(.getPath (.resolve (dir-uri output-dir) rel))))
(def ^:dynamic *bin* "ffmpeg")
(defn bin [] *bin*)
(defn ffmpeg! [& args]
(apply dosh (map str (cons *bin* args))))
(defn -main [input-dir output-dir]
(let [inputs (inputs input-dir)
outputs (map (partial output-for input-dir output-dir) inputs)]
(dosh "mkdir" "-p" output-dir)
(doseq [[in out] (map vector inputs outputs)]
(ffmpeg! "-i" in "-filter_complex" "setpts=PTS/1.7;atempo=1.7" "-strict" "-2" out))))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment