Skip to content
streamneo.
Streaming Settings11 min read

How to Set FFmpeg Audio Loudness for a 24/7 YouTube Music Stream

Configure FFmpeg loudnorm single-pass for a continuous YouTube music stream, distinguish its defaults from YouTube guidance, and test the result.

sn.
StreamNeoPublished 5 October 2026
Worth sharing?

For a continuous YouTube music stream, FFmpeg’s loudnorm filter can adjust programme loudness in single-pass mode while the feed is running. Choose its loudness settings for your material and test them; FFmpeg’s defaults are not YouTube requirements, and YouTube’s live encoder guidance does not prescribe a LUFS target.

The practical task is to balance level, dynamics and peaks across the music you actually play, then keep the audio encoding and stream health within the guidance for your selected ingest method. A filter setting alone cannot make different recordings sound equally loud or prove that a stream is healthy.

Choose a live loudness workflow

For a live feed, use loudnorm in single-pass mode unless your particular workflow has a reason to do otherwise. FFmpeg’s filter documentation describes single-pass operation as suitable for livestreaming; its two-pass approach is for files, where you can analyse the whole programme first and then process it with those measurements. That distinction matters: a continuous playlist may not have a fixed end or a complete programme available for advance analysis.

A sensible workflow has two stages. First, use representative tracks and transitions to listen and measure what the filter does with your playlist. Then put the chosen single-pass filter into the live encoding chain and check the outgoing programme during a test stream. Revisit the choice if the source material or playlist changes substantially.

Workflow What it is suited to What to bear in mind
loudnorm single-pass A live feed or a playlist whose next item is not known in advance It works as audio passes through; settings need to suit the material, and perceived differences can remain
loudnorm two-pass A finite file that can be measured before it is processed It depends on source measurements, so it is not a prerequisite for an always-on feed
No loudness normalisation A deliberately curated set with levels already managed upstream Changes in source mastering can still produce noticeable level differences

Single-pass does not mean “set it once and forget the audio”. It means that you do not need to analyse the entire broadcast before processing can begin. You still need to choose settings, inspect the filter’s output and listen for unwanted pumping, loss of dynamics or unexpected level changes.

If you are building the rest of the broadcast around FFmpeg, keep this topic separate from video-loop and restart behaviour. For example, the guide to launching an FFmpeg YouTube stream automatically after reboot covers a different operational failure: the process not returning after a machine restart. Loudness processing does not solve that problem.

Understand I, LRA and TP

The loudnorm filter uses three key targets. I is the target integrated loudness, expressed in LUFS, over the programme being measured. LRA is the target loudness range, expressed in LU, and describes the programme’s variation in loudness. TP is the maximum true-peak target, expressed in dBTP, which accounts for peaks between digital samples as well as sample peaks.

These controls describe different aspects of the signal. Integrated loudness is about an average over time; LRA is about variation; true peak is a ceiling. Changing one does not make the others redundant. A track can have an acceptable integrated reading and still contain a transient that pushes the peak ceiling, while a tightly controlled LRA may alter the contrast between quieter and louder passages.

Choose targets with the programme’s character in mind. A devotional or acoustic stream may rely on soft passages and space; an instrumental lofi playlist may move between recordings with different mastering; a station that mixes music and spoken links has another listening pattern. Avoid picking a number simply because it appears frequently in unrelated advice. The reviewed official YouTube live encoder guidance does not set a LUFS target, and the sources here do not establish one target that suits every music stream.

Nor does normalisation promise uniform perceived loudness. Two tracks with similar integrated readings can feel different because of arrangement, tonal balance, vocal presence or how their dynamics change over time. The settings can control measured properties, but your ears and the intended listening experience remain part of the decision.

Set loudnorm single-pass parameters

A minimal filter expression is:

loudnorm=I=<chosen-target>:LRA=<chosen-range>:TP=<chosen-true-peak>

