Skip to content

Instantly share code, notes, and snippets.

@HeyBanditoz
Created July 12, 2019 22:29
Show Gist options
  • Save HeyBanditoz/79509ff524cc643481860324e6d7750a to your computer and use it in GitHub Desktop.
Save HeyBanditoz/79509ff524cc643481860324e6d7750a to your computer and use it in GitHub Desktop.
#!/bin/bash
if [ $# -eq 0 ]
then
echo "No arguments supplied"
exit 1
fi
FPS=$2
if [ -z "$2" ]
then
echo "FPS not specified! Defaulting to 30!"
FPS=30
fi
MB=$3
if [ -z "$3" ]
then
echo "Filesize not specified! Defaulting to 7.5!"
MB=7.5
fi
echo $1
LOGLEVEL=info
SIZE=$MB*8000
DURATION=$(ffprobe -i $1 -show_entries format=duration -v quiet -of csv="p=0")
BITRATE=$(echo ${SIZE} / ${DURATION} | bc)
echo "Bitrate:" $BITRATE
echo "Duration": $DURATION
ffmpeg -hide_banner -loglevel $LOGLEVEL -y -i $1 -an -c:v h264_nvenc -preset slow -b:v ${BITRATE}k -pass 1 -r $FPS -f mp4 /dev/null && \
ffmpeg -hide_banner -loglevel $LOGLEVEL -i $1 -an -c:v h264_nvenc -preset slow -b:v ${BITRATE}k -pass 2 -r $FPS ${1%.*}.mp4
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment