more
This commit is contained in:
20
bin/wsl/captureall_start_dir.sh
Executable file
20
bin/wsl/captureall_start_dir.sh
Executable file
@@ -0,0 +1,20 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Check if the argument (top-level directory) is provided
|
||||
if [ -z "$1" ]; then
|
||||
echo "Usage: $0 <top-level-directory>"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Use the provided argument as the top-level directory for the find command
|
||||
top_dir="$1"
|
||||
|
||||
export IFS=$'\n'
|
||||
for i in $(find "$top_dir" -type f \( -iname "*.mp4" \) | sort -f);
|
||||
do
|
||||
filename="${i}"
|
||||
echo "screencapturing: ${filename}"
|
||||
# Uncomment the following line to actually run screencapture.py
|
||||
screencapture.py "${filename}"
|
||||
done
|
||||
|
||||
26
bin/wsl/ff169-to-43.sh
Executable file
26
bin/wsl/ff169-to-43.sh
Executable file
@@ -0,0 +1,26 @@
|
||||
#!/bin/bash
|
||||
MAX_WIDTH=960
|
||||
MAX_HEIGHT=540
|
||||
|
||||
date
|
||||
export IFS=$'\n';
|
||||
for i in $(find . -maxdepth 1 -type f \( -iname "*.mpg" -o -iname "*.vob" -o -iname "*.m4v" -o -iname "*.mov" -o -iname "*.avi" -o -iname "*.mp4" -o -iname "*.wmv" -o -iname "*.flv" -o -iname "*.mpeg" -o -iname "*.mkv" -o -iname "*.mov" \) | grep -v mobile);
|
||||
do
|
||||
echo "Will convert to: ${i:2}_mobile.mp4";
|
||||
done
|
||||
echo " "
|
||||
echo " "
|
||||
|
||||
for i in $(find . -maxdepth 1 -type f \( -iname "*.mpg" -o -iname "*.vob" -o -iname "*.m4v" -o -iname "*.mov" -o -iname "*.avi" -o -iname "*.mp4" -o -iname "*.wmv" -o -iname "*.flv" -o -iname "*.mpeg" -o -iname "*.mkv" -o -iname "*.mov" \) | grep -v mobile);
|
||||
do
|
||||
echo "Resizing: ${i:2} ";\
|
||||
|
||||
ffmpeg -i ${i:2} -aspect "4:3" -acodec aac -b:v 3.8M -vcodec libx264 -g 30 ${i:2}_mobile.mp4
|
||||
|
||||
# ffmpeg -i temp.mp4 -pix_fmt yuv420p -c:v libx264 -b:v 3.8M \
|
||||
# -vf scale="iw*sar*min($MAX_WIDTH/(iw*sar)\,$MAX_HEIGHT/ih):ih*min($MAX_WIDTH/(iw*sar)\,$MAX_HEIGHT/ih),pad=$MAX_WIDTH:$MAX_HEIGHT:(ow-iw)/2:(oh-ih)/2,setsar=1/1" \
|
||||
# -r:v 29/1 -force_fps -movflags +faststart -threads 0 -c:a aac -b:a 10k -f mp4 -y ${i:2}_mobile.mp4
|
||||
|
||||
# rm temp.mp4
|
||||
done
|
||||
date
|
||||
26
bin/wsl/ff43-to-169.sh
Executable file
26
bin/wsl/ff43-to-169.sh
Executable file
@@ -0,0 +1,26 @@
|
||||
#!/bin/bash
|
||||
MAX_WIDTH=960
|
||||
MAX_HEIGHT=540
|
||||
|
||||
date
|
||||
export IFS=$'\n';
|
||||
for i in $(find . -maxdepth 1 -type f \( -iname "*.mpg" -o -iname "*.vob" -o -iname "*.m4v" -o -iname "*.mov" -o -iname "*.avi" -o -iname "*.mp4" -o -iname "*.wmv" -o -iname "*.flv" -o -iname "*.mpeg" -o -iname "*.mkv" -o -iname "*.mov" \) | grep -v mobile);
|
||||
do
|
||||
echo "Will convert to: ${i:2}_mobile.mp4";
|
||||
done
|
||||
echo " "
|
||||
echo " "
|
||||
|
||||
for i in $(find . -maxdepth 1 -type f \( -iname "*.mpg" -o -iname "*.vob" -o -iname "*.m4v" -o -iname "*.mov" -o -iname "*.avi" -o -iname "*.mp4" -o -iname "*.wmv" -o -iname "*.flv" -o -iname "*.mpeg" -o -iname "*.mkv" -o -iname "*.mov" \) | grep -v mobile);
|
||||
do
|
||||
echo "Resizing: ${i:2} ";\
|
||||
|
||||
ffmpeg -i ${i:2} -aspect "16:9" -acodec aac -vcodec libx264 -g 30 ${i:2}_mobile.mp4
|
||||
|
||||
#ffmpeg -i temp.mp4 -pix_fmt yuv420p -c:v libx264 -b:v 1.8M \
|
||||
# -vf scale="iw*sar*min($MAX_WIDTH/(iw*sar)\,$MAX_HEIGHT/ih):ih*min($MAX_WIDTH/(iw*sar)\,$MAX_HEIGHT/ih),pad=$MAX_WIDTH:$MAX_HEIGHT:(ow-iw)/2:(oh-ih)/2,setsar=1/1" \
|
||||
# -r:v 29/1 -force_fps -movflags +faststart -threads 0 -c:a aac -b:a 10k -f mp4 -y ${i:2}_mobile.mp4
|
||||
|
||||
# rm temp.mp4
|
||||
done
|
||||
date
|
||||
51
bin/wsl/fflarge-pick_bitrate.sh
Executable file
51
bin/wsl/fflarge-pick_bitrate.sh
Executable file
@@ -0,0 +1,51 @@
|
||||
#!/bin/bash
|
||||
MAX_WIDTH=1920
|
||||
MAX_HEIGHT=1080
|
||||
|
||||
read -p "Which bit-rate in MB? " thismb
|
||||
read -p "Want a notify? " notifyval
|
||||
|
||||
date
|
||||
export IFS=$'\n';
|
||||
for i in $(find . -maxdepth 1 -type f \( -iname "*.mpg" -o -iname "*.vob" -o -iname "*.m4v" -o -iname "*.mov" -o -iname "*.avi" -o -iname "*.mp4" -o -iname "*.wmv" -o -iname "*.flv" -o -iname "*.rmvb" -o -iname "*.mpeg" -o -iname "*.mkv" -o -iname "*.mov" \) | grep -v mobile | sort -f);
|
||||
do
|
||||
|
||||
filename=`echo ${i:2}`
|
||||
ext=`echo ${filename} | awk -F. '{print "."$NF}'`
|
||||
fn_noext=`basename "${filename}" $ext`
|
||||
if [ $ext == ".mp4" ]; then
|
||||
ext=`echo "_mobile.mp4"`
|
||||
else
|
||||
ext=`echo "_mobile.mp4"`
|
||||
fi
|
||||
|
||||
echo "Will convert to: ${fn_noext}${ext}";
|
||||
|
||||
done
|
||||
echo " "
|
||||
echo " "
|
||||
|
||||
for i in $(find . -maxdepth 1 -type f \( -iname "*.mpg" -o -iname "*.vob" -o -iname "*.m4v" -o -iname "*.mov" -o -iname "*.avi" -o -iname "*.mp4" -o -iname "*.wmv" -o -iname "*.flv" -o -iname "*.rmvb" -o -iname "*.mpeg" -o -iname "*.mkv" -o -iname "*.mov" \) | grep -v mobile | sort -f);
|
||||
do
|
||||
|
||||
filename=`echo ${i:2}`
|
||||
ext=`echo ${filename} | awk -F. '{print "."$NF}'`
|
||||
fn_noext=`basename "${filename}" $ext`
|
||||
if [ $ext == ".mp4" ]; then
|
||||
ext=`echo "_mobile.mp4"`
|
||||
else
|
||||
ext=`echo "_mobile.mp4"`
|
||||
fi
|
||||
|
||||
echo "Resizing: ${i:2} ";\
|
||||
ffmpeg -i ${i:2} -pix_fmt yuv420p -c:v libx264 -b:v ${thismb}M \
|
||||
-vf scale="iw*sar*min($MAX_WIDTH/(iw*sar)\,$MAX_HEIGHT/ih):ih*min($MAX_WIDTH/(iw*sar)\,$MAX_HEIGHT/ih),pad=$MAX_WIDTH:$MAX_HEIGHT:(ow-iw)/2:(oh-ih)/2,setsar=1/1" \
|
||||
-r:v 59/1 -force_fps -movflags +faststart -threads 0 -c:a aac -b:a 10k -f mp4 -g 118 -y ${fn_noext}${ext}
|
||||
date
|
||||
done
|
||||
|
||||
|
||||
if [[ ( -n ${notifyval} ) ]]; then
|
||||
ntfy -b pushover -o user_key useV3kis7G1EsecHhyDprNeywH72or -t 'From laptop.' send "ff job done."
|
||||
fi
|
||||
|
||||
53
bin/wsl/fflarge.sh
Executable file
53
bin/wsl/fflarge.sh
Executable file
@@ -0,0 +1,53 @@
|
||||
#!/bin/bash
|
||||
MAX_WIDTH=1920
|
||||
MAX_HEIGHT=1080
|
||||
|
||||
|
||||
date
|
||||
export IFS=$'\n';
|
||||
for i in $(find . -maxdepth 1 -type f \( -iname "*.mpg" -o -iname "*.vob" -o -iname "*.m4v" -o -iname "*.mov" -o -iname "*.avi" -o -iname "*.mp4" -o -iname "*.wmv" -o -iname "*.flv" -o -iname "*.rmvb" -o -iname "*.mpeg" -o -iname "*.mkv" -o -iname "*.mov" \) | grep -v mobile | sort -f);
|
||||
do
|
||||
|
||||
filename=`echo ${i:2}`
|
||||
ext=`echo ${filename} | awk -F. '{print "."$NF}'`
|
||||
fn_noext=`basename "${filename}" $ext`
|
||||
if [ $ext == ".mp4" ]; then
|
||||
ext=`echo "_mobile.mp4"`
|
||||
else
|
||||
ext=`echo "_mobile.mp4"`
|
||||
fi
|
||||
|
||||
echo "Will convert to: ${fn_noext}${ext}";
|
||||
|
||||
done
|
||||
echo " "
|
||||
echo " "
|
||||
|
||||
for i in $(find . -maxdepth 1 -type f \( -iname "*.mpg" -o -iname "*.vob" -o -iname "*.m4v" -o -iname "*.mov" -o -iname "*.avi" -o -iname "*.mp4" -o -iname "*.wmv" -o -iname "*.flv" -o -iname "*.rmvb" -o -iname "*.mpeg" -o -iname "*.mkv" -o -iname "*.mov" \) | grep -v mobile | sort -f);
|
||||
do
|
||||
|
||||
filename=`echo ${i:2}`
|
||||
ext=`echo ${filename} | awk -F. '{print "."$NF}'`
|
||||
fn_noext=`basename "${filename}" $ext`
|
||||
if [ $ext == ".mp4" ]; then
|
||||
ext=`echo "_mobile.mp4"`
|
||||
else
|
||||
ext=`echo "_mobile.mp4"`
|
||||
fi
|
||||
|
||||
bitrate=`ffmpeg -i ${i:2} 2>&1 | egrep 'Video:' | grep -Po '[[:digit:]]+ kb/s' | cut -d ' ' -f 1`
|
||||
echo "Found bitrate: ${bitrate} kb/s";
|
||||
if [ "${bitrate}" == "0" ] || [ -z ${bitrate} ]; then
|
||||
bitrate=`echo "8000"`
|
||||
fi
|
||||
|
||||
echo "--> Final bitrate: ${bitrate} kb/s";
|
||||
|
||||
echo "Resizing: ${i:2} ";\
|
||||
ffmpeg -i ${i:2} -pix_fmt yuv420p -c:v libx264 -b:v ${bitrate}k \
|
||||
-vf scale="iw*sar*min($MAX_WIDTH/(iw*sar)\,$MAX_HEIGHT/ih):ih*min($MAX_WIDTH/(iw*sar)\,$MAX_HEIGHT/ih),pad=$MAX_WIDTH:$MAX_HEIGHT:(ow-iw)/2:(oh-ih)/2,setsar=1/1" \
|
||||
-r:v 29/1 -force_fps -movflags +faststart -threads 0 -c:a aac -b:a 10k -f mp4 -g 30 -y ${fn_noext}${ext}
|
||||
date
|
||||
done
|
||||
|
||||
|
||||
50
bin/wsl/fflarge_60fps.sh
Executable file
50
bin/wsl/fflarge_60fps.sh
Executable file
@@ -0,0 +1,50 @@
|
||||
#!/bin/bash
|
||||
MAX_WIDTH=1920
|
||||
MAX_HEIGHT=1080
|
||||
|
||||
read -p "Want a notify when done? " notifyval
|
||||
|
||||
date
|
||||
export IFS=$'\n';
|
||||
for i in $(find . -maxdepth 1 -type f \( -iname "*.mpg" -o -iname "*.vob" -o -iname "*.m4v" -o -iname "*.mov" -o -iname "*.avi" -o -iname "*.mp4" -o -iname "*.wmv" -o -iname "*.flv" -o -iname "*.rmvb" -o -iname "*.mpeg" -o -iname "*.mkv" -o -iname "*.mov" \) | grep -v mobile);
|
||||
do
|
||||
|
||||
filename=`echo ${i:2}`
|
||||
ext=`echo ${filename} | awk -F. '{print "."$NF}'`
|
||||
fn_noext=`basename "${filename}" $ext`
|
||||
if [ $ext == ".mp4" ]; then
|
||||
ext=`echo "_mobile.mp4"`
|
||||
else
|
||||
ext=`echo "_mobile.mp4"`
|
||||
fi
|
||||
|
||||
echo "Will convert to: ${fn_noext}${ext}";
|
||||
|
||||
done
|
||||
echo " "
|
||||
echo " "
|
||||
|
||||
for i in $(find . -maxdepth 1 -type f \( -iname "*.mpg" -o -iname "*.vob" -o -iname "*.m4v" -o -iname "*.mov" -o -iname "*.avi" -o -iname "*.mp4" -o -iname "*.wmv" -o -iname "*.flv" -o -iname "*.rmvb" -o -iname "*.mpeg" -o -iname "*.mkv" -o -iname "*.mov" \) | grep -v mobile);
|
||||
do
|
||||
|
||||
filename=`echo ${i:2}`
|
||||
ext=`echo ${filename} | awk -F. '{print "."$NF}'`
|
||||
fn_noext=`basename "${filename}" $ext`
|
||||
if [ $ext == ".mp4" ]; then
|
||||
ext=`echo "_mobile.mp4"`
|
||||
else
|
||||
ext=`echo "_mobile.mp4"`
|
||||
fi
|
||||
|
||||
echo "Resizing: ${i:2} ";\
|
||||
ffmpeg -i ${i:2} -pix_fmt yuv420p -c:v libx264 -b:v 10M \
|
||||
-vf scale="iw*sar*min($MAX_WIDTH/(iw*sar)\,$MAX_HEIGHT/ih):ih*min($MAX_WIDTH/(iw*sar)\,$MAX_HEIGHT/ih),pad=$MAX_WIDTH:$MAX_HEIGHT:(ow-iw)/2:(oh-ih)/2,setsar=1/1" \
|
||||
-r:v 59/1 -force_fps -movflags +faststart -threads 0 -c:a aac -b:a 10k -f mp4 -g 118 -y ${fn_noext}${ext}
|
||||
date
|
||||
done
|
||||
|
||||
|
||||
if [[ ( -n ${notifyval} ) ]]; then
|
||||
ntfy -b pushover -o user_key useV3kis7G1EsecHhyDprNeywH72or -t 'From laptop.' send "ff job done."
|
||||
fi
|
||||
|
||||
53
bin/wsl/ffmedium.sh
Executable file
53
bin/wsl/ffmedium.sh
Executable file
@@ -0,0 +1,53 @@
|
||||
#!/bin/bash
|
||||
MAX_WIDTH=1280
|
||||
MAX_HEIGHT=720
|
||||
|
||||
|
||||
date
|
||||
export IFS=$'\n';
|
||||
for i in $(find . -maxdepth 1 -type f \( -iname "*.mpg" -o -iname "*.vob" -o -iname "*.m4v" -o -iname "*.mov" -o -iname "*.avi" -o -iname "*.mp4" -o -iname "*.wmv" -o -iname "*.flv" -o -iname "*.rmvb" -o -iname "*.mpeg" -o -iname "*.mkv" -o -iname "*.mov" \) | grep -v mobile | sort -f);
|
||||
do
|
||||
|
||||
filename=`echo ${i:2}`
|
||||
ext=`echo ${filename} | awk -F. '{print "."$NF}'`
|
||||
fn_noext=`basename "${filename}" $ext`
|
||||
if [ $ext == ".mp4" ]; then
|
||||
ext=`echo "_mobile.mp4"`
|
||||
else
|
||||
ext=`echo "_mobile.mp4"`
|
||||
fi
|
||||
|
||||
echo "Will convert to: ${fn_noext}${ext}";
|
||||
|
||||
done
|
||||
echo " "
|
||||
echo " "
|
||||
|
||||
for i in $(find . -maxdepth 1 -type f \( -iname "*.mpg" -o -iname "*.vob" -o -iname "*.m4v" -o -iname "*.mov" -o -iname "*.avi" -o -iname "*.mp4" -o -iname "*.wmv" -o -iname "*.flv" -o -iname "*.rmvb" -o -iname "*.mpeg" -o -iname "*.mkv" -o -iname "*.mov" \) | grep -v mobile | sort -f);
|
||||
do
|
||||
|
||||
filename=`echo ${i:2}`
|
||||
ext=`echo ${filename} | awk -F. '{print "."$NF}'`
|
||||
fn_noext=`basename "${filename}" $ext`
|
||||
if [ $ext == ".mp4" ]; then
|
||||
ext=`echo "_mobile.mp4"`
|
||||
else
|
||||
ext=`echo "_mobile.mp4"`
|
||||
fi
|
||||
|
||||
# bitrate=`ffmpeg -i ${i:2} 2>&1 | egrep 'Video:' | grep -Po '[[:digit:]]+ kb/s' | cut -d ' ' -f 1`
|
||||
# echo "Found bitrate: ${bitrate} kb/s";
|
||||
if [ "${bitrate}" == "0" ] || [ -z ${bitrate} ]; then
|
||||
bitrate=`echo "4000"`
|
||||
fi
|
||||
|
||||
echo "--> Final bitrate: ${bitrate} kb/s";
|
||||
|
||||
echo "Resizing: ${i:2} ";\
|
||||
ffmpeg -i ${i:2} -pix_fmt yuv420p -c:v libx264 -b:v ${bitrate}k \
|
||||
-vf scale="iw*sar*min($MAX_WIDTH/(iw*sar)\,$MAX_HEIGHT/ih):ih*min($MAX_WIDTH/(iw*sar)\,$MAX_HEIGHT/ih),pad=$MAX_WIDTH:$MAX_HEIGHT:(ow-iw)/2:(oh-ih)/2,setsar=1/1" \
|
||||
-r:v 29/1 -force_fps -movflags +faststart -threads 0 -c:a aac -b:a 28k -f mp4 -g 30 -y ${fn_noext}${ext}
|
||||
date
|
||||
done
|
||||
|
||||
|
||||
50
bin/wsl/ffmedium_60fps.sh
Executable file
50
bin/wsl/ffmedium_60fps.sh
Executable file
@@ -0,0 +1,50 @@
|
||||
#!/bin/bash
|
||||
MAX_WIDTH=1280
|
||||
MAX_HEIGHT=720
|
||||
|
||||
read -p "Want a notify when done? " notifyval
|
||||
|
||||
date
|
||||
export IFS=$'\n';
|
||||
for i in $(find . -maxdepth 1 -type f \( -iname "*.mpg" -o -iname "*.vob" -o -iname "*.m4v" -o -iname "*.mov" -o -iname "*.avi" -o -iname "*.mp4" -o -iname "*.wmv" -o -iname "*.flv" -o -iname "*.rmvb" -o -iname "*.mpeg" -o -iname "*.mkv" -o -iname "*.mov" \) | grep -v mobile);
|
||||
do
|
||||
|
||||
filename=`echo ${i:2}`
|
||||
ext=`echo ${filename} | awk -F. '{print "."$NF}'`
|
||||
fn_noext=`basename "${filename}" $ext`
|
||||
if [ $ext == ".mp4" ]; then
|
||||
ext=`echo "_mobile.mp4"`
|
||||
else
|
||||
ext=`echo "_mobile.mp4"`
|
||||
fi
|
||||
|
||||
echo "Will convert to: ${fn_noext}${ext}";
|
||||
|
||||
done
|
||||
echo " "
|
||||
echo " "
|
||||
|
||||
for i in $(find . -maxdepth 1 -type f \( -iname "*.mpg" -o -iname "*.vob" -o -iname "*.m4v" -o -iname "*.mov" -o -iname "*.avi" -o -iname "*.mp4" -o -iname "*.wmv" -o -iname "*.flv" -o -iname "*.rmvb" -o -iname "*.mpeg" -o -iname "*.mkv" -o -iname "*.mov" \) | grep -v mobile);
|
||||
do
|
||||
|
||||
filename=`echo ${i:2}`
|
||||
ext=`echo ${filename} | awk -F. '{print "."$NF}'`
|
||||
fn_noext=`basename "${filename}" $ext`
|
||||
if [ $ext == ".mp4" ]; then
|
||||
ext=`echo "_mobile.mp4"`
|
||||
else
|
||||
ext=`echo "_mobile.mp4"`
|
||||
fi
|
||||
|
||||
echo "Resizing: ${i:2} ";\
|
||||
ffmpeg -i ${i:2} -pix_fmt yuv420p -c:v libx264 -b:v 2.8M \
|
||||
-vf scale="iw*sar*min($MAX_WIDTH/(iw*sar)\,$MAX_HEIGHT/ih):ih*min($MAX_WIDTH/(iw*sar)\,$MAX_HEIGHT/ih),pad=$MAX_WIDTH:$MAX_HEIGHT:(ow-iw)/2:(oh-ih)/2,setsar=1/1" \
|
||||
-r:v 59/1 -force_fps -movflags +faststart -threads 0 -c:a aac -b:a 10k -f mp4 -g 118 -y ${fn_noext}${ext}
|
||||
date
|
||||
done
|
||||
|
||||
|
||||
if [[ ( -n ${notifyval} ) ]]; then
|
||||
ntfy -b pushover -o user_key useV3kis7G1EsecHhyDprNeywH72or -t 'From laptop.' send "ff job done."
|
||||
fi
|
||||
|
||||
53
bin/wsl/ffmedium_noaudio.sh
Executable file
53
bin/wsl/ffmedium_noaudio.sh
Executable file
@@ -0,0 +1,53 @@
|
||||
#!/bin/bash
|
||||
MAX_WIDTH=1280
|
||||
MAX_HEIGHT=720
|
||||
|
||||
|
||||
date
|
||||
export IFS=$'\n';
|
||||
for i in $(find . -maxdepth 1 -type f \( -iname "*.mpg" -o -iname "*.vob" -o -iname "*.m4v" -o -iname "*.mov" -o -iname "*.avi" -o -iname "*.mp4" -o -iname "*.wmv" -o -iname "*.flv" -o -iname "*.rmvb" -o -iname "*.mpeg" -o -iname "*.mkv" -o -iname "*.mov" \) | grep -v mobile | sort -f);
|
||||
do
|
||||
|
||||
filename=`echo ${i:2}`
|
||||
ext=`echo ${filename} | awk -F. '{print "."$NF}'`
|
||||
fn_noext=`basename "${filename}" $ext`
|
||||
if [ $ext == ".mp4" ]; then
|
||||
ext=`echo "_mobile.mp4"`
|
||||
else
|
||||
ext=`echo "_mobile.mp4"`
|
||||
fi
|
||||
|
||||
echo "Will convert to: ${fn_noext}${ext}";
|
||||
|
||||
done
|
||||
echo " "
|
||||
echo " "
|
||||
|
||||
for i in $(find . -maxdepth 1 -type f \( -iname "*.mpg" -o -iname "*.vob" -o -iname "*.m4v" -o -iname "*.mov" -o -iname "*.avi" -o -iname "*.mp4" -o -iname "*.wmv" -o -iname "*.flv" -o -iname "*.rmvb" -o -iname "*.mpeg" -o -iname "*.mkv" -o -iname "*.mov" \) | grep -v mobile | sort -f);
|
||||
do
|
||||
|
||||
filename=`echo ${i:2}`
|
||||
ext=`echo ${filename} | awk -F. '{print "."$NF}'`
|
||||
fn_noext=`basename "${filename}" $ext`
|
||||
if [ $ext == ".mp4" ]; then
|
||||
ext=`echo "_mobile.mp4"`
|
||||
else
|
||||
ext=`echo "_mobile.mp4"`
|
||||
fi
|
||||
|
||||
# bitrate=`ffmpeg -i ${i:2} 2>&1 | egrep 'Video:' | grep -Po '[[:digit:]]+ kb/s' | cut -d ' ' -f 1`
|
||||
# echo "Found bitrate: ${bitrate} kb/s";
|
||||
if [ "${bitrate}" == "0" ] || [ -z ${bitrate} ]; then
|
||||
bitrate=`echo "4000"`
|
||||
fi
|
||||
|
||||
echo "--> Final bitrate: ${bitrate} kb/s";
|
||||
|
||||
echo "Resizing: ${i:2} ";\
|
||||
ffmpeg -i ${i:2} -pix_fmt yuv420p -c:v libx264 -b:v ${bitrate}k \
|
||||
-vf scale="iw*sar*min($MAX_WIDTH/(iw*sar)\,$MAX_HEIGHT/ih):ih*min($MAX_WIDTH/(iw*sar)\,$MAX_HEIGHT/ih),pad=$MAX_WIDTH:$MAX_HEIGHT:(ow-iw)/2:(oh-ih)/2,setsar=1/1" \
|
||||
-r:v 29/1 -force_fps -movflags +faststart -threads 0 -c:a aac -an -f mp4 -g 30 -y ${fn_noext}${ext}
|
||||
date
|
||||
done
|
||||
|
||||
|
||||
11
bin/wsl/ffmerge.sh
Executable file
11
bin/wsl/ffmerge.sh
Executable file
@@ -0,0 +1,11 @@
|
||||
#!/bin/bash
|
||||
|
||||
rm mylist.txt
|
||||
rm merged.mp4
|
||||
touch merged.mp4
|
||||
rm merged.mp4
|
||||
#listfiles=`ls -cr *.mp4`
|
||||
listfiles=`ls *.mp4 *.m4v *.mkv`
|
||||
|
||||
for f in $listfiles; do echo "file '$f' " >> mylist.txt; done
|
||||
ffmpeg -safe 0 -f concat -i mylist.txt -c copy -y merged.mp4
|
||||
53
bin/wsl/ffresize.sh
Executable file
53
bin/wsl/ffresize.sh
Executable file
@@ -0,0 +1,53 @@
|
||||
#!/bin/bash
|
||||
MAX_WIDTH=960
|
||||
MAX_HEIGHT=540
|
||||
|
||||
|
||||
date
|
||||
export IFS=$'\n';
|
||||
for i in $(find . -maxdepth 1 -type f \( -iname "*.mpg" -o -iname "*.vob" -o -iname "*.m4v" -o -iname "*.mov" -o -iname "*.avi" -o -iname "*.mp4" -o -iname "*.wmv" -o -iname "*.flv" -o -iname "*.rmvb" -o -iname "*.mpeg" -o -iname "*.mkv" -o -iname "*.mov" \) | grep -v mobile | sort -f);
|
||||
do
|
||||
|
||||
filename=`echo ${i:2}`
|
||||
ext=`echo ${filename} | awk -F. '{print "."$NF}'`
|
||||
fn_noext=`basename "${filename}" $ext`
|
||||
if [ $ext == ".mp4" ]; then
|
||||
ext=`echo "_mobile.mp4"`
|
||||
else
|
||||
ext=`echo "_mobile.mp4"`
|
||||
fi
|
||||
|
||||
echo "Will convert to: ${fn_noext}${ext}";
|
||||
|
||||
done
|
||||
echo " "
|
||||
echo " "
|
||||
|
||||
for i in $(find . -maxdepth 1 -type f \( -iname "*.mpg" -o -iname "*.vob" -o -iname "*.m4v" -o -iname "*.mov" -o -iname "*.avi" -o -iname "*.mp4" -o -iname "*.wmv" -o -iname "*.flv" -o -iname "*.rmvb" -o -iname "*.mpeg" -o -iname "*.mkv" -o -iname "*.mov" \) | grep -v mobile | sort -f);
|
||||
do
|
||||
|
||||
filename=`echo ${i:2}`
|
||||
ext=`echo ${filename} | awk -F. '{print "."$NF}'`
|
||||
fn_noext=`basename "${filename}" $ext`
|
||||
if [ $ext == ".mp4" ]; then
|
||||
ext=`echo "_mobile.mp4"`
|
||||
else
|
||||
ext=`echo "_mobile.mp4"`
|
||||
fi
|
||||
|
||||
bitrate=`ffmpeg -i ${i:2} 2>&1 | egrep 'Video:' | grep -Po '[[:digit:]]+ kb/s' | cut -d ' ' -f 1`
|
||||
echo "Found bitrate: ${bitrate} kb/s";
|
||||
if [ "${bitrate}" == "0" ] || [ -z ${bitrate} ]; then
|
||||
bitrate=`echo "2700"`
|
||||
fi
|
||||
|
||||
echo "--> Final bitrate: ${bitrate} kb/s";
|
||||
|
||||
echo "Resizing: ${i:2} ";\
|
||||
ffmpeg -i ${i:2} -pix_fmt yuv420p -c:v libx264 -b:v ${bitrate}k \
|
||||
-vf scale="iw*sar*min($MAX_WIDTH/(iw*sar)\,$MAX_HEIGHT/ih):ih*min($MAX_WIDTH/(iw*sar)\,$MAX_HEIGHT/ih),pad=$MAX_WIDTH:$MAX_HEIGHT:(ow-iw)/2:(oh-ih)/2,setsar=1/1" \
|
||||
-r:v 29/1 -force_fps -movflags +faststart -threads 0 -c:a aac -b:a 160k -f mp4 -g 30 -y ${fn_noext}${ext}
|
||||
date
|
||||
done
|
||||
|
||||
|
||||
48
bin/wsl/ffrmaudio.sh
Executable file
48
bin/wsl/ffrmaudio.sh
Executable file
@@ -0,0 +1,48 @@
|
||||
#!/bin/bash
|
||||
MAX_WIDTH=960
|
||||
MAX_HEIGHT=540
|
||||
|
||||
date
|
||||
export IFS=$'\n';
|
||||
for i in $(find . -maxdepth 1 -type f \( -iname "*.mpg" -o -iname "*.vob" -o -iname "*.m4v" -o -iname "*.mov" -o -iname "*.avi" -o -iname "*.mp4" -o -iname "*.wmv" -o -iname "*.flv" -o -iname "*.mpeg" -o -iname "*.mkv" -o -iname "*.mov" \) | grep -v mobile);
|
||||
do
|
||||
filename=`echo ${i:2}`
|
||||
ext=`echo ${filename} | awk -F. '{print "."$NF}'`
|
||||
fn_noext=`basename "${filename}" $ext`
|
||||
if [ $ext == ".mp4" ]; then
|
||||
ext=`echo "_mobile.mp4"`
|
||||
else
|
||||
ext=`echo "_mobile.mp4"`
|
||||
fi
|
||||
|
||||
echo "Will remove audio : ${fn_noext}${ext}";
|
||||
|
||||
done
|
||||
echo " "
|
||||
echo " "
|
||||
|
||||
for i in $(find . -maxdepth 1 -type f \( -iname "*.mpg" -o -iname "*.vob" -o -iname "*.ts" -o -iname "*.m4v" -o -iname "*.mov" -o -iname "*.avi" -o -iname "*.mp4" -o -iname "*.wmv" -o -iname "*.flv" -o -iname "*.mpeg" -o -iname "*.mkv" -o -iname "*.mov" \) | grep -v mobile);
|
||||
do
|
||||
|
||||
filename=`echo ${i:2}`
|
||||
ext=`echo ${filename} | awk -F. '{print "."$NF}'`
|
||||
fn_noext=`basename "${filename}" $ext`
|
||||
if [ $ext == ".mp4" ]; then
|
||||
ext=`echo "_mobile.mp4"`
|
||||
else
|
||||
ext=`echo "_mobile.mp4"`
|
||||
fi
|
||||
|
||||
echo "Removing audio: ${i:2} ";\
|
||||
|
||||
ffmpeg -i ${i:2} \
|
||||
-threads 0 -c:v copy -an -f mp4 -y ${fn_noext}${ext}
|
||||
|
||||
# ffmpeg -i ${i:2} -pix_fmt yuv420p -c:v libx264 -b:v 1.8M \
|
||||
# -vf scale="iw*sar*min($MAX_WIDTH/(iw*sar)\,$MAX_HEIGHT/ih):ih*min($MAX_WIDTH/(iw*sar)\,$MAX_HEIGHT/ih),pad=$MAX_WIDTH:$MAX_HEIGHT:(ow-iw)/2:(oh-ih)/2,setsar=1/1" \
|
||||
# -vf "transpose=2,transpose=2" \
|
||||
# -r:v 29/1 -force_fps -movflags +faststart -threads 0 -c:a aac -b:a 10k -f mp4 -y ${fn_noext}${ext}
|
||||
|
||||
date
|
||||
done
|
||||
|
||||
46
bin/wsl/ffrotate180-resize.sh
Executable file
46
bin/wsl/ffrotate180-resize.sh
Executable file
@@ -0,0 +1,46 @@
|
||||
#!/bin/bash
|
||||
MAX_WIDTH=960
|
||||
MAX_HEIGHT=540
|
||||
|
||||
date
|
||||
export IFS=$'\n';
|
||||
for i in $(find . -maxdepth 1 -type f \( -iname "*.mpg" -o -iname "*.vob" -o -iname "*.m4v" -o -iname "*.mov" -o -iname "*.avi" -o -iname "*.mp4" -o -iname "*.wmv" -o -iname "*.flv" -o -iname "*.mpeg" -o -iname "*.mkv" -o -iname "*.mov" \) | grep -v mobile);
|
||||
do
|
||||
filename=`echo ${i:2}`
|
||||
ext=`echo ${filename} | awk -F. '{print "."$NF}'`
|
||||
fn_noext=`basename "${filename}" $ext`
|
||||
if [ $ext == ".mp4" ]; then
|
||||
ext=`echo "_mobile.mp4"`
|
||||
else
|
||||
ext=`echo "_mobile.mp4"`
|
||||
fi
|
||||
|
||||
echo "Will rotate and convert to: ${fn_noext}${ext}";
|
||||
|
||||
done
|
||||
echo " "
|
||||
echo " "
|
||||
|
||||
for i in $(find . -maxdepth 1 -type f \( -iname "*.mpg" -o -iname "*.vob" -o -iname "*.m4v" -o -iname "*.mov" -o -iname "*.avi" -o -iname "*.mp4" -o -iname "*.wmv" -o -iname "*.flv" -o -iname "*.mpeg" -o -iname "*.mkv" -o -iname "*.mov" \) | grep -v mobile);
|
||||
do
|
||||
|
||||
filename=`echo ${i:2}`
|
||||
ext=`echo ${filename} | awk -F. '{print "."$NF}'`
|
||||
fn_noext=`basename "${filename}" $ext`
|
||||
if [ $ext == ".mp4" ]; then
|
||||
ext=`echo "_mobile.mp4"`
|
||||
else
|
||||
ext=`echo "_mobile.mp4"`
|
||||
fi
|
||||
|
||||
echo "Flipping: ${i:2} ";\
|
||||
|
||||
|
||||
ffmpeg -i ${i:2} -pix_fmt yuv420p -c:v libx264 -b:v 1.8M \
|
||||
-vf scale="iw*sar*min($MAX_WIDTH/(iw*sar)\,$MAX_HEIGHT/ih):ih*min($MAX_WIDTH/(iw*sar)\,$MAX_HEIGHT/ih),pad=$MAX_WIDTH:$MAX_HEIGHT:(ow-iw)/2:(oh-ih)/2,setsar=1/1" \
|
||||
-vf "transpose=2,transpose=2" \
|
||||
-r:v 29/1 -force_fps -movflags +faststart -threads 0 -c:a aac -b:a 10k -f mp4 -g 30 -y ${fn_noext}${ext}
|
||||
|
||||
date
|
||||
done
|
||||
|
||||
49
bin/wsl/ffrotate180.sh
Executable file
49
bin/wsl/ffrotate180.sh
Executable file
@@ -0,0 +1,49 @@
|
||||
#!/bin/bash
|
||||
MAX_WIDTH=960
|
||||
MAX_HEIGHT=540
|
||||
|
||||
date
|
||||
export IFS=$'\n';
|
||||
for i in $(find . -maxdepth 1 -type f \( -iname "*.mpg" -o -iname "*.vob" -o -iname "*.m4v" -o -iname "*.mov" -o -iname "*.avi" -o -iname "*.mp4" -o -iname "*.wmv" -o -iname "*.flv" -o -iname "*.mpeg" -o -iname "*.mkv" -o -iname "*.mov" \) | grep -v mobile);
|
||||
do
|
||||
filename=`echo ${i:2}`
|
||||
ext=`echo ${filename} | awk -F. '{print "."$NF}'`
|
||||
fn_noext=`basename "${filename}" $ext`
|
||||
if [ $ext == ".mp4" ]; then
|
||||
ext=`echo "_mobile.mp4"`
|
||||
else
|
||||
ext=`echo "_mobile.mp4"`
|
||||
fi
|
||||
|
||||
echo "Will rotate and convert to: ${fn_noext}${ext}";
|
||||
|
||||
done
|
||||
echo " "
|
||||
echo " "
|
||||
|
||||
for i in $(find . -maxdepth 1 -type f \( -iname "*.mpg" -o -iname "*.vob" -o -iname "*.m4v" -o -iname "*.mov" -o -iname "*.avi" -o -iname "*.mp4" -o -iname "*.wmv" -o -iname "*.flv" -o -iname "*.mpeg" -o -iname "*.mkv" -o -iname "*.mov" \) | grep -v mobile);
|
||||
do
|
||||
|
||||
filename=`echo ${i:2}`
|
||||
ext=`echo ${filename} | awk -F. '{print "."$NF}'`
|
||||
fn_noext=`basename "${filename}" $ext`
|
||||
if [ $ext == ".mp4" ]; then
|
||||
ext=`echo "_mobile.mp4"`
|
||||
else
|
||||
ext=`echo "_mobile.mp4"`
|
||||
fi
|
||||
|
||||
echo "Flipping: ${i:2} ";\
|
||||
|
||||
ffmpeg -i ${i:2} \
|
||||
-vf "transpose=2,transpose=2" \
|
||||
-threads 0 -y ${fn_noext}${ext}
|
||||
|
||||
# ffmpeg -i ${i:2} -pix_fmt yuv420p -c:v libx264 -b:v 1.8M \
|
||||
# -vf scale="iw*sar*min($MAX_WIDTH/(iw*sar)\,$MAX_HEIGHT/ih):ih*min($MAX_WIDTH/(iw*sar)\,$MAX_HEIGHT/ih),pad=$MAX_WIDTH:$MAX_HEIGHT:(ow-iw)/2:(oh-ih)/2,setsar=1/1" \
|
||||
# -vf "transpose=2,transpose=2" \
|
||||
# -r:v 29/1 -force_fps -movflags +faststart -threads 0 -c:a aac -b:a 10k -f mp4 -y ${fn_noext}${ext}
|
||||
|
||||
date
|
||||
done
|
||||
|
||||
45
bin/wsl/ffrotate90-resize.sh
Executable file
45
bin/wsl/ffrotate90-resize.sh
Executable file
@@ -0,0 +1,45 @@
|
||||
#!/bin/bash
|
||||
MAX_WIDTH=960
|
||||
MAX_HEIGHT=540
|
||||
|
||||
date
|
||||
export IFS=$'\n';
|
||||
for i in $(find . -maxdepth 1 -type f \( -iname "*.mpg" -o -iname "*.vob" -o -iname "*.m4v" -o -iname "*.mov" -o -iname "*.avi" -o -iname "*.mp4" -o -iname "*.wmv" -o -iname "*.flv" -o -iname "*.mpeg" -o -iname "*.mkv" -o -iname "*.mov" \) | grep -v mobile);
|
||||
do
|
||||
filename=`echo ${i:2}`
|
||||
ext=`echo ${filename} | awk -F. '{print "."$NF}'`
|
||||
fn_noext=`basename "${filename}" $ext`
|
||||
if [ $ext == ".mp4" ]; then
|
||||
ext=`echo "_mobile.mp4"`
|
||||
else
|
||||
ext=`echo "_mobile.mp4"`
|
||||
fi
|
||||
|
||||
echo "Will rotate and convert to: ${fn_noext}${ext}";
|
||||
|
||||
done
|
||||
echo " "
|
||||
echo " "
|
||||
|
||||
for i in $(find . -maxdepth 1 -type f \( -iname "*.mpg" -o -iname "*.vob" -o -iname "*.m4v" -o -iname "*.mov" -o -iname "*.avi" -o -iname "*.mp4" -o -iname "*.wmv" -o -iname "*.flv" -o -iname "*.mpeg" -o -iname "*.mkv" -o -iname "*.mov" \) | grep -v mobile);
|
||||
do
|
||||
|
||||
filename=`echo ${i:2}`
|
||||
ext=`echo ${filename} | awk -F. '{print "."$NF}'`
|
||||
fn_noext=`basename "${filename}" $ext`
|
||||
if [ $ext == ".mp4" ]; then
|
||||
ext=`echo "_mobile.mp4"`
|
||||
else
|
||||
ext=`echo "_mobile.mp4"`
|
||||
fi
|
||||
|
||||
echo "Flipping: ${i:2} ";\
|
||||
|
||||
ffmpeg -i ${i:2} -pix_fmt yuv420p -c:v libx264 -b:v 1.8M \
|
||||
-vf scale="iw*sar*min($MAX_WIDTH/(iw*sar)\,$MAX_HEIGHT/ih):ih*min($MAX_WIDTH/(iw*sar)\,$MAX_HEIGHT/ih),pad=$MAX_WIDTH:$MAX_HEIGHT:(ow-iw)/2:(oh-ih)/2,setsar=1/1" \
|
||||
-vf "transpose=1" \
|
||||
-r:v 29/1 -force_fps -movflags +faststart -threads 0 -c:a aac -b:a 10k -f mp4 -g 30 -y ${fn_noext}${ext}
|
||||
|
||||
date
|
||||
done
|
||||
|
||||
45
bin/wsl/ffrotate90ccw-resize.sh
Executable file
45
bin/wsl/ffrotate90ccw-resize.sh
Executable file
@@ -0,0 +1,45 @@
|
||||
#!/bin/bash
|
||||
MAX_WIDTH=960
|
||||
MAX_HEIGHT=540
|
||||
|
||||
date
|
||||
export IFS=$'\n';
|
||||
for i in $(find . -maxdepth 1 -type f \( -iname "*.mpg" -o -iname "*.vob" -o -iname "*.m4v" -o -iname "*.mov" -o -iname "*.avi" -o -iname "*.mp4" -o -iname "*.wmv" -o -iname "*.flv" -o -iname "*.mpeg" -o -iname "*.mkv" -o -iname "*.mov" \) | grep -v mobile);
|
||||
do
|
||||
filename=`echo ${i:2}`
|
||||
ext=`echo ${filename} | awk -F. '{print "."$NF}'`
|
||||
fn_noext=`basename "${filename}" $ext`
|
||||
if [ $ext == ".mp4" ]; then
|
||||
ext=`echo "_mobile.mp4"`
|
||||
else
|
||||
ext=`echo "_mobile.mp4"`
|
||||
fi
|
||||
|
||||
echo "Will rotate and convert to: ${fn_noext}${ext}";
|
||||
|
||||
done
|
||||
echo " "
|
||||
echo " "
|
||||
|
||||
for i in $(find . -maxdepth 1 -type f \( -iname "*.mpg" -o -iname "*.vob" -o -iname "*.m4v" -o -iname "*.mov" -o -iname "*.avi" -o -iname "*.mp4" -o -iname "*.wmv" -o -iname "*.flv" -o -iname "*.mpeg" -o -iname "*.mkv" -o -iname "*.mov" \) | grep -v mobile);
|
||||
do
|
||||
|
||||
filename=`echo ${i:2}`
|
||||
ext=`echo ${filename} | awk -F. '{print "."$NF}'`
|
||||
fn_noext=`basename "${filename}" $ext`
|
||||
if [ $ext == ".mp4" ]; then
|
||||
ext=`echo "_mobile.mp4"`
|
||||
else
|
||||
ext=`echo "_mobile.mp4"`
|
||||
fi
|
||||
|
||||
echo "Flipping: ${i:2} ";\
|
||||
|
||||
ffmpeg -i ${i:2} -pix_fmt yuv420p -c:v libx264 -b:v 1.8M \
|
||||
-vf scale="iw*sar*min($MAX_WIDTH/(iw*sar)\,$MAX_HEIGHT/ih):ih*min($MAX_WIDTH/(iw*sar)\,$MAX_HEIGHT/ih),pad=$MAX_WIDTH:$MAX_HEIGHT:(ow-iw)/2:(oh-ih)/2,setsar=1/1" \
|
||||
-vf "transpose=2" \
|
||||
-r:v 29/1 -force_fps -movflags +faststart -threads 0 -c:a aac -b:a 10k -f mp4 -g 30 -y ${fn_noext}${ext}
|
||||
|
||||
date
|
||||
done
|
||||
|
||||
18
bin/wsl/ffslowdown2x.sh
Executable file
18
bin/wsl/ffslowdown2x.sh
Executable file
@@ -0,0 +1,18 @@
|
||||
#!/bin/bash
|
||||
|
||||
export IFS=$'\n';
|
||||
for i in $(find . -maxdepth 1 -type f \( -iname "*.mpg" -o -iname "*.vob" -o -iname "*.m4v" -o -iname "*.mov" -o -iname "*.avi" -o -iname "*.mp4" -o -iname "*.wmv" -o -iname "*.flv" -o -iname "*.mpeg" -o -iname "*.mkv" -o -iname "*.mov" \) );
|
||||
do
|
||||
echo "Will convert to: ${i:2}_2x.mp4";
|
||||
done
|
||||
echo " "
|
||||
echo " "
|
||||
|
||||
for i in $(find . -maxdepth 1 -type f \( -iname "*.mpg" -o -iname "*.vob" -o -iname "*.m4v" -o -iname "*.mov" -o -iname "*.avi" -o -iname "*.mp4" -o -iname "*.wmv" -o -iname "*.flv" -o -iname "*.mpeg" -o -iname "*.mkv" -o -iname "*.mov" \) );
|
||||
do
|
||||
echo "Speeding up .5x: ${i:2} ";\
|
||||
ffmpeg -i ${i:2} -r 30 -filter:v "setpts=2.0*PTS" -filter:a "atempo=0.5" ${i:2}_slow.mp4
|
||||
done
|
||||
exit 0
|
||||
done
|
||||
done
|
||||
18
bin/wsl/ffspeedup2x.sh
Executable file
18
bin/wsl/ffspeedup2x.sh
Executable file
@@ -0,0 +1,18 @@
|
||||
#!/bin/bash
|
||||
|
||||
export IFS=$'\n';
|
||||
for i in $(find . -maxdepth 1 -type f \( -iname "*.mpg" -o -iname "*.vob" -o -iname "*.m4v" -o -iname "*.mov" -o -iname "*.avi" -o -iname "*.mp4" -o -iname "*.wmv" -o -iname "*.flv" -o -iname "*.mpeg" -o -iname "*.mkv" -o -iname "*.mov" \) );
|
||||
do
|
||||
echo "Will convert to: ${i:2}_2x.mp4";
|
||||
done
|
||||
echo " "
|
||||
echo " "
|
||||
|
||||
for i in $(find . -maxdepth 1 -type f \( -iname "*.mpg" -o -iname "*.vob" -o -iname "*.m4v" -o -iname "*.mov" -o -iname "*.avi" -o -iname "*.mp4" -o -iname "*.wmv" -o -iname "*.flv" -o -iname "*.mpeg" -o -iname "*.mkv" -o -iname "*.mov" \) );
|
||||
do
|
||||
echo "Speeding up 2x: ${i:2} ";\
|
||||
ffmpeg -i ${i:2} -r 60 -filter:v "setpts=0.5*PTS" -filter:a "atempo=2.0" ${i:2}_2x.mp4
|
||||
done
|
||||
exit 0
|
||||
done
|
||||
done
|
||||
11
bin/wsl/find265media.sh
Executable file
11
bin/wsl/find265media.sh
Executable file
@@ -0,0 +1,11 @@
|
||||
#!/bin/sh
|
||||
echo "h265 media:"
|
||||
echo "--------------------"
|
||||
for i in `ls`
|
||||
do
|
||||
OUTPUT="$(ffmpeg -i $i 2>&1 | egrep ' hevc ')"
|
||||
if [ ! -z "$OUTPUT" ]; then
|
||||
echo " "
|
||||
echo $i
|
||||
fi
|
||||
done
|
||||
14
bin/wsl/find60fps.sh
Executable file
14
bin/wsl/find60fps.sh
Executable file
@@ -0,0 +1,14 @@
|
||||
#!/bin/sh
|
||||
echo "60fps media:"
|
||||
echo "--------------------"
|
||||
for i in `ls`
|
||||
do
|
||||
OUTPUT50=`ffmpeg -i $i 2>&1 | egrep '50 fps'`
|
||||
OUTPUT59=`ffmpeg -i $i 2>&1 | egrep '59 fps'`
|
||||
OUTPUT5994=`ffmpeg -i $i 2>&1 | egrep '59.94 fps'`
|
||||
OUTPUT60=`ffmpeg -i $i 2>&1 | egrep '60 fps'`
|
||||
if [[ ( -n "$OUTPUT50" ) || ( -n "$OUTPUT59" ) || ( -n "$OUTPUT5994" ) || ( -n "$OUTPUT60" ) ]]; then
|
||||
echo " "
|
||||
echo $i
|
||||
fi
|
||||
done
|
||||
48
bin/wsl/find_similar_videos.sh
Executable file
48
bin/wsl/find_similar_videos.sh
Executable file
@@ -0,0 +1,48 @@
|
||||
# Use the current working directory as the image directory
|
||||
IMAGE_DIR="."
|
||||
|
||||
# Get a list of all files in the directory
|
||||
files=("$IMAGE_DIR"/*.jpg)
|
||||
|
||||
# Calculate the total number of attempts
|
||||
num_files=${#files[@]}
|
||||
total_attempts=$((num_files * (num_files - 1) / 2))
|
||||
|
||||
# Calculate hours and minutes
|
||||
total_hours=$((total_attempts / 3600))
|
||||
total_minutes=$(( (total_attempts % 3600) / 60 ))
|
||||
|
||||
# Output the number of attempts and estimated time in hours and minutes
|
||||
echo "Total attempts to compare all files: $total_attempts"
|
||||
echo "Estimated time to complete (assuming 1 second per comparison): ${total_hours} hours and ${total_minutes} minutes"
|
||||
|
||||
echo
|
||||
echo
|
||||
|
||||
# Get a list of all files in the directory
|
||||
files=("$IMAGE_DIR"/*.jpg)
|
||||
|
||||
# Loop through each file by index
|
||||
x=0
|
||||
for ((i=0; i<${#files[@]}-1; i++)); do
|
||||
for ((j=i+1; j<${#files[@]}; j++)); do
|
||||
x=$((x + 1))
|
||||
# Compare files[i] with files[j]
|
||||
similar_images.py "${files[i]}" "${files[j]}"
|
||||
|
||||
# Calculate number of symbols based on x % 10
|
||||
mod_result=$((x % 10))
|
||||
# Determine whether to use * or o based on x being even or odd
|
||||
if (( x % 2 == 0 )); then
|
||||
symbol="*"
|
||||
else
|
||||
symbol="o"
|
||||
fi
|
||||
# Clear the line and print the symbols on the same line
|
||||
printf "\r"
|
||||
for ((k=0; k<mod_result; k++)); do
|
||||
printf "$symbol"
|
||||
done
|
||||
|
||||
done
|
||||
done
|
||||
15
bin/wsl/findlarge_media.sh
Executable file
15
bin/wsl/findlarge_media.sh
Executable file
@@ -0,0 +1,15 @@
|
||||
#!/bin/sh
|
||||
echo "Large 1440|1852|1920|2030|2048 media:"
|
||||
echo "--------------------"
|
||||
for i in `ls`
|
||||
do
|
||||
OUTPUT1440=`ffmpeg -i $i 2>&1 | egrep '1440x'`
|
||||
OUTPUT1852=`ffmpeg -i $i 2>&1 | egrep '1852x'`
|
||||
OUTPUT1920=`ffmpeg -i $i 2>&1 | egrep '1920x'`
|
||||
OUTPUT2030=`ffmpeg -i $i 2>&1 | egrep '2030x'`
|
||||
OUTPUT2048=`ffmpeg -i $i 2>&1 | egrep '2048x'`
|
||||
if [[ ( -n "$OUTPUT1440" ) || ( -n "$OUTPUT1852" ) || ( -n "$OUTPUT1920" ) || ( -n "$OUTPUT2030" ) || ( -n "$OUTPUT2048" ) ]]; then
|
||||
echo " "
|
||||
echo $i
|
||||
fi
|
||||
done
|
||||
12
bin/wsl/findmedium_media.sh
Executable file
12
bin/wsl/findmedium_media.sh
Executable file
@@ -0,0 +1,12 @@
|
||||
#!/bin/sh
|
||||
echo "Medium 1280|1440 media:"
|
||||
echo "--------------------"
|
||||
for i in `ls`
|
||||
do
|
||||
OUTPUT1280=`ffmpeg -i $i 2>&1 | egrep '1280x'`
|
||||
OUTPUT1440=`ffmpeg -i $i 2>&1 | egrep '1440x'`
|
||||
if [[ ( -n "$OUTPUT1280" ) || ( -n "$OUTPUT1440" ) ]]; then
|
||||
echo " "
|
||||
echo $i
|
||||
fi
|
||||
done
|
||||
12
bin/wsl/findnon_hcodec.sh
Executable file
12
bin/wsl/findnon_hcodec.sh
Executable file
@@ -0,0 +1,12 @@
|
||||
#!/bin/sh
|
||||
echo "Media to convert to h.264"
|
||||
echo "--------------------"
|
||||
for i in `ls`
|
||||
do
|
||||
OUTPUTh264=`ffmpeg -i $i 2>&1 | egrep 'h264'`
|
||||
OUTPUTh265=`ffmpeg -i $i 2>&1 | egrep 'hevc'`
|
||||
if [[ ( -z "$OUTPUTh264" ) && ( -z "$OUTPUTh265" ) ]]; then
|
||||
echo " "
|
||||
echo $i
|
||||
fi
|
||||
done
|
||||
5
bin/wsl/jpg2mp4.sh
Executable file
5
bin/wsl/jpg2mp4.sh
Executable file
@@ -0,0 +1,5 @@
|
||||
#!/bin/sh
|
||||
#ffmpeg -y -r 1/5 -f concat -safe 0 -i list.txt -c:v libx264 -vf "fps=25,scale=1920:1080,format=yuv420p" out.mp4
|
||||
|
||||
ffmpeg -framerate 1.5/1 -i %04d.jpg -r 30 -vf "scale=1920:1080:force_original_aspect_ratio=decrease,pad=1920:1080:(ow-iw)/2:(oh-ih)/2,format=yuv420p" -codec:v libx264 -y out.mp4
|
||||
|
||||
49
bin/wsl/lowersanitizefilenames.sh
Executable file
49
bin/wsl/lowersanitizefilenames.sh
Executable file
@@ -0,0 +1,49 @@
|
||||
#!/opt/homebrew/bin/bash
|
||||
#
|
||||
# x.sh — sanitize filenames: lowercase, replace non-alnum/dot with underscores,
|
||||
# collapse runs of underscores, trim, and never overwrite a *different* existing file.
|
||||
#
|
||||
shopt -s globstar
|
||||
SAVEIFS=$IFS
|
||||
IFS=$'\n' # only split on newlines
|
||||
|
||||
sanitize() {
|
||||
local name="$1"
|
||||
# 1) lowercase
|
||||
name="${name,,}"
|
||||
# 2) anything not a–z, 0–9, or dot → underscore
|
||||
name="${name//[^a-z0-9.]/_}"
|
||||
# 3) collapse multiple underscores → one underscore
|
||||
name="$(echo "$name" | sed -E 's/_+/_/g')"
|
||||
# 4) remove underscore adjacent to dots
|
||||
name="$(echo "$name" | sed -E 's/_\.|\._/./g')"
|
||||
# 5) trim leading/trailing underscores
|
||||
name="$(echo "$name" | sed -E 's/^_+|_+$//g')"
|
||||
printf '%s' "$name"
|
||||
}
|
||||
|
||||
export -f sanitize
|
||||
|
||||
# depth-first traversal so directories are renamed after their contents
|
||||
find . -depth -print0 | while IFS= read -r -d '' src; do
|
||||
dir=$(dirname "$src")
|
||||
base=$(basename "$src")
|
||||
dst=$(sanitize "$base")
|
||||
|
||||
if [[ "$base" != "$dst" ]]; then
|
||||
target="$dir/$dst"
|
||||
if [[ -e "$target" ]]; then
|
||||
# If the only difference is case (macOS/APFS), allow it:
|
||||
if [[ "${src,,}" = "${target,,}" ]]; then
|
||||
mv -v "$src" "$target"
|
||||
else
|
||||
echo "Skipping: '$src' → '$target' (target exists)"
|
||||
fi
|
||||
else
|
||||
mv -v "$src" "$target"
|
||||
fi
|
||||
fi
|
||||
done
|
||||
|
||||
IFS=$SAVEIFS
|
||||
|
||||
16
bin/wsl/move_nonhcodec.sh
Executable file
16
bin/wsl/move_nonhcodec.sh
Executable file
@@ -0,0 +1,16 @@
|
||||
#!/bin/sh
|
||||
echo "Media to convert to h.264"
|
||||
echo "--------------------"
|
||||
for i in `ls`
|
||||
do
|
||||
OUTPUTh264=`ffmpeg -i $i 2>&1 | egrep 'h264'`
|
||||
OUTPUTh265=`ffmpeg -i $i 2>&1 | egrep 'hevc'`
|
||||
if [[ ( -z "$OUTPUTh264" ) && ( -z "$OUTPUTh265" ) ]]; then
|
||||
echo " "
|
||||
if [[ -f $i ]]; then
|
||||
echo "Moving $i"
|
||||
mkdir -p to_mp4
|
||||
mv $i to_mp4
|
||||
fi
|
||||
fi
|
||||
done
|
||||
4
bin/wsl/notify.sh
Executable file
4
bin/wsl/notify.sh
Executable file
@@ -0,0 +1,4 @@
|
||||
#!/bin/sh
|
||||
|
||||
val1="$@"
|
||||
ntfy -b pushover -o user_key useV3kis7G1EsecHhyDprNeywH72or -t 'From laptop.' send "$val1"
|
||||
53
bin/wsl/preview_remove_dates.sh
Executable file
53
bin/wsl/preview_remove_dates.sh
Executable file
@@ -0,0 +1,53 @@
|
||||
#!/bin/bash
|
||||
|
||||
SAVEIFS=$IFS
|
||||
export IFS=$'\n';
|
||||
CDIR=$(pwd)
|
||||
|
||||
if (pwd | grep -c '\/home\/mobaxterm'); then
|
||||
#echo "Correct Directory"
|
||||
echo " "
|
||||
else
|
||||
echo "Recursive - Are you sure? CTRL-C now to terminate."
|
||||
# exit 0
|
||||
sleep 4
|
||||
fi
|
||||
|
||||
echo " removing in order: .dddd.dd.dd .dd.dd.dddd .dd.dd.dd .19dd .20dd "
|
||||
|
||||
for i in `find $CDIR -maxdepth 1 -type f -print`; do
|
||||
unset hasdate
|
||||
# echo echo "Looking at $i"
|
||||
hasfulldate=`echo "$i" | awk '/[\._][[:digit:]][[:digit:]][[:digit:]][[:digit:]][\._]/'`
|
||||
if [ -z "$hasfulldate" ] ; then
|
||||
hasfulldate=`echo ""`
|
||||
else
|
||||
hasdate=`echo "1"`
|
||||
fi
|
||||
if [ -z "$hasfulldate" ] ; then
|
||||
haspartialdate=`echo "$i" | awk '/[\._][[:digit:]][[:digit:]][\._][[:digit:]][[:digit:]]/'`
|
||||
if [ -z "$haspartialdate" ] ; then
|
||||
haspartialdate=`echo ""`
|
||||
else
|
||||
hasdate=`echo "1"`
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ -z $hasdate ] ; then
|
||||
unset hasdate
|
||||
else
|
||||
echo "found: $i "
|
||||
|
||||
# in this order:
|
||||
# .dddd.dd.dd
|
||||
# .dd.dd.dddd
|
||||
# .dd.dd.dd
|
||||
# .19dd
|
||||
# .20dd
|
||||
#
|
||||
fi
|
||||
|
||||
done
|
||||
|
||||
|
||||
IFS=$SAVEIFS
|
||||
77
bin/wsl/remove_dates.sh
Executable file
77
bin/wsl/remove_dates.sh
Executable file
@@ -0,0 +1,77 @@
|
||||
#!/bin/bash
|
||||
export IFS=$'\n';
|
||||
|
||||
for afile in $(find . -maxdepth 1 -type f \( -iname "*.mpg" -o -iname "*.vob" -o -iname "*.m4v" -o -iname "*.mov" -o -iname "*.avi" -o -iname "*.mp4" -o -iname "*.wmv" -o -iname "*.flv" -o -iname "*.rmvb" -o -iname "*.mpeg" -o -iname "*.mkv" -o -iname "*.mov" \) | grep -v mobile | sort -f);
|
||||
do
|
||||
|
||||
filename=`echo ${afile:2}`
|
||||
ext=`echo ${filename} | awk -F. '{print "."$NF}'`
|
||||
fn_noext=`basename "${filename}" $ext`
|
||||
i=`echo ${filename}`
|
||||
# echo "Will remove date: ${i}";
|
||||
|
||||
unset hasdate
|
||||
# echo echo "Looking at $i"
|
||||
hasfulldate=`echo "$i" | awk '/[[:digit:]][[:digit:]][[:digit:]][[:digit:]][\._]/'`
|
||||
if [ -z "$hasfulldate" ] ; then
|
||||
hasfulldate=`echo ""`
|
||||
else
|
||||
hasdate=`echo "1"`
|
||||
fi
|
||||
if [ -z "$hasfulldate" ] ; then
|
||||
haspartialdate=`echo "$i" | awk '/[\._][[:digit:]][[:digit:]][\._][[:digit:]][[:digit:]]/'`
|
||||
if [ -z "$haspartialdate" ] ; then
|
||||
haspartialdate=`echo ""`
|
||||
else
|
||||
hasdate=`echo "1"`
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ -z $hasdate ] ; then
|
||||
unset hasdate
|
||||
else
|
||||
echo "mv -n date: $i "
|
||||
# in this order:
|
||||
# .dddd.dd.dd
|
||||
# .dd.dd.dddd
|
||||
# .dd.dd.dd
|
||||
# .19dd
|
||||
# .20dd
|
||||
#
|
||||
# res=`echo mv -n "$i" "${i//[[:digit:]][[:digit:]][[:digit:]][[:digit:]][[:digit:]][[:digit:]][[:digit:]][[:digit:]]/}"`
|
||||
# echo echo "res is $res"
|
||||
|
||||
# dddd.dd.dd.
|
||||
mv -n "$i" "${i//[[:digit:]][[:digit:]][[:digit:]][[:digit:]][\._][[:digit:]][[:digit:]][\._][[:digit:]][[:digit:]][\._]/}"
|
||||
|
||||
if [ -f $i ] ; then
|
||||
# 19dddddd.
|
||||
mv -n "$i" "${i//[1][9][[:digit:]][[:digit:]][[:digit:]][[:digit:]][[:digit:]][[:digit:]][\._]/}"
|
||||
fi
|
||||
if [ -f $i ] ; then
|
||||
# 20dddddd.
|
||||
mv -n "$i" "${i//[2][0][[:digit:]][[:digit:]][[:digit:]][[:digit:]][[:digit:]][[:digit:]][\._]/}"
|
||||
fi
|
||||
if [ -f $i ] ; then
|
||||
# dd.dd.dddd.
|
||||
mv -n "$i" "${i//[[:digit:]][[:digit:]][\._][[:digit:]][[:digit:]][\._][[:digit:]][[:digit:]][[:digit:]][[:digit:]][\._]/}"
|
||||
fi
|
||||
if [ -f $i ] ; then
|
||||
# dd.dd.dd.
|
||||
mv -n "$i" "${i//[[:digit:]][[:digit:]][\._][[:digit:]][[:digit:]][\._][[:digit:]][[:digit:]][\._]/}"
|
||||
fi
|
||||
if [ -f $i ] ; then
|
||||
# 19dd.
|
||||
mv -n "$i" "${i//[1][9][[:digit:]][[:digit:]][\._]/}"
|
||||
fi
|
||||
if [ -f $i ] ; then
|
||||
# 20dd.
|
||||
mv -n "$i" "${i//[2][0][[:digit:]][[:digit:]][\._]/}"
|
||||
fi
|
||||
# echo " ---- "
|
||||
# echo " "
|
||||
fi
|
||||
|
||||
done
|
||||
|
||||
IFS=$SAVEIFS
|
||||
36
bin/wsl/remove_digits.sh
Executable file
36
bin/wsl/remove_digits.sh
Executable file
@@ -0,0 +1,36 @@
|
||||
#!/bin/bash
|
||||
export IFS=$'\n';
|
||||
|
||||
for afile in $(find . -maxdepth 1 -type f \( -iname "*.mpg" -o -iname "*.vob" -o -iname "*.m4v" -o -iname "*.mov" -o -iname "*.avi" -o -iname "*.mp4" -o -iname "*.wmv" -o -iname "*.flv" -o -iname "*.rmvb" -o -iname "*.mpeg" -o -iname "*.mkv" -o -iname "*.mov" \) | grep -v mobile | sort -f);
|
||||
do
|
||||
|
||||
filename=`echo ${afile:2}`
|
||||
ext=`echo ${filename} | awk -F. '{print "."$NF}'`
|
||||
fn_noext=`basename "${filename}" $ext`
|
||||
i=`echo ${filename}`
|
||||
# echo "Will remove digit: ${i}";
|
||||
|
||||
unset hasdigit
|
||||
# echo echo "Looking at $i"
|
||||
hasfulldigit=`echo "$i" | awk '/[[:digit:]][\._]/'`
|
||||
if [ -z "$hasfulldigit" ] ; then
|
||||
hasfulldigit=`echo ""`
|
||||
else
|
||||
hasdigit=`echo "1"`
|
||||
fi
|
||||
|
||||
if [ -z $hasdigit ] ; then
|
||||
unset hasdigit
|
||||
else
|
||||
echo "mv -n digit: $i "
|
||||
# res=`echo mv -n "$i" "${i//[[:digit:]][[:digit:]][[:digit:]][[:digit:]][[:digit:]][[:digit:]][[:digit:]][[:digit:]]/}"`
|
||||
# echo echo "res is $res"
|
||||
|
||||
# d.
|
||||
mv -n "$i" "${fn_noext//[[:digit:]]/}"${ext}
|
||||
|
||||
fi
|
||||
|
||||
done
|
||||
|
||||
IFS=$SAVEIFS
|
||||
25
bin/wsl/rename60fps_media.sh
Executable file
25
bin/wsl/rename60fps_media.sh
Executable file
@@ -0,0 +1,25 @@
|
||||
#!/bin/sh
|
||||
echo "60fps media:"
|
||||
echo "--------------------"
|
||||
for i in `ls`
|
||||
do
|
||||
OUTPUT50=`ffmpeg -i $i 2>&1 | egrep '50 fps'`
|
||||
OUTPUT59=`ffmpeg -i $i 2>&1 | egrep '59 fps'`
|
||||
OUTPUT5994=`ffmpeg -i $i 2>&1 | egrep '59.94 fps'`
|
||||
OUTPUT60=`ffmpeg -i $i 2>&1 | egrep '60 fps'`
|
||||
if [ -n "$OUTPUT50" ] || [ -n "$OUTPUT59" ] || [ -n "$OUTPUT5994" ] || [ -n "$OUTPUT60" ]; then
|
||||
echo " "
|
||||
echo $i
|
||||
tol=`echo "$i" | tr '[:upper:]' '[:lower:]'`
|
||||
echo $tol
|
||||
# if ! [ $tol in *"_60fps."* ]; then
|
||||
if [ $tol != *"_60fps."* ]; then
|
||||
filename=`echo ${i}`
|
||||
ext=`echo ${filename} | awk -F. '{print "."$NF}'`
|
||||
fn_noext=`basename "${filename}" $ext`
|
||||
new_fn=`echo ${fn_noext}_60fps${ext}`
|
||||
echo "new filename is ${new_fn}"
|
||||
mv $i ${new_fn}
|
||||
fi
|
||||
fi
|
||||
done
|
||||
34
bin/wsl/rename_any.sh
Executable file
34
bin/wsl/rename_any.sh
Executable file
@@ -0,0 +1,34 @@
|
||||
#!/bin/bash
|
||||
|
||||
SAVEIFS=$IFS
|
||||
export IFS=$'\n';
|
||||
CDIR=$(pwd)
|
||||
|
||||
read -p "any name to replace: " startold
|
||||
read -p "name to use instead: " startnew
|
||||
|
||||
echo "Renaming from ${startold} to ${startnew} ";\
|
||||
|
||||
if (pwd | grep -c '\/home\/mobaxterm'); then
|
||||
echo "Correct Directory"
|
||||
echo " "
|
||||
else
|
||||
echo "Wrong Directory"
|
||||
echo " "
|
||||
# exit 0
|
||||
fi
|
||||
|
||||
for i in `find $CDIR -maxdepth 0 -type d -print`; do
|
||||
DIR=$i
|
||||
cd "$DIR"
|
||||
echo "Inside $DIR :"
|
||||
for file in `find . -maxdepth 1 -type f -iname "*${startold}*"`; do
|
||||
sedstr=`echo "s/${startold}/${startnew}/g"`
|
||||
newfile=`echo "${file}" | sed ${sedstr}`
|
||||
echo "moving ${file} to ${newfile}"
|
||||
mv -n ${file} ${newfile}
|
||||
done
|
||||
cd "$CDIR"
|
||||
done
|
||||
|
||||
IFS=$SAVEIFS
|
||||
26
bin/wsl/rename_front.sh
Executable file
26
bin/wsl/rename_front.sh
Executable file
@@ -0,0 +1,26 @@
|
||||
#!/bin/bash
|
||||
|
||||
SAVEIFS=$IFS
|
||||
export IFS=$'\n';
|
||||
CDIR=$(pwd)
|
||||
|
||||
read -p "starting name to add to front: " startfront
|
||||
|
||||
echo "Renaming front with ${startfront} ";\
|
||||
|
||||
if (pwd | grep -c '\/home\/mobaxterm'); then
|
||||
echo "Correct Directory"
|
||||
echo " "
|
||||
else
|
||||
echo "non-recursive: proceeding in non-mobaxterm directory"
|
||||
echo " "
|
||||
# exit 0
|
||||
fi
|
||||
|
||||
for i in `ls`; do
|
||||
newfile=`echo "${startfront}${i}"`
|
||||
echo "moving ${i} to ${newfile}"
|
||||
mv ${i} ${newfile}
|
||||
done
|
||||
|
||||
IFS=$SAVEIFS
|
||||
35
bin/wsl/rename_start.sh
Executable file
35
bin/wsl/rename_start.sh
Executable file
@@ -0,0 +1,35 @@
|
||||
#!/bin/bash
|
||||
|
||||
SAVEIFS=$IFS
|
||||
export IFS=$'\n';
|
||||
CDIR=$(pwd)
|
||||
|
||||
read -p "starting name to replace: " startold
|
||||
read -p "starting name to use instead: " startnew
|
||||
|
||||
echo "Renaming from ${startold} to ${startnew} ";\
|
||||
|
||||
if (pwd | grep -c '\/home\/mobaxterm'); then
|
||||
echo "Correct Directory"
|
||||
echo " "
|
||||
else
|
||||
echo "Recursive!! Are you sure? CTRL-C to terminate."
|
||||
# sleep 2
|
||||
echo " "
|
||||
# exit 0
|
||||
fi
|
||||
|
||||
for i in `find $CDIR -type d -print`; do
|
||||
DIR=$i
|
||||
cd "$DIR"
|
||||
echo "Inside $DIR :"
|
||||
for file in `find . -maxdepth 1 -type f -iname "${startold}*"`; do
|
||||
sedstr=`echo "s/${startold}/${startnew}/"`
|
||||
newfile=`echo "${file}" | sed ${sedstr}`
|
||||
echo "moving ${file} to ${newfile}"
|
||||
mv -n ${file} ${newfile}
|
||||
done
|
||||
cd "$CDIR"
|
||||
done
|
||||
|
||||
IFS=$SAVEIFS
|
||||
24
bin/wsl/renamelarge_media.sh
Executable file
24
bin/wsl/renamelarge_media.sh
Executable file
@@ -0,0 +1,24 @@
|
||||
#!/bin/sh
|
||||
echo "Large 1440|1852|1920|2030|2048 media:"
|
||||
echo "--------------------"
|
||||
for i in `ls | grep -v _Med.`
|
||||
do
|
||||
OUTPUT1440=`ffmpeg -i $i 2>&1 | egrep '1440x'`
|
||||
OUTPUT1852=`ffmpeg -i $i 2>&1 | egrep '1852x'`
|
||||
OUTPUT1920=`ffmpeg -i $i 2>&1 | egrep '1920x'`
|
||||
OUTPUT2030=`ffmpeg -i $i 2>&1 | egrep '2030x'`
|
||||
OUTPUT2048=`ffmpeg -i $i 2>&1 | egrep '2048x'`
|
||||
if [ -n "$OUTPUT1440" ] || [ -n "$OUTPUT1852" ] || [ -n "$OUTPUT1920" ] || [ -n "$OUTPUT2030" ] || [ -n "$OUTPUT2048" ] ; then
|
||||
echo " "
|
||||
echo $i
|
||||
tol=`echo "$i" | tr '[:upper:]' '[:lower:]'`
|
||||
if [ $tol != *"_large.mp4"* ]; then
|
||||
filename=`echo ${i}`
|
||||
ext=`echo ${filename} | awk -F. '{print "."$NF}'`
|
||||
fn_noext=`basename "${filename}" $ext`
|
||||
new_fn=`echo ${fn_noext}_Large${ext}`
|
||||
echo "new filename is ${new_fn}"
|
||||
mv $i ${new_fn}
|
||||
fi
|
||||
fi
|
||||
done
|
||||
19
bin/wsl/renamemedium_media.sh
Executable file
19
bin/wsl/renamemedium_media.sh
Executable file
@@ -0,0 +1,19 @@
|
||||
#!/bin/sh
|
||||
echo "Medium 1280|1440 media:"
|
||||
echo "--------------------"
|
||||
for i in `ls | grep -v _Large`
|
||||
do
|
||||
OUTPUT1280=`ffmpeg -i $i 2>&1 | egrep '1280x'`
|
||||
OUTPUT1440=`ffmpeg -i $i 2>&1 | egrep '1440x'`
|
||||
if [ -n "$OUTPUT1280" ] || [ -n "$OUTPUT1440" ]; then
|
||||
tol=`echo "$i" | tr '[:upper:]' '[:lower:]'`
|
||||
if [ $tol != *"_med.mp4"* ]; then
|
||||
filename=`echo ${i}`
|
||||
ext=`echo ${filename} | awk -F. '{print "."$NF}'`
|
||||
fn_noext=`basename "${filename}" $ext`
|
||||
new_fn=`echo ${fn_noext}_Med${ext}`
|
||||
echo "new filename is ${new_fn}"
|
||||
mv $i ${new_fn}
|
||||
fi
|
||||
fi
|
||||
done
|
||||
15
bin/wsl/renumber_jpgs.sh
Executable file
15
bin/wsl/renumber_jpgs.sh
Executable file
@@ -0,0 +1,15 @@
|
||||
#!/bin/bash
|
||||
|
||||
SAVEIFS=$IFS
|
||||
export IFS=$'\n';
|
||||
CDIR=$(pwd)
|
||||
|
||||
n=1
|
||||
for i in `ls *.jpg`; do
|
||||
nn=`printf "%04d\n" ${n}`
|
||||
echo "mv ${i} to ${nn}.jpg"
|
||||
mv ${i} ${nn}.jpg
|
||||
((n++))
|
||||
done
|
||||
|
||||
IFS=$SAVEIFS
|
||||
33
bin/wsl/sanitizefilenames.sh
Executable file
33
bin/wsl/sanitizefilenames.sh
Executable file
@@ -0,0 +1,33 @@
|
||||
#!/bin/bash
|
||||
|
||||
SAVEIFS=$IFS
|
||||
export IFS=$'\n';
|
||||
CDIR=$(pwd)
|
||||
|
||||
echo "Recursive - Are you sure? CTRL-C now to terminate."
|
||||
sleep 4
|
||||
|
||||
for i in `find $CDIR -type d -print`; do
|
||||
DIR=$i
|
||||
cd "$DIR"
|
||||
echo echo "In $DIR"
|
||||
find . -maxdepth 1 -type f \( -iname "* *" \) -exec bash -c 'mv -n "$0" "${0//\ /_}"' {} \;
|
||||
find . -maxdepth 1 -type f \( -iname "*-*" \) -exec bash -c 'mv -n "$0" "${0//\-/_}"' {} \;
|
||||
find . -maxdepth 1 -type f \( -iname "*+*" \) -exec bash -c 'mv -n "$0" "${0//\+/_}"' {} \;
|
||||
find . -maxdepth 1 -type f \( -iname "*,*" \) -exec bash -c 'mv -n "$0" "${0//\,/_}"' {} \;
|
||||
find . -maxdepth 1 -type f \( -iname "*\!*" \) -exec bash -c 'mv -n "$0" "${0//\!/_}"' {} \;
|
||||
find . -maxdepth 1 -type f \( -iname "*\'*" \) -exec bash -c 'mv -n "$0" "${0//\'"'"'/_}"' {} \;
|
||||
find . -maxdepth 1 -type f \( -iname "*#*" \) -exec bash -c 'mv -n "$0" "${0//#/_}"' {} \;
|
||||
find . -maxdepth 1 -type f \( -iname "*;*" \) -exec bash -c 'mv -n "$0" "${0//;/_}"' {} \;
|
||||
find . -maxdepth 1 -type f \( -iname "*&*" \) -exec bash -c 'mv -n "$0" "${0//&/_}"' {} \;
|
||||
find . -maxdepth 1 -type f \( -iname "*\[*" \) -exec bash -c 'mv -n "$0" "${0//\[/_}"' {} \;
|
||||
find . -maxdepth 1 -type f \( -iname "*]*" \) -exec bash -c 'mv -n "$0" "${0//\]/_}"' {} \;
|
||||
find . -maxdepth 1 -type f \( -iname "*(*" \) -exec bash -c 'mv -n "$0" "${0//\(/_}"' {} \;
|
||||
find . -maxdepth 1 -type f \( -iname "*)*" \) -exec bash -c 'mv -n "$0" "${0//\)/_}"' {} \;
|
||||
find . -maxdepth 1 -type f \( -iname "*___*" \) -exec bash -c 'mv -n "$0" "${0//___/_}"' {} \;
|
||||
find . -maxdepth 1 -type f \( -iname "*__*" \) -exec bash -c 'mv -n "$0" "${0//__/_}"' {} \;
|
||||
for f in `find . -maxdepth 1 -type f` ; do mv -v $f `echo $f | tr '[A-Z]' '[a-z]'` ; done
|
||||
cd "$CDIR"
|
||||
done
|
||||
|
||||
IFS=$SAVEIFS
|
||||
68
bin/wsl/screencapture.py
Executable file
68
bin/wsl/screencapture.py
Executable file
@@ -0,0 +1,68 @@
|
||||
#!/usr/bin/python3
|
||||
import argparse
|
||||
import os
|
||||
import cv2
|
||||
|
||||
def capture_and_resize_frame(video_path, capture_time=180):
|
||||
# Extract the base filename from the video path
|
||||
base_filename = os.path.splitext(os.path.basename(video_path))[0]
|
||||
output_image_path = f"{base_filename}_screencapture.jpg"
|
||||
|
||||
# Open the video file
|
||||
video = cv2.VideoCapture(video_path)
|
||||
|
||||
# Get the frames per second (fps) of the video
|
||||
fps = video.get(cv2.CAP_PROP_FPS)
|
||||
|
||||
# Calculate the frame number for the specified capture time (180 seconds by default)
|
||||
frame_number = int(fps * capture_time)
|
||||
|
||||
# Set the frame position to the capture time in the video
|
||||
video.set(cv2.CAP_PROP_POS_FRAMES, frame_number)
|
||||
|
||||
# Read the frame
|
||||
success, frame = video.read()
|
||||
|
||||
# Check if the frame was successfully read
|
||||
if success:
|
||||
# Save the frame as an image temporarily
|
||||
temp_image_path = 'temp_screencapture.jpg'
|
||||
cv2.imwrite(temp_image_path, frame)
|
||||
#print(f"Frame at {capture_time} seconds saved as {temp_image_path}")
|
||||
|
||||
# Load the captured image for resizing
|
||||
image = cv2.imread(temp_image_path)
|
||||
|
||||
# Set new dimensions
|
||||
new_width, new_height = 960, 540
|
||||
|
||||
# Resize the image
|
||||
resized_image = cv2.resize(image, (new_width, new_height))
|
||||
|
||||
# Save the resized image with the new output path
|
||||
cv2.imwrite(output_image_path, resized_image)
|
||||
print(f"Screen capture resized and saved as {output_image_path}")
|
||||
|
||||
else:
|
||||
print("Failed to capture the frame, video shorter than 3 mins.")
|
||||
|
||||
# Release the video
|
||||
video.release()
|
||||
|
||||
# Remove the temporary file
|
||||
os.remove(temp_image_path)
|
||||
|
||||
def main():
|
||||
# Set up argument parser
|
||||
parser = argparse.ArgumentParser(description="Extract and resize a frame from a video.")
|
||||
parser.add_argument("video_path", type=str, help="Path to the video file")
|
||||
|
||||
# Parse arguments
|
||||
args = parser.parse_args()
|
||||
|
||||
# Call the capture and resize function
|
||||
capture_and_resize_frame(args.video_path)
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
|
||||
37
bin/wsl/similar_images.py
Executable file
37
bin/wsl/similar_images.py
Executable file
@@ -0,0 +1,37 @@
|
||||
#!/usr/bin/python3
|
||||
import argparse
|
||||
from skimage.metrics import structural_similarity as ssim
|
||||
import cv2
|
||||
|
||||
def are_images_similar(image_path1, image_path2, similarity_threshold=0.95):
|
||||
# Load both images in grayscale mode
|
||||
image1 = cv2.imread(image_path1, cv2.IMREAD_GRAYSCALE)
|
||||
image2 = cv2.imread(image_path2, cv2.IMREAD_GRAYSCALE)
|
||||
|
||||
# Check if images are the same size
|
||||
if image1.shape != image2.shape:
|
||||
print("Images have different dimensions.")
|
||||
return False
|
||||
|
||||
# Calculate the SSIM between the two images
|
||||
score, _ = ssim(image1, image2, full=True)
|
||||
|
||||
# Return True if the score is above the similarity threshold
|
||||
return score >= similarity_threshold
|
||||
|
||||
def main():
|
||||
# Set up argument parser
|
||||
parser = argparse.ArgumentParser(description="Compare two images for similarity.")
|
||||
parser.add_argument("image1_path", type=str, help="Path to the first image file")
|
||||
parser.add_argument("image2_path", type=str, help="Path to the second image file")
|
||||
|
||||
# Parse arguments
|
||||
args = parser.parse_args()
|
||||
|
||||
# Compare images
|
||||
if are_images_similar(args.image1_path, args.image2_path):
|
||||
print(f"\nFound similar videos:\n{args.image1_path} and {args.image2_path}\n")
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
|
||||
Reference in New Issue
Block a user