#!/bin/sh # Modifications # Current Settings Works Well For the GenerPlus Large TF Files from HDD Model. 2.5GB 20min files compress to around 300mb with similar quality # Add -nostdin so that hopefully ffmpeg can automatically process each file on each line as had issues READFILE=$1 PREFIX='Transcode' FFMPEG="C:\ffmpeg\bin\ffmpeg.exe" echo "Utilizing $file" while IFS= read -r line do echo "Current File Being Processed $line" line=$(basename $line) echo " Target file is ${line}" #---------------------------------# # Argument needs to come before the input file for # If the hardware supports encoding then use one filled in. If not then use the blank # HARDWARE ACCELERATION DECODE/ENCODE # HWACCEL="" HWACCEL="-hwaccel cuda -hwaccel_output_format cuda" # HWACCEL="-hwaccel vaapi -hwaccel_output_format vapi" #---------------------------------# # Video encoder # -c:v libx264 # H.264 CPU encoding # -c:v libx265 # H.265 CPU encoding # -c:v av1_nvenc # AV1 NVENC GPU encoding # -c:v h264_nvenc # H.264 NVENC GPU encoding # -c:v hevc_nvenc # H.265 NVENC GPU encoding VIDEO_CODEC="-c:v hevc_nvenc" #---------------------------------# # Audio encoder AUDIO_CODEC="-c:a libmp3lame" #---------------------------------# # Filters # -vf vflip # vertically flip video # -vf nlmeans # deinterlace # -vf atadenoise \ # denoise (slows down alot) FILTERS="" # Other # -fps_mode vfr is equal to -vsync 2 for newer version of ffmpeg #---------------------------------# # Video Bitrate settings. (Add an audio) BITRATE="-b:v 2M -maxrate 8M -bufsize 2M" $FFMPEG -nostdin -i \ $HWACCEL \ "$line" \ $BITRATE \ $VIDEO_CODEC \ $AUDIO_CODEC \ -fps_mode vfr \ $FILTERS \ "${PREFIX}${line}.mp4" # $FFMPEG -nostdin -i "$line" \ # -b:v 1.7M -maxrate 8M -bufsize 2M \ # -b:a 80k \ # -c:v hevc_nvenc \ # -c:a libmp3lame \ # -fps_mode vfr \ # -vf nlmeans,atadenoise \ # "${PREFIX}${line}.mp4" echo "Line --> ${line} finished" done < "$READFILE"