Skip to content

DocsGuides

Loudness

Bring the sound to a target loudness in LUFS with EBU R128, keeping the picture as it is.

audio.normalize brings the sound to a target loudness with the EBU R128 filter, so every video in a feed or episode of a podcast plays at the same volume.

The request#

true is -16 LUFS with peaks under -1.5 dBTP. The picture is copied, so only the sound is re-encoded.

bash
curl "$VIDEXO_API_URL/v1/transcode" \
  -H "Authorization: Bearer $VIDEXO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "input": "https://example.com/talk.mp4",
  "filename": "talk-normal.mp4",
  "video": {
    "codec": "copy"
  },
  "audio": {
    "normalize": true,
    "bitrate": "192k"
  }
}'

talk-normal.mp4: the same picture, the sound at -16 LUFS with peaks under -1.5 dBTP.

Your own target#

bash
curl "$VIDEXO_API_URL/v1/transcode" \
  -H "Authorization: Bearer $VIDEXO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "input": "https://example.com/talk.mp4",
  "filename": "talk-broadcast.mp4",
  "video": {
    "codec": "copy"
  },
  "audio": {
    "normalize": {
      "loudness": -23,
      "true_peak": -1,
      "range": 7
    }
  }
}'

A podcast file#

The podcast-audio preset writes an MP3 at 128k, 44.1 kHz stereo, normalised to -16 LUFS.

bash
curl "$VIDEXO_API_URL/v1/audio" \
  -H "Authorization: Bearer $VIDEXO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "input": "https://example.com/talk.mp4",
  "preset": "podcast-audio"
}'

Normalising needs an audio track: a silent input fails the job with processing_failed.