You can use FFmpeg’s h264_nvenc encoder to send an ordered playlist of prerecorded videos to YouTube Live, provided your FFmpeg build, NVIDIA GPU and driver support NVENC. Make a playlist manifest, create a YouTube stream in YouTube Studio, then run FFmpeg with the stream’s ingest address and key. Test privately or unlisted first: the sample below is a starting point, not a guarantee that every playlist or machine will work unchanged.
What you need before you start
- An NVIDIA GPU and driver that support NVENC, plus an FFmpeg build that includes the
h264_nvencencoder. The GPU brand alone does not establish compatibility. - Video files accessible to the machine running FFmpeg, arranged in the order you want them played.
- A stable upload connection with enough capacity for the stream you intend to send.
- A YouTube channel able to use Live Control Room and its stream-specific server URL and stream key.
FFmpeg’s playlist input handles the media sequence; the encoder turns that sequence into the outgoing live feed. YouTube then processes the incoming stream for playback. A playlist does not itself create a YouTube broadcast, and YouTube’s transcoding does not make an unstable upload feed reliable.
As an Amazon Associate I earn from qualifying purchases.
Check that FFmpeg can use NVENC
In a terminal, run:
ffmpeg -version
ffmpeg -encoders
Look through the encoder list for h264_nvenc. If it is absent, this FFmpeg binary cannot use that encoder as installed. Check the binary build, GPU and driver rather than assuming that any NVIDIA system will work. You can also inspect a media file’s streams before building the playlist:
ffprobe -hide_banner -i "video.mp4"
Note each file’s video resolution, frame rate and audio layout. Those properties affect the settings you should choose and whether the files behave well together in a concat-demuxer playlist.
#1 Best Overall
- AI Performance: 767 AI TOPS
- OC mode: 2632 MHz (OC mode)/ 2602 MHz (Default mode)
- Powered by the NVIDIA Blackwell architecture and DLSS 4
- Axial-tech fan design features a smaller fan hub that facilitates longer blades and a barrier ring that increases downward air pressure
- A 2.5-slot design maximizes compatibility and cooling efficiency for superior performance in small chassis
Prepare an ordered playlist manifest
Create a plain-text file named playlist.txt. Put the header first, then one file line for each clip in the exact playback order:
ffconcat version 1.0
file 'video-01.mp4'
file 'video-02.mp4'
file 'video-03.mp4'
Use paths that are valid from the directory where you will run FFmpeg. If a filename or path contains characters that need quoting or escaping, follow the concat-demuxer syntax for that path; don’t assume every path can be copied into a single-quoted line unchanged. The example uses relative paths. Absolute or otherwise non-safe paths may require -safe 0, which is appropriate only when the manifest is one you control.
Check whether the clips suit the concat demuxer
The concat demuxer reads a sequence from a manifest. Its streams need to be suitable for concatenation; files with different resolutions, frame rates, codecs or audio layouts can cause problems at clip boundaries or fail to behave as expected. Encoding the final output does not automatically guarantee clean transitions from mismatched inputs. Test the sequence and inspect the preview before relying on it.
Rank #2
- Powered by the NVIDIA Blackwell architecture and DLSS 4
- Powered by GeForce RTX 5070 Ti
- Integrated with 16GB GDDR7 256bit memory interface
- PCIe 5.0
- WINDFORCE cooling system
If your clips need normalization or filtering before they can be joined, FFmpeg’s concat filter is a different approach and is recommended in FFmpeg’s FAQ when re-encoding is needed. It requires a filter graph suited to the actual input streams; the simple manifest command below is not a substitute for that work. The file-level concat protocol is also distinct from the concat demuxer and is intended for formats that support file-level concatenation.
Create the YouTube Live stream and protect its key
- Open YouTube Studio and go to Live Control Room.
- Create or schedule the stream. Use the stream’s server URL and stream key shown for that broadcast; do not reuse example placeholders as real credentials.
- Choose RTMPS ingestion where available. YouTube recommends RTMPS for encrypted ingestion.
- Keep the stream key private. YouTube describes stream keys as like the stream’s password and address. If it is exposed, reset it in YouTube Studio before broadcasting again.
Do not paste a real key into a public script, shared document or support post. The command below intentionally uses placeholders. Shell history and process environments can also expose credentials depending on the system and how commands are run, so use a private configuration method appropriate to your machine.
Run FFmpeg with NVENC and loop the playlist
Replace the ingest URL and key placeholders with the values from YouTube Studio. Confirm that your FFmpeg build accepts the options and that the selected video bitrate, resolution, frame rate and audio settings fit both your source and upload connection.
Rank #3
- Powered by the NVIDIA Blackwell architecture and DLSS 4. System Requirements: Minimum 850W PSU with 16-pin 12V-2x6 (12VHPWR) connector required. Verify before purchasing.
- Military-grade components deliver rock-solid power and longer lifespan for ultimate durability. Compatibility: 348mm (13.7") length, 3.6 slots, 4.3 lbs. Confirm case clearance and slot spacing. GPU bracket included.
- Protective PCB coating helps protect against short circuits caused by moisture, dust, or debris
- 3.6-slot design with massive fin array optimized for airflow from three Axial-tech fans
- Phase-change GPU thermal pad helps ensure optimal thermal performance and longevity, outlasting traditional thermal paste for graphics cards under heavy loads
ffmpeg -re -stream_loop -1 -f concat -safe 0 -i playlist.txt
-c:v h264_nvenc -c:a aac -b:a 128k
-f flv "rtmps://YOUR_INGEST_URL/YOUR_STREAM_KEY"
This is a representative shell command, not a tested, universal configuration. -re reads the input at its recorded pace; -stream_loop -1 asks FFmpeg to loop the input indefinitely; -f concat selects the manifest-based concat demuxer; -safe 0 permits non-safe paths in the manifest; and -f flv selects the output container commonly used for this ingest workflow. Remove -safe 0 if you do not need it, and use it only with a playlist you trust.
The Tool Desk
Outbyte PC Repair FREEClear out junk files and repair common Windows errorsFree Scan →Outbyte Driver Updater FREEFix the driver behind crashes, sound loss and screen glitchesFind Drivers →The example’s 128k audio bitrate is YouTube’s recommended value for stereo audio, not a requirement for every source or layout. It does not set the video bitrate, resolution, frame rate, or keyframe interval for you. Add and verify settings that match your actual stream rather than copying an arbitrary video bitrate.
Apply YouTube’s baseline encoder guidance
For a conventional SDR live stream, YouTube’s encoder guidance lists H.264 as supported and recommends constant bitrate (CBR), progressive scan, square pixels, a two-second keyframe interval (not exceeding four seconds), and AAC or MP3 audio. For stereo audio, it recommends 44.1 kHz and 128 Kbps. These are configuration recommendations, not a promise that a particular command, GPU or network will work.
Rank #4
- Powered by the NVIDIA Blackwell architecture and DLSS 4
- Powered by GeForce RTX 5060
- Integrated with 8GB GDDR7 128bit memory interface
- PCIe 5.0
- WINDFORCE cooling system
The right video bitrate depends on the stream’s resolution and frame rate, as well as the upload link. YouTube’s guidance does not justify one bitrate for every stream. Choose a rate appropriate to your intended output and reliable upload capacity; verify the incoming preview and stream-health messages during a test.
When configuring a two-second keyframe interval in FFmpeg, the GOP size is tied to the output frame rate: for example, two seconds at 30 frames per second corresponds to 60 frames between keyframes. Set this only after choosing and confirming the actual output frame rate; a mismatched GOP setting will not represent the intended interval. Keep the interval within YouTube’s recommended maximum of four seconds.
Free tools Windows power users keep installed
One-click scans. No signup required.
Test the preview, then run the broadcast
- Start FFmpeg while the YouTube stream is in the intended setup state.
- In Live Control Room, wait for the incoming preview. Check that video moves and that audio is present and intelligible.
- Review stream-health messages and confirm the feed remains stable before making a scheduled stream public. Use YouTube’s Go live control when that workflow requires it.
- For the first run, use a private or unlisted test and representative video and sound. YouTube advises testing with representative motion and audio.
- When finished, stop or end the stream using the YouTube interface as directed, then stop the FFmpeg process.
A successful preview is not proof that every later playlist transition will be seamless. Let the test run across clip boundaries and check for missing audio, freezing, black frames or encoder errors.
Best Value
- Powered by the NVIDIA Blackwell architecture and DLSS 4 OC mode: 2640MHz/Default mode: 2610MHz (Boost Clock)
- Military-grade components deliver rock-solid power and longer lifespan for ultimate durability
- Protective PCB coating helps protect against short circuits caused by moisture, dust, or debris
- 3.125-slot design with massive fin array optimized for airflow from three Axial-tech fans
- Phase-change GPU thermal pad helps ensure optimal thermal performance and longevity, outlasting traditional thermal paste for graphics cards under heavy loads
Troubleshooting common failures
| Symptom | Likely cause | What to check or do |
|---|---|---|
h264_nvenc is unknown or unavailable |
The installed FFmpeg build does not expose the encoder, or the GPU/driver combination is unsupported. | Check ffmpeg -encoders, the FFmpeg build and the installed driver/GPU support. Do not infer support from the NVIDIA name alone. |
| FFmpeg cannot open the playlist or a clip | The manifest path is wrong, the command is being run from a different directory, or a filename needs correct concat-manifest quoting. | Verify each file path and permissions. Try a controlled relative-path manifest first; use -safe 0 only if needed and only with a manifest you control. |
| YouTube does not receive the stream | The server URL or key may be wrong, the stream may not be created or ready, or the local upload may be interrupted. | Copy the current stream-specific values from YouTube Studio, check Live Control Room state and FFmpeg output, and verify the network connection. |
| Video appears but audio is missing or distorted | Input files may have no audio, differing audio layouts, or settings that do not suit the source. | Inspect each input with ffprobe and check audio in the preview. The example’s AAC and stereo-bitrate recommendation does not normalize every source layout. |
| Playback breaks or changes abruptly at a clip boundary | Concatenated inputs may differ in stream parameters, or the boundary may expose a source-specific issue. | Test every transition. Normalize or filter incompatible inputs, or use a concat-filter workflow designed for their streams. |
| Stream health reports interruptions or the preview buffers | The upload feed may not be stable at the chosen output settings. | Choose quality based on reliable upload capacity, check upload speed, and lower or adjust the output settings if the connection cannot sustain them. |
| The wrong stream is live, or a key may be exposed | A stream-specific key was copied incorrectly or shared. | Stop the affected broadcast if needed, keep credentials private, and reset an exposed key in YouTube Studio. |
Copyright and YouTube channel rules still apply
Using prerecorded files and an encoder does not grant permission to broadcast the material. Use content you own or are authorized to stream, including music and other material embedded in the video. A private or unlisted technical test is not a substitute for rights clearance, and this FFmpeg setup does not establish whether a channel qualifies for monetization or complies with YouTube’s channel policies.
Review YouTube’s current copyright and monetization rules for your channel and content before scheduling a public stream. Repeating a playlist technically is not, by itself, evidence that the material is original, authorized or eligible for monetization.
Or let it run in the cloud
If the goal is a YouTube channel that keeps prerecorded videos playing without leaving a home computer on, StreamNeo is a cloud alternative: upload your recording or build a playlist, add your YouTube stream key once, then go live. It loops uploaded videos from the cloud; it does not go live from a camera.
Recommended Free Tools
Quick Recap
- Nothing has to stay running at home: the stream continues from the cloud with your computer off.
- Any quality up to 4K 60fps as uploaded, at one flat price per slot, with no re-encode or quality tiers.
- Automatic recovery if YouTube drops the stream.
- The first day is free with no card, one free day per account.
- Monthly: $9.99 per month.
Start the free day at StreamNeo registration.
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.




