For a 24/7 YouTube playlist stream, choose a resolution and frame rate your source can support, then set an H.264 bitrate your upload connection can sustain continuously. A practical starting point is 1080p30 at 5–14 Mbps, or 720p30 at 3–8 Mbps, with a two-second keyframe interval and AAC stereo audio at 128 kbps; these are YouTube’s recommended ingest ranges, not guarantees of stability.
Treat playlist concatenation as a separate job from configuring the outgoing YouTube feed. First make the files compatible and confirm their timing, then test the complete path privately and watch YouTube’s stream health before relying on it overnight.
Choose resolution and frame rate for the source
Resolution, frame rate and bitrate work together. Sending 1080p does not create detail that is absent from a smaller source; it can instead require more encoding and upload capacity. For a collection of devotional videos, a static ambience scene or a local news loop, compare the source dimensions and motion with what your viewers need to see. Fast movement and fine detail can be more demanding than a mostly still image, but your own representative material is the right thing to test.
YouTube’s H.264 ingest guidance gives the following recommended ranges by resolution and frame rate. They are starting references, not a promise that any setting in a range will suit your particular connection or stream.
| Output resolution and frame rate | YouTube recommended H.264 bitrate |
|---|---|
| 1080p60 | 6–17 Mbps |
| 1080p30 | 5–14 Mbps |
| 720p60 | 3–8 Mbps |
| 720p30 | 3–8 Mbps |
| 480p30 | 0.4–4 Mbps |
| 360p30 | 0.4–4 Mbps |
The figures are from YouTube’s live encoder settings guidance, checked in 2026. If the source is 30 frames per second, outputting at 60 does not supply extra source motion; it may add processing or duplicated frames. Choose a frame rate that matches the material and that you can maintain rather than selecting the highest available option by habit.
For a playlist assembled from different files, check whether every file has the same dimensions, frame rate and stream layout. If the material varies, decide whether the output should be normalised to one format. The guide to choosing a video format for 24/7 live streaming explains why consistent H.264 video and AAC audio can make a practical baseline, while the actual files still need checking.
Set H.264 bitrate against sustained upload
A speed-test result is a snapshot, not a dependable measure of what an encoder can send hour after hour. Other devices may share the connection, and available upload can vary. The total stream bitrate must fit the upload capacity actually available to the encoder, with room for normal variation. Do not plan to use every bit of a peak result as video bitrate: audio and transport overhead also use capacity.
Start with the resolution and frame rate you chose, then select a bitrate within YouTube’s recommended range that leaves headroom on your real connection. For example, if a 1080p30 source looks acceptable at a lower point in the 5–14 Mbps range during a test, there is no reason to push it to the top merely because the table permits it. If the available upstream cannot comfortably sustain the intended output, try 720p30 and its 3–8 Mbps recommendation, or a lower resolution, and compare the picture using representative clips.
This is a trade-off rather than a universal formula. More bitrate can preserve detail in difficult motion, but it also asks more of the connection. A mostly static playlist may not visibly benefit from the top of a range, but that is an observation to verify with your own content, not a YouTube rule. Test scenes with movement, text and audio before deciding. YouTube’s streaming tips advise taking upload bandwidth into account and testing the setup.
Use constant bitrate (CBR) as the output mode in a starting profile. CBR is part of YouTube’s stated encoder guidance. It does not make an unreliable internet connection reliable; if available upload falls below what the stream requires, the encoder can still struggle. If you are comparing a local computer with an always-on hosted workflow, the practical choice depends on whether your home connection and machine can remain available; the OBS or VPS comparison for a 24/7 podcast stream in India discusses that operating trade-off.
Configure keyframes and AAC audio
YouTube recommends a two-second keyframe interval and says keyframes should not be more than four seconds apart. At 30 frames per second, a two-second interval corresponds to 60 frames. Set the encoder’s keyframe interval explicitly rather than relying on an unknown default, and confirm the output settings in the encoder interface or logs.
For audio, YouTube recommends AAC stereo at 128 kbps and a 44.1 kHz sample rate for stereo. Check the playlist as well as the output: a video with no audio stream, a different channel layout or an unusual sample rate may require an audio track to be created or converted. Do not assume that every source file has the same audio properties simply because they all play on your computer.
Other useful baseline properties in YouTube’s guidance include progressive scan, square pixels and Rec. 709 for SDR material. YouTube supports several ingest codecs, but this article’s working profile uses H.264 because that is the bitrate path described above. For encrypted delivery, YouTube recommends RTMPS. Store your stream key as a credential; do not paste it into a public configuration file, screenshot or discussion.
A simple starting profile for a uniform 1080p30 playlist can be expressed as: H.264 video, CBR, a bitrate selected within 5–14 Mbps to fit sustained upload, two-second keyframes, AAC stereo at 128 kbps and 44.1 kHz, progressive video, square pixels and Rec. 709 SDR. For 720p30, use the same general output choices but select within the 3–8 Mbps H.264 range. These profiles are starting points for testing, not production guarantees.
Build the playlist with FFmpeg concat
FFmpeg’s concat demuxer can read a text file containing media paths and process those files sequentially. That is an input-handling method: it does not decide the resolution or bitrate of the stream sent to YouTube. Keep those decisions separate so that a playlist problem is not confused with an output-encoding problem.
A basic list has a header and one file entry per line, for example:
ffconcat version 1.0
file '/media/segment-one.mp4'
file '/media/segment-two.mp4'
file '/media/segment-three.mp4'
The paths must be accessible to the process running FFmpeg. If a path contains spaces or characters that need escaping, take care with the list syntax and test it with the actual filenames. The example shows the list format, not a complete command for every operating system or deployment.
According to the FFmpeg concat demuxer documentation, the input files need the same streams, codecs and time base for this form of concatenation. FFmpeg uses the duration of a preceding file when adjusting timestamps for the next one, so inaccurate duration metadata can lead to gaps or artifacts. Inspect the files instead of assuming that matching extensions mean compatible media.
If all inputs meet the compatibility requirements, stream-copying may avoid decoding and re-encoding at the playlist-input stage. If they do not match, decide whether to normalise them by decoding and encoding to a consistent output. That can mean scaling different dimensions, converting frame rates or making audio layouts consistent. It also changes the processing work and the way errors show up, so test a short representative sequence before building an unattended schedule.
The right process for a finite playlist does not, by itself, settle how to loop it forever or recover from a dropped connection. Do not assume one concat command provides unattended looping, reconnection and restart behaviour in every environment. Your chosen FFmpeg invocation, service manager or hosting arrangement needs to be tested on the actual files and with the failure cases you care about. If you are working through a full Linux setup, the FFmpeg file-to-YouTube Live walkthrough is relevant background, but check current YouTube and FFmpeg guidance for your configuration.
Check file compatibility and duration issues
Before encoding, inventory the playlist. For each file, note the video and audio streams, codecs, dimensions, frame rate, time base and reported duration. A media inspection tool such as FFmpeg’s probing utilities can help expose these properties; do not infer them from the filename or from how a player displays the file. Your goal is to find differences that matter to concatenation and to the single output format you intend to send.
A stream-copy approach is only a fit when the inputs satisfy the concat requirements and the resulting streams are suitable for the output. If one clip has a different codec or stream arrangement, the concat demuxer may not be able to treat it as interchangeable with its neighbour. Normalisation can make inputs more consistent, but it involves re-encoding choices and needs enough processing capacity for continuous operation. Run the planned path for long enough to include transitions between different types of material, not just the first clip.
Pay particular attention to duration metadata. If a file’s duration is inaccurate, timestamp adjustment for the following file can produce a gap or artifact. A transition that looks fine when playing files separately may reveal a timestamp or audio discontinuity when they are processed in sequence. Listen and watch across every boundary in a test playlist, especially where one file has silence, an audio stream is missing or the image format changes.
Plan for the archive separately from the live output. YouTube says that streams under 12 hours can be automatically archived; if a stream exceeds 12 hours, it may not be captured at all. A continuous 24/7 session therefore should not be treated as your only copy of the content or recording. If keeping an archive matters, arrange an independent recording or use shorter sessions and verify the current YouTube archive guidance before making plans around it.
Test privately and monitor stream health
Create or select a YouTube Live stream and configure the encoder destination with the stream URL and stream key. YouTube’s encoder setup instructions describe the workflow. Treat the key as a password-like credential. Confirm that the correct channel and event are selected, then connect without assuming that a successful FFmpeg process means YouTube is receiving a healthy feed.
Test privately or unlisted before making the broadcast public. Follow YouTube’s preview and stream-health indicators in Live Control Room and check both picture and sound. Use a test playlist that includes the largest resolution, the most demanding motion, different audio cases and transitions between files. If you only test one simple clip, you have not tested the sequence that will actually run through the night.
Observe the connection over a meaningful stretch of time rather than judging it from an initial connection. Watch for encoder errors, dropped frames, a growing delay, audio dropouts, black frames and gaps at file boundaries. If the stream health worsens, reduce output demands or address the source of the variation before launching a long session. A bitrate number alone cannot diagnose whether the issue is upload capacity, input compatibility, processing load or a faulty file.
Write down the chosen output profile and the changes that improve or worsen the test. This is useful when you need to distinguish a playlist edit from an encoder or network change. Also decide who will notice a failure and what the recovery procedure is. A 24/7 stream depends on a running encoder, compatible inputs, an available upstream and some way to see when the feed stops; no single setting removes all of those dependencies.
If leaving a computer on or watching for a local encoder failure is the specific difficulty, StreamNeo can remove that particular burden: you upload the video, provide the YouTube stream key, and the broadcast continues with your computer switched off, with monitoring and restart after a drop. It is YouTube-only, so confirm that fits your workflow and still test the file and channel before relying on a continuous broadcast.
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
What FFmpeg bitrate should I use for YouTube Live at 1080p30?
YouTube recommends 5–14 Mbps for H.264 at 1080p30. Choose within that range based on the picture you need and the upload capacity you can sustain, and test representative content before going public. The range is guidance, not a guarantee that a particular bitrate will remain stable on your connection.
Is 720p30 a sensible choice for a 24/7 playlist?
It can be, especially when the source is 720p or your sustained upload makes a 1080p profile difficult to support. YouTube recommends 3–8 Mbps for H.264 at 720p30. Compare the picture and stream health in a test rather than assuming either lower or higher resolution is automatically better.
Why does the FFmpeg concat playlist show gaps or artifacts?
Check whether the files have matching streams, codecs and time base, and whether their duration information is accurate. The concat demuxer uses a preceding file’s duration when adjusting timestamps for the next one, so inaccurate metadata can cause problems. Test transitions in the actual sequence and normalise inputs where needed.
Will YouTube archive a 24-hour live stream automatically?
Do not rely on that. YouTube says a stream exceeding 12 hours may not be captured at all, so a 24-hour session may have no automatic archive. Keep an independent recording if preserving the stream matters, and verify YouTube’s current archive guidance.