nix/modules/transcode.nix
2026-01-12 11:26:42 +01:00

35 lines
877 B
Nix

{ config, pkgs, lib, ... }:
{
home.packages = with pkgs; [
ffmpeg
];
programs.zsh.initContent = ''
function flac2aac() {
local dir="''${1:-.}"
for f in "$dir"/**/*.flac; do
if [[ -f "$f" ]]; then
local outfile="./transcode/''${f%.flac}.m4a"
mkdir -p "$(dirname "$outfile")"
ffmpeg -i "$f" -vn -c:a aac -b:a 256k -movflags +faststart "$outfile"
fi
done
}
function video2av1() {
local dir="''${1:-.}"
for f in "$dir"/**/*.(mp4|mkv|avi); do
if [[ -f "$f" ]]; then
local outfile="./transcode/''${f%.*}.mkv"
mkdir -p "$(dirname "$outfile")"
ffmpeg -hwaccel qsv -i "$f" \
-c:v av1_qsv -global_quality 30 \
-vf "scale='min(720,iw)':-2" \
-c:a copy \
"$outfile"
fi
done
}
'';
}