System Gen47 @ 2025-05-28-22:04:55 by jonas@monolith
This commit is contained in:
parent
d49b4f2514
commit
d6626110c2
@ -69,8 +69,8 @@
|
|||||||
borgmatic
|
borgmatic
|
||||||
chromium
|
chromium
|
||||||
davinci-resolve
|
davinci-resolve
|
||||||
discord
|
|
||||||
digikam
|
digikam
|
||||||
|
discord
|
||||||
docker
|
docker
|
||||||
docker-compose
|
docker-compose
|
||||||
drawio
|
drawio
|
||||||
@ -79,6 +79,7 @@
|
|||||||
firefox
|
firefox
|
||||||
gimp
|
gimp
|
||||||
git
|
git
|
||||||
|
hive.transcode-davinci-resolve
|
||||||
insomnia
|
insomnia
|
||||||
kdePackages.kdenlive
|
kdePackages.kdenlive
|
||||||
krita
|
krita
|
||||||
@ -97,7 +98,6 @@
|
|||||||
ranger
|
ranger
|
||||||
sops
|
sops
|
||||||
spotify
|
spotify
|
||||||
transcode-davinci-resolve
|
|
||||||
vim
|
vim
|
||||||
vlc
|
vlc
|
||||||
vscode
|
vscode
|
||||||
|
|||||||
@ -1,3 +1,5 @@
|
|||||||
_: prev: {
|
_: prev: {
|
||||||
transcode-davinci-resolve = prev.callPackage ./transcode-davinci-resolve {};
|
hive = {
|
||||||
|
transcode-davinci-resolve = prev.callPackage ./transcode-davinci-resolve {};
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,7 +1,5 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
set -e
|
|
||||||
|
|
||||||
where="${1:-.}"
|
where="${1:-.}"
|
||||||
|
|
||||||
selection=$(find "$where" -type f | fzf --multi --preview 'ffprobe -v error -show_format -show_streams {}' --preview-window=up:wrap)
|
selection=$(find "$where" -type f | fzf --multi --preview 'ffprobe -v error -show_format -show_streams {}' --preview-window=up:wrap)
|
||||||
@ -16,12 +14,13 @@ else
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
function transcode_job {
|
function transcode_job {
|
||||||
local file="$1"
|
local ifile="$1"
|
||||||
local output_dir="$2"
|
local output_dir="$2"
|
||||||
local flatten="$3"
|
local flatten="$3"
|
||||||
local where=$4
|
local where="$4"
|
||||||
local fname=$(basename "$file")
|
local fname=$(basename "$ifile")
|
||||||
local segment=$(realpath --relative-to="$where" "$file")
|
local segment=$(realpath --relative-to="$where" "$ifile")
|
||||||
|
|
||||||
|
|
||||||
if [ "$flatten" = true ]; then
|
if [ "$flatten" = true ]; then
|
||||||
output_file="$output_dir/$fname.mov"
|
output_file="$output_dir/$fname.mov"
|
||||||
@ -29,16 +28,30 @@ function transcode_job {
|
|||||||
output_file="$output_dir/$segment.mov"
|
output_file="$output_dir/$segment.mov"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
mkdir -p "$(dirname "$output_file")" >> log.txt
|
tmp_file=$(mktemp)
|
||||||
|
|
||||||
ffmpeg -i "$file" -c:v dnxhd -profile:v dnxhr_hq -pix_fmt yuv422p -c:a pcm_s16le "$output_file" || true
|
mkdir -p "$(dirname "$output_file")"
|
||||||
|
|
||||||
|
if ffmpeg -y -i "$ifile" -c:v dnxhd -profile:v dnxhr_hq -pix_fmt yuv422p -c:a pcm_s16le "$output_file" 2>> "$tmp_file";
|
||||||
|
then
|
||||||
|
rm -f "$tmp_file"
|
||||||
|
else
|
||||||
|
# gum log "Failed to transcode $ifile. Check ./error.log for details."
|
||||||
|
cat "$tmp_file" >> error.log
|
||||||
|
rm -f "$tmp_file"
|
||||||
|
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
export -f transcode_job
|
export -f transcode_job
|
||||||
|
|
||||||
|
mapfile -t files <<< "$selection"
|
||||||
|
len=${#files[@]}
|
||||||
i=1
|
i=1
|
||||||
len=$(echo "$selection" | wc -l)
|
for file in "${files[@]}"; do
|
||||||
while IFS= read -r file; do
|
if [[ -f "$file" ]]; then
|
||||||
gum spin --spinner dot --title "[$i/$len] Transcoding $file" -- bash -c "source <(declare -f transcode_job); transcode_job \"$file\" \"$output_dir\" \"$flatten\" \"$where\""
|
gum spin --spinner dot --title "[$i/$len] Transcoding $file" -- bash -c "source <(declare -f transcode_job); transcode_job \"$file\" \"$output_dir\" \"$flatten\" \"$where\""
|
||||||
|
else
|
||||||
|
echo "Skipping invalid file: $file" >&2
|
||||||
|
fi
|
||||||
((i++))
|
((i++))
|
||||||
done <<< "$selection"
|
done
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user