Replace the placeholders with values you have chosen for the content and test. This form does not ask FFmpeg to use measured second-pass values, so it is the straightforward starting point for a continuous feed. Keep the filter syntax in the audio filter chain that feeds your encoder, and verify that the command is applying it to the audio stream you intend to send.

For example, if an FFmpeg command already has an audio filter chain, the loudness filter belongs in that chain rather than in a video option. The exact command varies with input and output settings, so do not paste a fragment into a command without checking commas, quoting and stream mapping. A syntactically valid command can still process the wrong audio stream or leave an alternate track untouched.

The filter supports dynamic and linear operation. Dynamic mode can respond to the material as it is processed. Linear mode has conditions: FFmpeg documents that it requires measured integrated loudness, LRA, true peak and threshold values, and can fall back to dynamic operation if its requirements are not met. For a live feed without advance measurements, do not assume that specifying targets makes linear processing available. Read the FFmpeg filters documentation for the exact options and behaviour in the version you run.

A useful first pass is deliberately modest: pick targets for a reason, run a representative test and inspect the output. Avoid making a large correction based only on one unusually quiet or loud track. If the playlist includes very different types of material, test examples from each type, including transitions between them. The transition can reveal a jump that listening to each file separately would miss.

Know what FFmpeg defaults mean

The FFmpeg documentation lists loudnorm defaults of −24 LUFS for integrated loudness, 7 LU for LRA and −2 dBTP for true peak. These are defaults in the filter, not YouTube specifications. If you omit a parameter, FFmpeg’s documented default may be used; that does not mean YouTube asked for it or that it is the right choice for your playlist.

Keep three questions separate when reading a command or advice online: what FFmpeg does when an option is absent, what target you deliberately choose, and what the platform asks of the incoming stream. Confusing them can lead to a filter configuration that appears official simply because its figures are documented. They are not interchangeable forms of guidance.

The same caution applies to a familiar figure such as −14 LUFS. It should not be presented as an official YouTube Live requirement on the evidence available here. YouTube’s live encoder guide describes audio codec, sample rate and bitrate recommendations, but does not provide a live loudness target. A figure borrowed from another context is not a substitute for that guidance.

If you do rely on defaults, make that a conscious test choice, not an assumption about compliance. Record the settings used in your command or configuration so that a later change is traceable. When a new playlist sounds different, you can then distinguish a content change from a filter change rather than guessing which one caused the result.

Match YouTube audio ingest guidance

Loudness targets and ingest settings answer different questions. loudnorm changes the audio programme’s measured loudness behaviour; YouTube’s encoder guidance covers how to send an acceptable live feed. For stereo RTMP or RTMPS ingestion, YouTube lists AAC or MP3 and recommends a 44.1 kHz sample rate and 128 kbps audio bitrate. The guide also lists CBR for live-stream encoding settings and recommends testing before going live.

Check the current YouTube live encoder settings rather than treating a saved command or old tutorial as authoritative. Choose the settings for your ingest protocol and output configuration. In particular, do not read the sample-rate and bitrate recommendations as an instruction to target a particular LUFS level: they describe encoding, not loudness normalisation.

If you use HLS rather than RTMP or RTMPS, consult the separate YouTube HLS setup requirements. Its supported audio formats and handling guidance differ from the standard encoder path. Do not carry over a protocol-specific assumption without checking the page for the method you have selected.

YouTube also describes unsupported audio codecs and bitrate-related warnings in its live streaming error guidance. A loudness filter cannot repair an unsupported codec, incorrect mapping or poor connection. Treat codec, sample rate, bitrate and programme level as separate checks, and respond to actual stream-health messages rather than assuming that a clean local meter means the platform is receiving a clean feed.

Test and monitor stream health

Test with audio that resembles the intended broadcast, including its changes in level and style. YouTube recommends testing with audio and movement similar to the planned stream, then monitoring stream health and messages. Its streaming tips also advise leaving bandwidth headroom and monitoring audio and video quality continuously. For a music channel, that means checking the actual playlist and not just a short tone or a single well-mastered track.

