Personal-use NixOS configuration
at main 45 lines 753 B view raw
1{ 2 pkgs, 3 lib, 4 mkAliases, 5 ... 6}: 7 8let 9 ffmpegExe = lib.getExe pkgs.ffmpeg; 10 11 aliases = { 12 opus = '' 13 INPUT_FILE_NAME="$1" 14 TEMPORARY_FILE_NAME="/tmp/''${1%.*}.opus" 15 TARGET_FILE_NAME="''${1%.*}.m4a" 16 17 BITRATE="''${2:-128k}" 18 19 ${ffmpegExe} -i $INPUT_FILE_NAME \ 20 -b:a $BITRATE \ 21 -c:a libopus \ 22 $TEMPORARY_FILE_NAME 23 24 ${ffmpegExe} -i $TEMPORARY_FILE_NAME \ 25 -map_metadata -1 \ 26 -fflags +bitexact \ 27 -flags:v +bitexact \ 28 -flags:a +bitexact \ 29 -c:a copy \ 30 -f mp4 \ 31 $TARGET_FILE_NAME 32 33 rm $TEMPORARY_FILE_NAME 34 ''; 35 }; 36in 37pkgs.mkShell { 38 packages = 39 with pkgs; 40 [ 41 ffmpeg 42 rsgain 43 ] 44 ++ (mkAliases aliases); 45}