most of program1 is done, shape of program2, actual app to be started

This commit is contained in:
Gabriel Radureau
2025-10-12 00:19:52 +02:00
parent 4f80b8b70d
commit 14a3392d41
8 changed files with 270 additions and 3 deletions

46
program1/rotation.sh Normal file
View File

@@ -0,0 +1,46 @@
get_rotation_filter() {
local f="$1"
local rotation
rotation=$(exiftool -Rotation -n "$f" | awk '{print $3}')
# echo $rotation $f >> "rotations.txt"
case "$rotation" in
# 90) echo "transpose=1" ;;
# 270) echo "transpose=2" ;;
# 180) echo "hflip,vflip" ;;
# *) echo "" ;;
*) echo "transpose=1" ;;
esac
}
export -f get_rotation_filter
reencode_with_rotation() {
local src="$1"
local dst="$2"
local filter
filter="$(get_rotation_filter "$src")"
if [ -n "$filter" ]; then
echo " Correction dorientation (rotation=${filter})"
if ffmpeg -encoders 2>/dev/null | grep -q 'h264_videotoolbox'; then
ffmpeg -nostdin -i "$src" -vf "$filter" \
-c:v h264_videotoolbox -b:v 5M -c:a aac -map_metadata -1 -y "$dst"
else
ffmpeg -nostdin -i "$src" -vf "$filter" \
-c:v libx264 -preset fast -crf 18 -c:a aac -map_metadata -1 -y "$dst"
fi
else
# Pas de rotation → simple copie (ou réencodage minimal)
if ffmpeg -y -i "$src" -c copy -map 0 -movflags +faststart "$dst" < /dev/null 2>/dev/null; then
:
else
if ffmpeg -encoders 2>/dev/null | grep -q 'h264_videotoolbox'; then
ffmpeg -nostdin -i "$src" \
-c:v h264_videotoolbox -b:v 5M -c:a aac -map_metadata -1 -y "$dst"
else
ffmpeg -nostdin -i "$src" \
-c:v libx264 -preset fast -crf 18 -c:a aac -map_metadata -1 -y "$dst"
fi
fi
fi
}
export -f reencode_with_rotation