[FFmpeg-user] Codec flac change values in output file after LUFS normalization
CMG DiGiTaL
cmarciog at gmail.com
Tue Mar 29 11:16:00 EEST 2022
I made a batch for LUFS normalization that works perfectly for mp3 and I'm
creating another one to normalize flac files. The normalization of flac
files also works perfectly, but in the output files, the flac codec changes
the bit-depth to 24 and the bitrate also changes.
I use tokens to retrieve the sample rate from the input file and write it
to the output file. It happens that the flac file doesn't have a bitrate
field so I can also retrieve it with the tokens.
How do I make the output file have the same audio settings as the input
file after performing LUFS normalization?
see the batch below and the input file and output file information, note
that the bit-depth and the bitrate have changed:
batch file:
echo.-------------------------------------------------------------------------------------------------------------------------
echo LUFS Audio Converter
echo.-------------------------------------------------------------------------------------------------------------------------
set /p audios_folder= Type the Folder Name:
set /p vLUF= Type the LUFS Value:
set /p vPEAK= Type the True Peak Values:
echo.-------------------------------------------------------------------------------------------------------------------------
cd\Users\%username%\Desktop\%audios_folder%
FOR %%a IN (*.flac) DO (
SET "filename=%%~na"
ffmpeg -hide_banner -i "%%a" -af "[0:a]loudnorm=print_format=summary" -f
null NUL 2> "%%~na.log"
@FOR /F "tokens=3" %%b IN ('FINDSTR /C:"Input Integrated" "%%~na.log"')
DO (SET II=%%b)
@FOR /F "tokens=4" %%b IN ('FINDSTR /C:"Input True Peak" "%%~na.log"') DO
(SET ITP=%%b)
@FOR /F "tokens=3" %%b IN ('FINDSTR /C:"Input LRA" "%%~na.log"') DO (SET
ILRA=%%b)
@FOR /F "tokens=3" %%b IN ('FINDSTR /C:"Input Threshold" "%%~na.log"') DO
(SET IT=%%b)
@FOR /F "tokens=3" %%b IN ('FINDSTR /C:"Target Offset" "%%~na.log"') DO
(SET TO=%%b)
DEL "%%~na.log"
SETLOCAL ENABLEDELAYEDEXPANSION
ECHO !II! is the Input Integrated
ECHO !ITP! is the Input True Peak
ECHO !ILRA! is the Input LRA
ECHO !IT! is the Input Threshold
ECHO !TO! is the Target Offset
FOR /F "tokens=1 delims=," %%b IN ('ffprobe -v 0 -select_streams a
-show_entries "stream=sample_rate" -of "csv=p=0" "!filename!.flac"') DO (
ffmpeg -hide_banner -i "!filename!.mp3" -af
"loudnorm=linear=true:I=!vLUF!:LRA=11:tp=!vPEAK!:measured_I=!II!:measured_LRA=!ILRA!:measured_tp=!ITP!:measured_thresh=!IT!:offset=!TO!:print_format=summary"
-map 0:0 -c:a flac -ar:a %%b "..\LUFS Audio\!filename!_LUFS_CONVERTED.flac"
)
ENDLOCAL
)
input information file:
Input #0, flac, from 'C:\Users\CMG\Desktop\Cazuza - Brasil.flac':
Metadata:
ARTIST : Cazuza
TITLE : Brasil
ALBUM : Ideologia
DATE : 1988
track : 06
GENRE : Rock
COMMENT : Track 6
disc : 1
TOTALDISCS : 1
TOTALTRACKS : 12
Duration: 00:03:12.09, start: 0.000000, *bitrate: 952 kb/s*
Stream #0:0: Audio: flac, 44100 Hz, stereo, *s16*
"streams":
"index": 0,
"codec_name": "flac",
"codec_long_name": "FLAC (Free Lossless Audio Codec)",
"codec_type": "audio",
"codec_tag_string": "[0][0][0][0]",
"codec_tag": "0x0000",
*"sample_fmt": "s16"*,
"sample_rate": "44100",
"channels": 2,
"channel_layout": "stereo",
"bits_per_sample": 0,
"r_frame_rate": "0/0",
"avg_frame_rate": "0/0",
"time_base": "1/44100",
"start_pts": 0,
"start_time": "0.000000",
"duration_ts": 8471316,
"duration": "192.093333",
*"bits_per_raw_sample": "16"*,
"extradata_size": 34,
output information file:
Output #0, flac, from 'C:\Users\CMG\Desktop\Cazuza -
Brasil_normalized.flac':
Metadata:
ARTIST : Cazuza
TITLE : Brasil
ALBUM : Ideologia
DATE : 1988
track : 06
GENRE : Rock
comment : Track 6
disc : 1
TOTALDISCS : 1
TOTALTRACKS : 12
encoder : Lavf59.17.102
Duration: 00:03:12.09, start: 0.000000, *bitrate: 1691 kb/s*
Stream #0:0: Audio: flac, 44100 Hz, stereo,* s32 (24 bit)*
"streams":
"index": 0,
"codec_name": "flac",
"codec_long_name": "FLAC (Free Lossless Audio Codec)",
"codec_type": "audio",
"codec_tag_string": "[0][0][0][0]",
"codec_tag": "0x0000",
* "sample_fmt": "s32"*,
"sample_rate": "44100",
"channels": 2,
"channel_layout": "stereo",
"bits_per_sample": 0,
"r_frame_rate": "0/0",
"avg_frame_rate": "0/0",
"time_base": "1/44100",
"start_pts": 0,
"start_time": "0.000000",
"duration_ts": 8471316,
"duration": "192.093333",
*"bits_per_raw_sample": "24"*,
"extradata_size": 34,
More information about the ffmpeg-user
mailing list