Bug fixes for -a option, Black Level for multiple arguments (FRAME_START should be 1). More settings are printed!!
parent
5e061a4d73
commit
ea9eb63ae3
87
convmlv.sh
87
convmlv.sh
|
@ -1,5 +1,7 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
|
#UNFIXED BUG: Run on all Charleston files; determine what makes -k non-numeric...
|
||||||
|
|
||||||
#EXPERIMENT:
|
#EXPERIMENT:
|
||||||
#~ ../../mlv_dump -o test/test 700D_mv1080_1728x1158.MLV --dng --no-cs
|
#~ ../../mlv_dump -o test/test 700D_mv1080_1728x1158.MLV --dng --no-cs
|
||||||
#~ readarray -t y <<<`../../mlv_dump -v -m 700D_mv1080_1728x1158.MLV | grep 'Gain [RGB]' | sed 's/[[:alpha:] ]*: //' | cut -d$'\n' -f1-3`
|
#~ readarray -t y <<<`../../mlv_dump -v -m 700D_mv1080_1728x1158.MLV | grep 'Gain [RGB]' | sed 's/[[:alpha:] ]*: //' | cut -d$'\n' -f1-3`
|
||||||
|
@ -66,7 +68,7 @@ isFR=true
|
||||||
|
|
||||||
#RAW DEVELOPOMENT
|
#RAW DEVELOPOMENT
|
||||||
HIGHLIGHT_MODE="0"
|
HIGHLIGHT_MODE="0"
|
||||||
PROXY_SCALE="75%"
|
PROXY_SCALE="50%"
|
||||||
DEMO_MODE="1"
|
DEMO_MODE="1"
|
||||||
GAMMA="1 1"
|
GAMMA="1 1"
|
||||||
SPACE="0" #Color Space. Correlates to Gamma.
|
SPACE="0" #Color Space. Correlates to Gamma.
|
||||||
|
@ -83,6 +85,7 @@ BADPIXEL_PATH=""
|
||||||
isBP=false
|
isBP=false
|
||||||
DARKFRAME=""
|
DARKFRAME=""
|
||||||
SETTINGS_OUTPUT=false
|
SETTINGS_OUTPUT=false
|
||||||
|
BLACK_LEVEL=""
|
||||||
|
|
||||||
#White Balance
|
#White Balance
|
||||||
WHITE=""
|
WHITE=""
|
||||||
|
@ -247,6 +250,7 @@ mkdirS() {
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ $cont == true ]; then
|
if [ $cont == true ]; then
|
||||||
|
let ARGNUM--
|
||||||
continue
|
continue
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
@ -523,6 +527,42 @@ checkDeps() {
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bold() {
|
||||||
|
echo -e "\e[1m${1}\e[0m"
|
||||||
|
}
|
||||||
|
|
||||||
|
prntSet() {
|
||||||
|
cat << EOF
|
||||||
|
$(bold CameraName): ${CAM_NAME}
|
||||||
|
$(bold RecordingDate): ${REC_DATE}
|
||||||
|
$(bold RecordingTime): ${REC_TIME}
|
||||||
|
|
||||||
|
$(bold FPS): ${FPS}
|
||||||
|
$(bold TotalFrames): ${FRAMES}
|
||||||
|
|
||||||
|
$(bold Aperture): ${APERTURE}
|
||||||
|
$(bold ISO): ${ISO}
|
||||||
|
$(bold ShutterSpeed): ${SHUTTER}
|
||||||
|
$(bold WBKelvin): ${KELVIN}
|
||||||
|
|
||||||
|
$(bold FocalLength): ${LEN_FOCAL}
|
||||||
|
|
||||||
|
EOF
|
||||||
|
}
|
||||||
|
|
||||||
|
mlvSet() {
|
||||||
|
FPS=`${MLV_DUMP} -v -m ${ARG} | grep FPS | awk 'FNR == 1 {print $3}'`
|
||||||
|
|
||||||
|
CAM_NAME=`${MLV_DUMP} -v -m ${ARG} | grep 'Camera Name' | cut -d "'" -f 2`
|
||||||
|
FRAMES=`${MLV_DUMP} -v -m ${ARG} | grep 'Frames Video' | sed 's/[[:alpha:] ]*: //' | cut -d$'\n' -f1`
|
||||||
|
ISO=`${MLV_DUMP} -v -m ${ARG} | grep 'ISO' | sed 's/[[:alpha:] ]*: //' | cut -d$'\n' -f2`
|
||||||
|
APERTURE=`${MLV_DUMP} -v -m ${ARG} | grep 'Aperture' | sed 's/[[:alpha:] ]*: //' | cut -d$'\n' -f1`
|
||||||
|
LEN_FOCAL=`${MLV_DUMP} -v -m ${ARG} | grep 'Focal Len' | sed 's/[[:alpha:] ]*: //' | cut -d$'\n' -f1`
|
||||||
|
SHUTTER=`${MLV_DUMP} -v -m ${ARG} | grep 'Shutter' | sed 's/[[:alpha:] ]*: //' | grep -oP '\(\K[^)]+' | cut -d$'\n' -f1`
|
||||||
|
REC_DATE=`${MLV_DUMP} -v -m ${ARG} | grep 'Date' | sed 's/[[:alpha:] ]*: //' | cut -d$'\n' -f1`
|
||||||
|
REC_TIME=`${MLV_DUMP} -v -m ${ARG} | grep 'Time: [0-2][0-9]\:*' | sed 's/[[:alpha:] ]*: //' | cut -d$'\n' -f1`
|
||||||
|
KELVIN=`${MLV_DUMP} -v -m ${ARG} | grep 'Kelvin' | sed 's/[[:alpha:] ]*: //' | cut -d$'\n' -f1`
|
||||||
|
}
|
||||||
|
|
||||||
if [ $# == 0 ]; then
|
if [ $# == 0 ]; then
|
||||||
help
|
help
|
||||||
|
@ -545,16 +585,10 @@ for ARG in $*; do
|
||||||
if [ $SETTINGS_OUTPUT == true ]; then
|
if [ $SETTINGS_OUTPUT == true ]; then
|
||||||
if [ $EXT == "MLV" ] || [ $EXT == "mlv" ]; then
|
if [ $EXT == "MLV" ] || [ $EXT == "mlv" ]; then
|
||||||
# Read the header for interesting settings :) .
|
# Read the header for interesting settings :) .
|
||||||
FPS=`${MLV_DUMP} -v -m ${ARG} | grep FPS | awk 'FNR == 1 {print $3}'`
|
mlvSet
|
||||||
|
|
||||||
FRAMES=`${MLV_DUMP} -v -m ${ARG} | grep 'Frames Video' | sed 's/[[:alpha:] ]*: //' | cut -d$'\n' -f1`
|
|
||||||
ISO=`${MLV_DUMP} -v -m ${ARG} | grep 'ISO' | sed 's/[[:alpha:] ]*: //' | cut -d$'\n' -f2`
|
|
||||||
APERTURE=`${MLV_DUMP} -v -m ${ARG} | grep 'Aperture' | sed 's/[[:alpha:] ]*: //' | cut -d$'\n' -f1`
|
|
||||||
LEN_FOCAL=`${MLV_DUMP} -v -m ${ARG} | grep 'Focal Len' | sed 's/[[:alpha:] ]*: //' | cut -d$'\n' -f1`
|
|
||||||
SHUTTER=`${MLV_DUMP} -v -m ${ARG} | grep 'Shutter' | sed 's/[[:alpha:] ]*: //' | grep -oP '\(\K[^)]+' | cut -d$'\n' -f1`
|
|
||||||
|
|
||||||
echo -e "\n\e[1m\e[0;32m\e[1mFile\e[0m\e[0m: ${ARG}\n"
|
echo -e "\n\e[1m\e[0;32m\e[1mFile\e[0m\e[0m: ${ARG}\n"
|
||||||
echo -e "\e[1mFPS\e[0m: ${FPS}\n\e[1mFrames\e[0m: ${FRAMES}\n\e[1mISO\e[0m: ${ISO}\n\e[1mAperture\e[0m: ${APERTURE}\n\e[1mFocalLength\e[0m: ${LEN_FOCAL}\n\e[1mShutterSpeed\e[0m: ${SHUTTER} sec"
|
prntSet
|
||||||
continue
|
continue
|
||||||
else
|
else
|
||||||
echo -e "Cannot print settings from ${ARG}; it's not an MLV file!"
|
echo -e "Cannot print settings from ${ARG}; it's not an MLV file!"
|
||||||
|
@ -590,6 +624,7 @@ for ARG in $*; do
|
||||||
|
|
||||||
FILE="${OUTDIR}/${TRUNC_ARG}"
|
FILE="${OUTDIR}/${TRUNC_ARG}"
|
||||||
TMP="${FILE}/tmp_${TRUNC_ARG}"
|
TMP="${FILE}/tmp_${TRUNC_ARG}"
|
||||||
|
|
||||||
#Manage DNG argument/Create FILE and TMP.
|
#Manage DNG argument/Create FILE and TMP.
|
||||||
DEVELOP=true
|
DEVELOP=true
|
||||||
if [ -d $ARG ] && [ `basename ${ARG} | cut -c1-3` == "dng" ] && [ -f "${ARG}/../settings.txt" ]; then #If we're reusing a dng sequence, copy over before we delete the original.
|
if [ -d $ARG ] && [ `basename ${ARG} | cut -c1-3` == "dng" ] && [ -f "${ARG}/../settings.txt" ]; then #If we're reusing a dng sequence, copy over before we delete the original.
|
||||||
|
@ -675,15 +710,10 @@ for ARG in $*; do
|
||||||
|
|
||||||
if [ $EXT == "MLV" ] || [ $EXT == "mlv" ]; then
|
if [ $EXT == "MLV" ] || [ $EXT == "mlv" ]; then
|
||||||
# Read the header for interesting settings :) .
|
# Read the header for interesting settings :) .
|
||||||
FPS=`${MLV_DUMP} -v -m ${ARG} | grep FPS | awk 'FNR == 1 {print $3}'`
|
mlvSet
|
||||||
|
|
||||||
FRAMES=`${MLV_DUMP} -v -m ${ARG} | grep 'Frames Video' | sed 's/[[:alpha:] ]*: //' | cut -d$'\n' -f1`
|
prntSet > $FILE/settings.txt
|
||||||
ISO=`${MLV_DUMP} -v -m ${ARG} | grep 'ISO' | sed 's/[[:alpha:] ]*: //' | cut -d$'\n' -f2`
|
sed -i -r "s/\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[m|K]//g" $FILE/settings.txt #Strip escape sequences.
|
||||||
APERTURE=`${MLV_DUMP} -v -m ${ARG} | grep 'Aperture' | sed 's/[[:alpha:] ]*: //' | cut -d$'\n' -f1`
|
|
||||||
LEN_FOCAL=`${MLV_DUMP} -v -m ${ARG} | grep 'Focal Len' | sed 's/[[:alpha:] ]*: //' | cut -d$'\n' -f1`
|
|
||||||
SHUTTER=`${MLV_DUMP} -v -m ${ARG} | grep 'Shutter' | sed 's/[[:alpha:] ]*: //' | grep -oP '\(\K[^)]+' | cut -d$'\n' -f1`
|
|
||||||
|
|
||||||
echo -e "FPS: ${FPS}\nFrames: ${FRAMES}\nISO: ${ISO}\nAperture: ${APERTURE}\nFocalLength: ${LEN_FOCAL}\nShutterSpeed: ${SHUTTER}" > $FILE/settings.txt
|
|
||||||
|
|
||||||
#Dual ISO might want to do the chroma smoothing.
|
#Dual ISO might want to do the chroma smoothing.
|
||||||
if [ $DUAL_ISO == true ]; then
|
if [ $DUAL_ISO == true ]; then
|
||||||
|
@ -698,9 +728,12 @@ for ARG in $*; do
|
||||||
FPS=`$RAW_DUMP $ARG "${TMP}/${TRUNC_ARG}_" | awk '/FPS/ { print $3; }'` #Run the dump while awking for the FPS.
|
FPS=`$RAW_DUMP $ARG "${TMP}/${TRUNC_ARG}_" | awk '/FPS/ { print $3; }'` #Run the dump while awking for the FPS.
|
||||||
fi
|
fi
|
||||||
|
|
||||||
FRAMES=$(find ${TMP} -name "*.dng" | wc -l)
|
FRAMES=$(find ${TMP} -name "*.dng" | wc -l) #Backup
|
||||||
BLACK_LEVEL=$(exiftool -BlackLevel -s -s -s ${TMP}/${TRUNC_ARG}_$(printf "%06d" $(echo "$FRAME_START - 1" | bc)).dng) #Use the first DNG to get the correct black level.
|
|
||||||
fi
|
BLACK_LEVEL=$(exiftool -BlackLevel -s -s -s ${TMP}/${TRUNC_ARG}_$(printf "%06d" $(echo "$FRAME_START - 1" | bc)).dng)
|
||||||
|
fi
|
||||||
|
|
||||||
|
BLACK_LEVEL=$(exiftool -BlackLevel -s -s -s ${TMP}/${TRUNC_ARG}_$(printf "%06d" $(echo "$FRAME_START - 1" | bc)).dng) #Use the first DNG to get the correct black level.
|
||||||
|
|
||||||
#Create badpixels file.
|
#Create badpixels file.
|
||||||
if [ $isBP == true ] && [ ! -d $DNG_LOC ]; then
|
if [ $isBP == true ] && [ ! -d $DNG_LOC ]; then
|
||||||
|
@ -715,7 +748,7 @@ for ARG in $*; do
|
||||||
$MLV_BP -o $gen_bad $ARG
|
$MLV_BP -o $gen_bad $ARG
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ ! -z $BADPIXEL_PATH ]; then
|
if [[ ! -z $BADPIXEL_PATH ]]; then
|
||||||
if [ -f "${TMP}/${bad_name}" ]; then
|
if [ -f "${TMP}/${bad_name}" ]; then
|
||||||
echo -e "\e[1m${TRUNC_ARG}:\e[0m Concatenating with specified badpixels file...\n"
|
echo -e "\e[1m${TRUNC_ARG}:\e[0m Concatenating with specified badpixels file...\n"
|
||||||
mv "${TMP}/${bad_name}" "${TMP}/bp_gen"
|
mv "${TMP}/${bad_name}" "${TMP}/bp_gen"
|
||||||
|
@ -728,15 +761,19 @@ for ARG in $*; do
|
||||||
fi
|
fi
|
||||||
|
|
||||||
BADPIXELS="-P ${gen_bad}"
|
BADPIXELS="-P ${gen_bad}"
|
||||||
elif [ ! -z $BADPIXEL_PATH ]; then
|
elif [[ ! -z $BADPIXEL_PATH ]]; then
|
||||||
echo -e "\e[1m${TRUNC_ARG}:\e[0m Using specified badpixels file...\n"
|
echo -e "\e[1m${TRUNC_ARG}:\e[0m Using specified badpixels file...\n"
|
||||||
cp $BADPIXEL_PATH "${TMP}/${bad_name}"
|
|
||||||
|
bad_name="badpixels_${TRUNC_ARG}.txt"
|
||||||
|
gen_bad="${TMP}/${bad_name}"
|
||||||
|
cp $BADPIXEL_PATH "${gen_bad}"
|
||||||
BADPIXELS="-P ${gen_bad}"
|
BADPIXELS="-P ${gen_bad}"
|
||||||
|
#~ echo $gen_bad
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ $isFR == true ]; then #Ensure that FRAME_RANGE is set.
|
if [ $isFR == true ]; then #Ensure that FRAME_RANGE is set.
|
||||||
FRAME_RANGE="1-${FRAMES}"
|
FRAME_RANGE="1-${FRAMES}"
|
||||||
FRAME_START="0"
|
FRAME_START="1"
|
||||||
FRAME_END=$FRAMES
|
FRAME_END=$FRAMES
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
@ -879,7 +916,7 @@ for ARG in $*; do
|
||||||
#~ cat $PIPE | tr 'e' 'a' & echo 'hello' | tee $PIPE | tr 'e' 'o' #The magic of simultaneous execution ^_^
|
#~ cat $PIPE | tr 'e' 'a' & echo 'hello' | tee $PIPE | tr 'e' 'o' #The magic of simultaneous execution ^_^
|
||||||
}
|
}
|
||||||
|
|
||||||
img_par() { #Takes 20 arguments: {} 2$DEMO_MODE 3$FOUR_COLOR 4$BADPIXELS 5$WHITE 6$HIGHLIGHT_MODE 7$GAMMA 8$NOISE_REDUC 9$DEPTH 10$SEQ 11$TRUNC_ARG 12$IMG_FMT 13$FRAMES 14$DEPTH_OUT 15$COMPRESS 16$isJPG $PROXY_SCALE $PROXY $BLACK_LEVEL $SPACE
|
img_par() { #Takes 20 arguments: {} 2$DEMO_MODE 3$FOUR_COLOR 4$BADPIXELS 5$WHITE 6$HIGHLIGHT_MODE 7$GAMMA 8$NOISE_REDUC 9$DEPTH 10$SEQ 11$TRUNC_ARG 12$IMG_FMT 13$FRAMES 14$DEPTH_OUT 15$COMPRESS 16$isJPG 17$PROXY_SCALE 18$PROXY 19$BLACK_LEVEL 20$SPACE
|
||||||
count=$(echo $(echo $1 | rev | cut -d "_" -f 1 | rev | cut -d "." -f 1 | grep "[0-9]") | bc) #Instead of count from file, count from name!
|
count=$(echo $(echo $1 | rev | cut -d "_" -f 1 | rev | cut -d "." -f 1 | grep "[0-9]") | bc) #Instead of count from file, count from name!
|
||||||
if [ ${16} == true ]; then
|
if [ ${16} == true ]; then
|
||||||
dcraw -c -q $2 $3 $4 $5 -H $6 -k ${19} -g $7 $8 -o ${20} $9 $1 | \
|
dcraw -c -q $2 $3 $4 $5 -H $6 -k ${19} -g $7 $8 -o ${20} $9 $1 | \
|
||||||
|
|
Loading…
Reference in New Issue