Skip to content
streamneo.
Streaming Settings14 min read

How to Set FFmpeg Audio Bitrate for a Continuous YouTube Podcast Stream

Set FFmpeg audio bitrate for a YouTube podcast stream, with the right AAC setting, stream specifiers, output placement and testing steps.

sn.
StreamNeoPublished 4 October 2026
Worth sharing?

For a typical stereo podcast sent to YouTube Live, use AAC at 128 Kbps: -c:a aac -b:a 128k. This sets the encoded audio stream, not the video, and it does not by itself create audio or guarantee an uninterrupted broadcast.

Place those options with the output options for the YouTube stream. If your output contains more than one audio track, treat -b:a carefully because the :a selector can match every audio stream unless you use a more specific stream specifier.

The practical setting for a stereo podcast

For ordinary spoken-word podcast audio with two channels, the useful starting point is:

-c:a aac -b:a 128k

The first option selects the AAC audio encoder. The second sets the audio bitrate to 128 kilobits per second. This is the setting to use when your source is a normal stereo podcast and you are sending the encoded output to YouTube Live.

YouTube’s live encoder settings guidance recommends AAC or MP3 for live audio and lists 128 Kbps for stereo audio. It also lists 44.1 kHz for stereo. These are platform recommendations, not a promise that every recording will sound identical or that a particular bitrate will suit every source.

The recommendation applies to the audio portion of the stream. It does not configure resolution, frame rate, video codec, video bitrate, keyframes, protocol, or any other video setting. A command containing -c:a aac -b:a 128k may still need separate video options and an output URL, depending on how your stream is built.

YouTube also lists 384 Kbps and 48 kHz for 5.1 surround sound. That is a different channel layout and should not be copied into a normal stereo podcast command. If your podcast is stereo, use the stereo guidance rather than increasing the bitrate simply because a higher figure exists for surround audio.

The audio bitrate is only one part of the result. The source must contain usable audio, the channel mapping must select it, and the complete audio-plus-video output must remain within what your connection and encoder can send reliably. A bitrate setting cannot repair missing audio, a wrong input stream, clipping in the source recording, or an unstable uplink.

What -b:a means in FFmpeg

FFmpeg options are built from an option name and, in some cases, a stream specifier. In -b:a 128k, -b is the bitrate option and :a tells FFmpeg that the option applies to audio streams.

The value 128k is a convenient FFmpeg form for 128,000 bits per second. FFmpeg’s documentation for its native AAC encoder describes the bitrate option as setting the bitrate in bits per second and states that setting it automatically activates constant bitrate mode. That behaviour belongs to the documented native AAC encoder. You should not assume that every external AAC encoder exposes exactly the same rate-control behaviour without checking that encoder’s documentation.

The complete audio fragment therefore has two separate jobs:

Option Job What it does not do
-c:a aac Selects AAC for audio Does not choose the input audio track or configure video
-b:a 128k Sets the selected audio stream’s bitrate Does not create audio, set the channel layout, or guarantee continuity

The order of the two audio options is easy to read and maintain, but the important point is their scope. They are audio encoding options. They should not be presented as a complete YouTube command unless the rest of the command has also been deliberately configured.

For the underlying option description, see the FFmpeg audio encoder documentation. The documentation is the right reference when you change encoders, add a filter, or need to understand how a particular build interprets an option.

If the input has no audio stream, -c:a aac -b:a 128k cannot manufacture a podcast signal. You would need an audio input or a filter graph that supplies one. If the source has audio but it is not mapped to the output, the encoder options may be present while the outgoing stream still has no audio.

Put output options with the intended output

FFmpeg commands can read one or more inputs and write one or more outputs. Options that affect an output should be placed so that their scope is clear and so they apply to the intended destination.

A deliberately narrow illustration is:

ffmpeg -i podcast-source.mp4 [other-output-options] -c:a aac -b:a 128k youtube-output

This is an audio-option fragment, not a complete YouTube streaming command. The bracketed part represents other settings that your actual workflow may require. Do not copy it as a complete command without supplying the correct input, output format, stream mapping, video settings, and destination.

When there is one output, placing the audio codec and bitrate among that output’s options is usually straightforward. With several outputs, make sure the options are attached to the YouTube output rather than a local recording, preview file, archive, or another destination.

For example, a workflow might write a local file and send a separate live output. Those outputs may need different audio settings. You may want the archive to preserve the source audio while the live output is encoded as AAC at 128 Kbps. If you place the option where it applies to the wrong output, the live stream may keep an unintended bitrate or the local file may be changed instead.

Output placement also matters when you use stream mapping. Mapping decides which input streams enter an output; codec and bitrate options then describe how the selected output streams should be encoded. These are related but separate decisions. Selecting an audio stream does not automatically mean that it will be encoded with the bitrate you intended, and setting an audio bitrate does not select the right source track.

