Files
Megapixels/movie.sh.in
Pavel Machek f0d8834b4a Pipe for scripts<->application communication, write UYVY files
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.
2024-05-06 13:50:44 +02:00

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