Find videos by FPS
I produced some videos in 60 FPS, but couldn’t remember which ones. Since, of course, I didn’t label their FPS at the time, I needed to find them in vast sea of 30 FPS videos. Rather than just use a simple grep with ffmpeg to find which ones, I thought it might be more useful to find all videos that have a certain FPS threshold.
Usage: ./60fps.sh [directory]
#!/bin/bash SAVEIFS=$IFS IFS=$'\n' function fpscheck { FPS=$(ffmpeg -i "$1" 2>&1 | egrep -o '([0-9]*[.])?[0-9]+ fps' | egrep -o '([0-9]*[.])?[0-9]+') if [ $? -eq 0 ] then TEST=$(echo "$FPS"'>'50 | bc -l) if [ "$TEST" -eq 1 ] then echo "$FPS: $1" # else # echo "$FPS: $1" fi # else # echo "Could not get fps from: $1" >&2 fi } for FILE in $(find "$1" -type f -name '*') do # echo "trying: $FILE..." fpscheck "$FILE" done IFS=$SAVEIFS
If I thought I’d use it more, I’d move the hardcoded FPS test value to an optional argument for the script. Instead, I’ll leave that as an exercise for the reader.