If your channel also includes a local recording, a useful habit is to name each output in your own notes and check the FFmpeg startup log for each one. Do not rely only on the visual order of a long command. A short comment or a separate command for each destination can make a night-time failure easier to diagnose.

The wider video and output decisions are covered in the recommended YouTube Live settings for a 24/7 stream. Keep the audio fragment in its proper place rather than treating it as a substitute for the complete stream configuration.

What the :a stream specifier matches

The :a part of -b:a is a stream specifier. It tells FFmpeg to apply the option to audio streams rather than video, subtitle, or data streams.

In the usual single-audio-track case, this is exactly what you want. A podcast file commonly contains one audio stream, so -b:a 128k addresses that stream while leaving video options to their own settings. The selector is useful because it avoids applying an audio bitrate value to an unrelated stream type.

The important qualification is that :a means audio in general. It does not mean “the first audio stream” and it does not mean “the track containing the presenter’s voice”. If the output contains several audio streams, -b:a 128k can match all of those audio streams.

That distinction matters for files containing, for example, a main programme track, a clean effects track, a translated track, or a separate commentary track. If your output includes all of them, a broad audio selector may affect each one. This is not the same as changing only one track.

The FFprobe stream specifier reference explains the stream-selection syntax used by FFmpeg tools. Read it alongside the mapping section of the FFmpeg documentation when you need to identify a particular stream rather than every stream of one type.

Be deliberate with multiple audio tracks

If the output has more than one audio stream, first decide what YouTube should receive. For a simple podcast, the cleanest answer is often to send one intended programme track. That reduces ambiguity and makes the outgoing stream easier to inspect.

Use probing and mapping to identify the input streams before you encode. ffprobe can show stream indexes, codec names, channel layouts, sample rates, and metadata. The exact command depends on your file and shell, but the information you need is the same: which stream is the spoken programme, whether it is stereo, and whether another audio stream is also being sent.

A more specific selector can address a particular output audio stream when the command and mapping create several of them. The exact syntax depends on whether you are referring to an input stream, an output stream, or both. Do not guess the index from a media player’s track label. Confirm it in the FFmpeg or FFprobe output.

This is also where -map becomes important. Mapping controls which streams are included. The stream specifier on an option controls which selected streams receive that option. One does not replace the other.

Consider three separate questions:

  1. Which input stream contains the podcast audio?
  2. Which input streams are mapped into the YouTube output?
  3. Which of those output audio streams should receive the 128 Kbps AAC setting?

Answering only the third question can leave the wrong track in the broadcast. Answering only the first can leave an unintended second track in the output. A reliable command makes all three choices visible.

Do not imply that -b:a 128k changes only one audio track when multiple tracks are present. In the broad form, it targets audio streams generally. If you need one track changed and another left alone, use a specific stream selection and verify the result in the output log.

For a 24/7 channel, this matters when a playlist contains files made by different people or software. One episode may have a single stereo track while another has multiple tracks or a different channel layout. Consistent source preparation can prevent a setting that worked for one file from producing a different result on the next.

Keep codec, layout and rate together

A bitrate number should be read with the codec and channel layout beside it. 128k for AAC stereo is not a universal audio rule for every YouTube output, every codec, or every surround configuration.

Programme format YouTube guidance cited in the research Practical interpretation
Stereo audio 128 Kbps, 44.1 kHz Appropriate starting point for a typical stereo podcast
5.1 surround audio 384 Kbps, 48 kHz A separate surround configuration, not the ordinary stereo setting

YouTube’s guidance also recommends CBR for live encoder settings. The native AAC encoder’s documented bitrate option activates CBR mode. If you use a different AAC encoder, check its own documentation rather than transferring that assumption without verification.

For RTMP or RTMPS, YouTube says 5.1 is supported only with AAC. That does not mean a stereo podcast should be converted to 5.1. Upmixing speech from stereo to surround adds channel complexity without creating information that was not in the original recording.

Sample rate is another separate property. -b:a 128k does not set 44.1 kHz, and -c:a aac does not by itself express your desired channel layout. If your source, filters, or output settings change those properties, inspect the resulting stream rather than assuming they stayed unchanged.

The same principle applies to the complete broadcast. YouTube’s encoder settings page discusses audio alongside video, protocol, and other live settings. A sound setting cannot compensate for insufficient upload capacity, a video configuration that is too demanding for the connection, or a source that repeatedly stops producing frames.

If you are building a channel from pre-recorded episodes, standardise the source files where practical. Consistent channel layout and a known audio stream make the live command easier to test. They also reduce the chance that a new episode silently changes the output because it contains an extra track.

