add speed option for video2webp

This commit is contained in:
Yan Lin 2026-02-05 11:44:00 +01:00
parent b1eb6597b4
commit cbb12d27f8

View file

@ -84,12 +84,21 @@
} }
function video2webp() { function video2webp() {
local speed=1
while [[ "$1" == --* ]]; do
case "$1" in
--speed) speed="$2"; shift 2 ;;
*) echo "Unknown option: $1" >&2; return 1 ;;
esac
done
local dir="''${1:-.}" local dir="''${1:-.}"
local vf="fps=10,scale='min(1280,iw)':-1"
[[ "$speed" != "1" ]] && vf="setpts=PTS/$speed,$vf"
for f in "$dir"/**/*.(mp4|mkv|mov); do for f in "$dir"/**/*.(mp4|mkv|mov); do
if [[ -f "$f" ]]; then if [[ -f "$f" ]]; then
local outfile="''${f%.*}.webp" local outfile="''${f%.*}.webp"
ffmpeg -i "$f" \ ffmpeg -i "$f" \
-vf "fps=10,scale='min(1280,iw)':-1" \ -vf "$vf" \
-quality 75 -compression_level 4 -loop 0 \ -quality 75 -compression_level 4 -loop 0 \
"$outfile" "$outfile"
echo "Converted: $f -> $outfile" echo "Converted: $f -> $outfile"