From b1eb6597b487e110a3bd40846d56ca7048f6a881 Mon Sep 17 00:00:00 2001 From: Yan Lin Date: Thu, 5 Feb 2026 11:32:01 +0100 Subject: [PATCH] add video2webp function --- modules/media-process.nix | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/modules/media-process.nix b/modules/media-process.nix index d5597f1..152fd2d 100644 --- a/modules/media-process.nix +++ b/modules/media-process.nix @@ -67,7 +67,7 @@ function image2webp() { local dir="''${1:-.}" - find "$dir" -type f \( -iname '*.png' -o -iname '*.jpg' -o -iname '*.jpeg' \) | while read -r img; do + find "$dir" -type f \( -iname '*.png' -o -iname '*.jpg' -o -iname '*.jpeg' -o -iname '*.gif' \) | while read -r img; do outfile="''${img%.*}.webp" ${pkgs.imagemagick}/bin/magick "$img" -resize '1800>' -quality 82 "$outfile" echo "Converted: $img -> $outfile" @@ -83,6 +83,20 @@ done } + function video2webp() { + local dir="''${1:-.}" + for f in "$dir"/**/*.(mp4|mkv|mov); do + if [[ -f "$f" ]]; then + local outfile="''${f%.*}.webp" + ffmpeg -i "$f" \ + -vf "fps=10,scale='min(1280,iw)':-1" \ + -quality 75 -compression_level 4 -loop 0 \ + "$outfile" + echo "Converted: $f -> $outfile" + fi + done + } + function camera-copy() { local delete_source=0 if [[ "$1" == "-d" || "$1" == "--delete" ]]; then