diff --git a/.gitignore b/.gitignore index da73d48..eb3910b 100644 --- a/.gitignore +++ b/.gitignore @@ -11,3 +11,4 @@ pom.xml.asc .hgignore .hg/ videos/ +.DS_Store diff --git a/README.md b/README.md index 11dcbba..a1efa7d 100644 --- a/README.md +++ b/README.md @@ -20,6 +20,7 @@ brew install openjdk extension_thumbnail: "_thumbnail.mp4" width_thumbnail: 600 path_videos: "videos" +audio_quality_thumbnail: 128 ``` 3) Make folder `path_videos`. diff --git a/config.yaml b/config.yaml index d288596..e763ff5 100644 --- a/config.yaml +++ b/config.yaml @@ -1,3 +1,4 @@ extension_thumbnail: "_thumbnail.mp4" width_thumbnail: 600 path_videos: "videos" +audio_quality_thumbnail: 128 diff --git a/project.clj b/project.clj index debbf1f..47bedb9 100644 --- a/project.clj +++ b/project.clj @@ -1,4 +1,4 @@ -(defproject video-optimize "1.0.1-SNAPSHOT" +(defproject video-optimize "1.0.2-SNAPSHOT" :description "Watcher and optimize videos" :url "http://example.com/FIXME" :license {:name "EPL-2.0 OR GPL-2.0-or-later WITH Classpath-exception-2.0" diff --git a/src/video_optimize/core.clj b/src/video_optimize/core.clj index 14d089a..a7fb783 100644 --- a/src/video_optimize/core.clj +++ b/src/video_optimize/core.clj @@ -11,19 +11,22 @@ (def config (yaml/parse-string (slurp "config.yaml"))) (def extension_thumbnail (:extension_thumbnail config)) (def width_thumbnail (:width_thumbnail config)) +(def audio_quality_thumbnail (:audio_quality_thumbnail config)) (def path_videos (:path_videos config)) (defn -main [& args] ;; Watch (hawk/watch! [{:paths [path_videos] :handler (fn [ctx e] - (let [path_raw (.getAbsolutePath (:file e)) - is_thumbnail (doall (re-find (re-pattern extension_thumbnail) path_raw)) - path_thumbnail (str/join (concat (drop-last (str/split path_raw #"\.")) extension_thumbnail))] + (let [path_raw (.getAbsolutePath (:file e)) + is_thumbnail (doall (re-find (re-pattern extension_thumbnail) path_raw)) + path_thumbnail (str/join (concat (drop-last (str/split path_raw #"\.")) extension_thumbnail)) + path_thumbnail_temp (str "/tmp/" (last (str/split path_thumbnail #"\/")))] (if (and (.exists (io/file path_raw)) (not is_thumbnail) (not (.exists (io/file path_thumbnail)))) (do (prn (str "Optimizing: " path_raw)) ;; Optimizing with ffmpeg - (shell/sh "ffmpeg" "-y" "-i" path_raw "-vf" (str "scale=" width_thumbnail ":-2") "-c:v" "libx264" "-crf" "23" "-profile:v" "high" "-pix_fmt" "yuv420p" "-color_primaries" "1" "-color_trc" "1" "-colorspace" "1" "-movflags" "+faststart" "-an" "-acodec" "aac" "-ab" "128kb" path_thumbnail) + (shell/sh "ffmpeg" "-y" "-i" path_raw "-vf" (str "scale=" width_thumbnail ":-2") "-c:v" "libx264" "-crf" "23" "-profile:v" "high" "-pix_fmt" "yuv420p" "-color_primaries" "1" "-color_trc" "1" "-colorspace" "1" "-movflags" "+faststart" "-an" "-acodec" "aac" "-ab" (str width_thumbnail "kb") path_thumbnail_temp) + (shell/sh "mv" path_thumbnail_temp path_thumbnail) (prn (str "Finish: " path_thumbnail))))))}]) (println "Running: Feed me!"))