Created
July 9, 2015 17:56
-
-
Save gtrak/d2a576c628869ee6910a to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/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