Welcome to Software Development on Codidact!
Will you help us build our independent community of developers helping developers? We're small and trying to grow. We welcome questions about all aspects of software development, from design to code to QA and more. Got questions? Got answers? Got code you'd like someone to review? Please join us.
Post History
Your issue lies in the application of scaling and fps filtering. Both SCALING and FPS_FILTER are being set conditionally, and if both are needed, one will override the other since both are using -v...
Answer
#1: Initial revision
Your issue lies in the application of scaling and fps filtering. Both `SCALING` and `FPS_FILTER` are being set conditionally, and if both are needed, one will override the other since both are using `-vf`. Combine them in one `-vf` argument to avoid conflict: ``` if [ $WIDTH -lt $HEIGHT ]; then SHORTER_SIDE=$WIDTH if [ $WIDTH -gt $MAX_RESOLUTION ]; then SCALING="scale=$MAX_RESOLUTION:-2" fi else SHORTER_SIDE=$HEIGHT if [ $HEIGHT -gt $MAX_RESOLUTION ]; then SCALING="scale=-2:$MAX_RESOLUTION" fi fi if [ $FPS -gt $MAX_FPS ]; then if [ -z "$SCALING" ]; then SCALING="fps=$MAX_FPS" else SCALING="$SCALING, fps=$MAX_FPS" fi fi ``` Then apply the combined filter: ``` ffmpeg_cmd=( "-i" "$FILE" "-vf" "$SCALING" "-c:v" "libx265" "-preset" "slow" "-crf" "$CRF_VALUE" "-c:a" "aac" "-b:a" "$AUDIO_BITRATE" "-movflags" "+faststart" "$OUTPUT_FILE" ) ``` This ensures both scaling and frame rate adjustments are applied correctly.