During the test, listen at a normal listening level and watch the outgoing stream in YouTube’s monitoring tools. Check whether the opening is unexpectedly loud, whether quiet tracks disappear under the normal listening environment, whether transitions cause abrupt jumps, and whether peaks sound distorted. Also check for dropped or intermittent audio, which may point to a different issue from loudness settings.

For a 24/7 channel, the first successful test is only a starting point. Keep an eye on the live stream after launch, particularly when you change the source playlist, audio chain or encoding settings. Stream health warnings and listening problems are evidence to investigate, not a reason to turn the loudness target up or down automatically.

If your playback relies on an FFmpeg loop, test the hand-off between files as well as the content within each file. A loop can be technically continuous while having silence, a click or a sudden level change at the boundary. The article on changing the video on a 24/7 YouTube stream without ending it addresses continuity of the broadcast; use that sort of operational thinking alongside, not instead of, an audio test.

Adjust based on listening and measurement

Use measurement to find patterns and listening to decide whether those patterns matter to your audience. FFmpeg’s ebur128 filter can measure loudness, and loudnorm can report measurements in its summary. Run measurement on representative material, including the quietest and loudest-seeming tracks and a transition. These readings describe the processed programme; they do not certify YouTube compliance.

A useful test note can be plain: source tracks, filter parameters, measured behaviour, what you heard, and whether the change was acceptable. If a particular item drives the whole playlist to an awkward result, consider whether that source file needs separate preparation rather than forcing the live chain to handle every outlier. Keep an original copy and compare any prepared version by listening, not just by looking at the meter.

Change one thing at a time. If a peak is the concern, focus on the true-peak behaviour and listen for harshness. If overall level varies, review integrated loudness across representative content. If loud and quiet sections feel flattened, revisit the LRA choice and assess whether preserving dynamics is more important than reducing variation. These are diagnostic directions, not a promise that moving one control will fix every perceived difference.

Different content deserves different judgement. A bhajan stream with quiet introductions and full ensemble passages may need dynamics retained; a playlist of unrelated recordings may benefit from more consistent source preparation. If your station includes speech, check speech levels and music-to-speech transitions specifically. Do not make a single target carry the burden of poor source editing, abrupt crossfades, silence or a mismatched codec.

For channels using a computer that must remain on to feed a stream, loudness configuration is only one part of the routine. If the practical problem is keeping an uploaded loop on air while your own computer is off, StreamNeo removes that specific burden; it does not decide your loudness target or replace testing the programme and YouTube ingest settings. If you are comparing local and hosted workflows, the discussion of RAM needs for an FFmpeg YouTube loop stream helps separate resource planning from audio decisions.

Before committing, compare the operating options on the pricing page. When the file and channel are ready, start free — 24-hour trial, no card.

FAQ

Does YouTube require −14 LUFS for a live music stream?

The cited YouTube live encoder guidance does not specify a LUFS target. Do not treat a commonly repeated number as an official live requirement on this basis; choose a setting for your material, test it and check the current official guidance.

Should I use FFmpeg loudnorm in single-pass or double-pass mode?

For a continuous live feed, FFmpeg documents single-pass operation as suitable for livestreaming. Two-pass processing is useful for a finite file that can be measured before processing, but it is not a prerequisite for a live stream.

Are FFmpeg’s loudnorm defaults YouTube settings?

No. FFmpeg documents defaults of −24 LUFS integrated loudness, 7 LU LRA and −2 dBTP true peak for the filter. Those defaults describe FFmpeg’s behaviour when options are omitted, not a YouTube mandate.

Will loudnorm make every track sound equally loud?

No. It controls measured loudness properties, but tracks can still differ in perceived level, tone and dynamics. Test representative recordings and transitions, then adjust the workflow without assuming one filter target will make every source sound identical.

YOU’VE REACHED THE END

Keep the ideas coming.

More guides, useful tools and a little help for your next broadcast.

Back to the journal ↗
YOUR NEXT READ

A little more to explore.

More Streaming Settings guides ↗ · All topics ↗