| puts "Usage: #{$PROGRAM_NAME} input.wav output.wav" |
| '-af', "loudnorm='I=#{target_il}:LRA=#{target_lra}:tp=#{target_tp}:print_format=json'", |
| _stdin, _stdout, stderr, wait_thr = Open3.popen3(*ff_cmd) |
| if wait_thr.value.success? |
| stats = JSON.parse(stderr.read.lines[-12, 12].join) |
| loudnorm_string = 'loudnorm=' |
| loudnorm_string += 'print_format=summary:' |
| loudnorm_string += 'linear=true:' |
| loudnorm_string += "I=#{target_il}:" |
| loudnorm_string += "LRA=#{target_lra}:" |
| loudnorm_string += "tp=#{target_tp}:" |
| loudnorm_string += "measured_I=#{stats['input_i']}:" |
| loudnorm_string += "measured_LRA=#{stats['input_lra']}:" |
| loudnorm_string += "measured_tp=#{stats['input_tp']}:" |
| loudnorm_string += "measured_thresh=#{stats['input_thresh']}:" |
| loudnorm_string += "offset=#{stats['target_offset']}" |
| _stdin, _stdout, stderr, wait_thr = Open3.popen3(*ff_cmd) |
| if wait_thr.value.success? |
| puts stderr.read.lines[-12, 12].join |