most of program1 is done, shape of program2, actual app to be started
This commit is contained in:
46
program1/rotation.sh
Normal file
46
program1/rotation.sh
Normal 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 d’orientation (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
|
||||
Reference in New Issue
Block a user