Skip to content

Level the audio

A terminal: pconv talk.mp4 upload.mp4 –loudness youtube prints upload.mp4, the loudness before, -31.07 LUFS, and after, -14.21 LUFS with a true peak of -2.58 dBTP, linear, target -14 LUFS, ceiling -2 dBTP.

$ pconv talk.mp4 upload.mp4 --loudness youtube
upload.mp4
loudness before: -31.07 LUFS, LRA 0.10 LU, true peak -19.56 dBTP
loudness after: -14.21 LUFS, LRA 0.20 LU, true peak -2.58 dBTP (linear, target -14 LUFS, ceiling -2 dBTP)

--loudness youtube levels the audio to -14 LUFS integrated under a -2 dBTP true-peak ceiling, as AAC 320k. pconv measures the source in a first EBU R128 pass (ffmpeg’s loudnorm), then applies the gain in a second, linear where the true peak allows (dynamic otherwise), and prints the loudness before and after. The last line says which mode it used.

--loudness takes any target from -70 to -5 LUFS. --true-peak sets the ceiling, -1 dBTP by default:

pconv talk.mp4 podcast.mp4 --loudness -16 --true-peak -1.5

With --loudness (or --audio-bitrate) and no --profile, --size, --fps, --crf, --qp or --tune, the video is copied untouched where the container takes its codec: only the audio is re-encoded. Add any video option and the video is encoded too, with the colour handled as in deliveries.

A source with no audio is refused with exit 1, since there is nothing to level.

With --json, the source’s loudness is in source.loudness, the result’s in files[0].loudness, and the target and mode in params.loudness; see the formats reference.