Check the outgoing stream, not just the command

A command can look correct while the outgoing stream is wrong. The FFmpeg startup and output logs should show the selected audio encoder and the properties of the output audio stream.

Check for at least these items:

  • the output contains an audio stream
  • the audio codec is AAC
  • the bitrate is shown as intended, or the encoder reports the expected rate-control mode
  • the sample rate is the one you selected or expected
  • the channel layout is stereo for the ordinary podcast case
  • the intended source stream was mapped
  • the output is using the destination you meant to configure

Do not treat the input information as proof of the output. FFmpeg may decode one format and encode another. A source can be stereo while a filter, map, or output setting changes what is sent. Conversely, a file can contain audio that never reaches the output because it was not selected.

You can use ffprobe on a test output or recorded segment to inspect the resulting streams. The stream index, codec, channel count, channel layout, sample rate, and bitrate provide more useful evidence than the presence of -b:a 128k in a command copied into notes.

Google’s documentation on YouTube Live stream health messages is useful when YouTube reports a mismatch or problem. Health messages can point towards bitrate, codec, sample-rate, or primary and backup stream differences. They do not replace checking your own FFmpeg log, because the local command can reveal a mapping mistake before YouTube receives anything.

If the actual measured or reported output differs from your plan, stop and resolve that difference before committing to an overnight run. Changing the bitrate value repeatedly without checking the selected stream can obscure the real problem.

Test representative audio before going live

YouTube recommends testing before starting the live stream. The test should include the type of material that will actually run: spoken conversation, pauses, music beds if you use them, and any transitions or inserted clips.

A short speech-only test may not expose a problem in a music intro. A music test may not expose a microphone level that makes speech hard to understand. If your channel loops several programme types, include each important type in the test rather than testing only the first minute of one file.

Use an unlisted or otherwise suitable test broadcast while you check the outgoing signal. Confirm that YouTube receives audio, that the monitoring view reports healthy stream behaviour, and that the sound is present at a sensible level. Review any messages shown by YouTube during the test.

Listen for practical faults:

  • silence caused by missing or incorrect mapping
  • speech that is consistently too quiet
  • clipping or harshness in the source
  • one channel missing from a stereo programme
  • a delayed or duplicated audio track
  • a transition that drops audio between episodes

The bitrate setting will not fix these problems. If the source is clipped, re-encode it at 128 Kbps and the clipping remains. If only one channel contains speech, the AAC bitrate does not restore the absent channel. If the playlist stops between files, the audio bitrate is not the cause of the scheduling failure.

For a longer-running channel, make the test resemble the real operation. The go-always-live checklist is useful for checking the parts around the encoder, including source preparation and monitoring. A test is more valuable when it includes the same files, destination, and connection you intend to use overnight.

Plan for the part bitrate cannot solve

A continuous stream has two separate concerns: the encoded media must be acceptable, and the process sending it must keep producing a valid broadcast. -b:a 128k addresses only one audio encoding choice.

If your computer must remain on for the whole broadcast, plan for power interruptions, sleep settings, software updates, network changes, and a process that stops without warning. A locally running FFmpeg command may be technically correct but still unsuitable for a channel that needs to continue while you are away.

For a workflow where you upload a prepared video once, paste the YouTube stream key, and do not want your own computer running through the night, StreamNeo removes the need to keep that local machine handling the continuous broadcast. You still need to prepare the file correctly, choose the intended audio track, test the result, and check YouTube’s current requirements.

This is a workflow decision, not an audio-quality claim. A hosted or local process can both send an AAC stereo stream. The important question is which operating arrangement you can monitor, recover, and maintain for your channel. If the programme contains devotional music or other copyrighted material, review the rights position separately; the guide to broadcasting Bollywood songs on YouTube explains why encoding settings do not settle copyright questions.

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

Is 128 Kbps enough for a YouTube podcast?

For a typical stereo podcast, 128 Kbps AAC is YouTube’s listed stereo recommendation. It is a platform setting, not a guarantee of audible quality, because the source recording, channel layout, sample rate, levels, and programme material also affect the result.

Does -b:a 128k set the video bitrate too?

No. The :a stream specifier targets audio streams. Video needs its own codec and rate-control settings, and the complete command still needs an appropriate output configuration for YouTube Live.

Does -b:a change only the first audio track?

No. The broad :a selector can match all audio streams in the relevant output. If several tracks exist and only one should change, map the intended track and use a more specific stream specifier, then verify the output log.

Will this bitrate keep a 24/7 stream running?

No. Bitrate does not guarantee uninterrupted operation. Test representative content, check YouTube’s stream health, and make sure the source, connection, output mapping, and operating setup can continue without relying on the bitrate option alone.

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 ↗