Em ter., 29 de mar. de 2022 às 05:16, CMG DiGiTaL <cmarc...@gmail.com> escreveu:
> 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, > ================================ I think I found a solution! I changed the following fields in the command line that generates the output audio: FOR /F "tokens=1 to FOR /F "tokens=*1,2 * -map 0:0 -c:a flac -ar:a %%b to -map 0:0 -c:a flac *-sample_fmt:a %%b* -ar:a %%c See below the information of the input and output files after my change: Informações áudio original: Input audio information: 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 audio information: 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: *991* 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, See that *only the bitrate* was not exactly the same as the input file... Could this be a problem or is it normal? Note: If the solution I found is not correct, please let me know! If there is another way, more optimized, than my solution, let me know too! _______________________________________________ ffmpeg-user mailing list ffmpeg-user@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-user To unsubscribe, visit link above, or email ffmpeg-user-requ...@ffmpeg.org with subject "unsubscribe".