
Got pipe to work between movie subprocess and main code. We use it to display progress from the scripts. Write "gstreamer raw" files, that can be worked with easily from gstreamer.
80 lines
1.6 KiB
Bash
Executable File
80 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=$[(50*$I)/$NUM]
|
|
echo Message: ${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
|
|
echo Message: Mp
|
|
cd $GIGA_DIR/sm
|
|
@LIBEXECDIR@/mpegize.py convertall $GIGA_DIR/ $FPS
|
|
echo Message: Cl
|
|
mv $GIGA_DIR/smo/*.mp4 $DEST_NAME
|
|
rm -r $GIGA_DIR
|
|
echo Message: Ok
|
|
else
|
|
echo "Unrecognized command"
|
|
fi
|