77 lines
1.6 KiB
Bash
Executable File
77 lines
1.6 KiB
Bash
Executable File
#!/bin/bash
|
|
# Copyright 2022 Pavel Machek, GPLv2+
|
|
|
|
# needs sudo apt install dcraw
|
|
|
|
jpegize() {
|
|
DNG_DIR="$1"
|
|
BURST_DIR="$GIGA_DIR/sm/"
|
|
mkdir $BURST_DIR
|
|
|
|
DCRAW=dcraw
|
|
TIFF_EXT="tiff"
|
|
set --
|
|
|
|
CONVERT="convert"
|
|
|
|
cd $DNG_DIR
|
|
I=0
|
|
NUM=0
|
|
for DNG in *.dng; do
|
|
NUM=$[$NUM+1]
|
|
done
|
|
|
|
for DNG in *.dng; do
|
|
PERC=$[(100*$I)/$NUM]
|
|
echo $PERC
|
|
BASE=${DNG%%.dng}
|
|
# -w Use camera white balance
|
|
# +M use embedded color matrix
|
|
# -H 2 Recover highlights by blending them
|
|
# -o 1 Output in sRGB colorspace
|
|
# -q 0 Debayer with fast bi-linear interpolation
|
|
# -f Interpolate RGGB as four colors
|
|
# -T Output TIFF
|
|
(
|
|
$DCRAW -w +M -H 2 -o 1 -q 0 -f -T "$DNG"
|
|
$CONVERT "$BASE.tiff" "$BASE.jpeg"
|
|
rm "$BASE.tiff"
|
|
mv "$BASE.jpeg" "$BURST_DIR/$BASE.jpeg.sv"
|
|
) &
|
|
# dcraw -h -> half size -- fast!
|
|
# can do ppm output
|
|
I=$[$I+1]
|
|
if [ 0 == $[ $I % 16 ] ]; then
|
|
echo "Batch $I -- $PERC %" 1>&2
|
|
wait
|
|
fi
|
|
done
|
|
}
|
|
|
|
SCRIPT_DIR=$(cd $(dirname "${BASH_SOURCE[0]}") && pwd)
|
|
GIGA_DIR="$2"
|
|
DEST_NAME="$3"
|
|
FPS="$4"
|
|
|
|
echo script_dir $SCRIPT_DIR 1>&2
|
|
echo GIGA_DIR $GIGA_DIR 1>&2
|
|
echo DEST_NAME $DEST_NAME 1>&2
|
|
echo FPS $FPS dfps 1>&2
|
|
|
|
if [ "-$1" == "-start" ]; then
|
|
mkdir $GIGA_DIR/sm
|
|
cd $GIGA_DIR/sm
|
|
@LIBEXECDIR@/movie_audio_rec $FPS &
|
|
echo $! > $2/audio.pid
|
|
elif [ "-$1" == "-stop" ]; then
|
|
mkdir $GIGA_DIR/sm
|
|
kill `cat $2/audio.pid`
|
|
jpegize $2 # | zenity --progress "--text=Converting, phase 1, dng -> jpeg" --time-remaining
|
|
cd $GIGA_DIR/sm
|
|
@LIBEXECDIR@/mpegize.py convertall $GIGA_DIR/ $FPS
|
|
mv $GIGA_DIR/smo/*.mp4 $DEST_NAME
|
|
rm -r $GIGA_DIR
|
|
else
|
|
echo "Unrecognized command"
|
|
fi
|