passing script variable of filename with spaces in bash to external program (ffmpeg) fails

Solution 1:

try quoting you output file:

ffmpeg -i "$file" ... "$fn_out"

bash separates arguments based on spaces, so you have to tell him that $fn_out is one single argument; whence the "" to show that this is one argument.