The Tool Desk
Outbyte Driver Updater FREEFix the driver behind crashes, sound loss and screen glitchesFind Drivers →Outbyte PC Repair FREEClear out junk files and repair common Windows errorsFree Scan →To rotate a fixed sequence of videos on YouTube Live, put their paths in an FFmpeg concat file, then read that list with the concat demuxer and repeat it using -stream_loop -1. This works best when every clip has compatible streams, codecs and time bases. If they do not, normalize the clips first or use FFmpeg’s concat filter and re-encode. You will also need a computer that stays on and a YouTube Live ingest URL and stream key.
What a concat playlist does—and what it does not
An FFmpeg concat file is a plain-text, ordered list of media files. The concat demuxer presents those files as one virtual input, so FFmpeg can send them sequentially. Adding -stream_loop -1 makes that finite input repeat indefinitely while the FFmpeg process continues running.
As an Amazon Associate I earn from qualifying purchases.
The list is static: it does not discover new files, schedule different videos by time, or provide a live playlist editor. To change the rotation, edit the file and restart the stream. A local FFmpeg stream also depends on the computer, power and internet connection remaining available.
Free tools Windows power users keep installed
One-click scans. No signup required.
1. Check that the video files can be joined
Before building a long-running stream, inspect the files. The concat demuxer does not convert or reconcile different media formats. Listed inputs need matching stream layouts and compatible properties, including codecs and time bases; differing resolution, frame rate, audio layout or other parameters can also cause problems at transitions.
#1 Best Overall
- Includes Raspberry Pi 5 with 2.4Ghz 64-bit quad-core CPU (8GB RAM)
- Includes 128GB Micro SD Card pre-loaded with 64-bit Raspberry Pi OS, USB MicroSD Card Reader
- CanaKit Turbine Black Case for the Raspberry Pi 5
- CanaKit Low Noise Bearing System Fan
- Mega Heat Sink - Black Anodized
For a quick inventory, run ffprobe on each file, for example:
ffprobe -v error -show_entries stream=index,codec_type,codec_name,time_base,width,height,r_frame_rate,sample_rate,channels -of default=noprint_wrappers=1 "segment-01.mp4"
Compare the results across the playlist. Check that each file has the expected audio and video streams and that corresponding streams use compatible codecs and time bases. This inspection helps identify likely incompatibilities; it does not prove that every transition will be clean, so test the complete list.
PC Slower Than It Used to Be?
A free scan shows the junk files, broken settings and background clutter dragging Windows down - then fixes them in one click.Free scan · Windows 10 & 11Outdated Drivers Are Slowing You Down
One free scan finds every outdated or missing driver and matches the right update for your exact hardware.Free scan · exact hardware matchRank #2
- Includes Raspberry Pi 4 4GB Model B with 1.5GHz 64-bit quad-core CPU (4GB RAM)
- Includes Pre-Loaded 32GB EVO+ Micro SD Card (Class 10), USB MicroSD Card Reader
- CanaKit Premium High-Gloss Raspberry Pi 4 Case with Integrated Fan Mount, CanaKit Low Noise Bearing System Fan
- CanaKit 3.5A USB-C Raspberry Pi 4 Power Supply (US Plug) with Noise Filter, Set of Heat Sinks, Display Cable - 6 foot (Supports up to 4K60p)
- CanaKit USB-C PiSwitch (On/Off Power Switch for Raspberry Pi 4)
Choose the right concatenation method
| Approach | Use it when | Trade-off |
|---|---|---|
| Concat demuxer with stream copy | The files already have compatible streams and you do not need to resize, filter or otherwise normalize them. | It avoids a re-encoding step and generally requires less processing, but incompatible streams or inaccurate duration metadata can cause failures or irregular transitions. |
| Concat filter with re-encoding | The clips need consistent resolution, frame rate, audio or other media properties, or require filtering. | It gives you a place to normalize inputs, but adds an encoding step and requires enough processing capacity for the chosen settings. |
There is no universal stream-copy command that will make mismatched files compatible. If you standardize the clips beforehand, check the resulting files again. Pre-transcoding can help with a static playlist, but normalization alone is not a guarantee against every source-file problem.
2. Create the concat file
Save a plain-text file named playlist.ffconcat alongside the video files. Its first line must be ffconcat version 1.0; follow it with one file directive for each clip, in the order you want to play them:
ffconcat version 1.0
file 'segment-01.mp4'
file 'segment-02.mp4'
file 'segment-03.mp4'
Relative paths are convenient when the playlist and media files share a folder. Keep paths simple and portable where possible. The concat demuxer’s safe-path mode is enabled by default and restricts paths it considers unsafe.
When a path is rejected
If the list uses a filename or path that safe-path mode rejects, either move or rename the files to use acceptable relative paths, or add -safe 0 before the concat input. Only disable safe-path checks for a playlist you control: doing so permits arbitrary paths and relaxes a guard against unsafe playlist directives.
When durations are wrong
The demuxer uses each file’s duration to position the next one. Incorrect duration metadata can produce gaps, overlaps or other irregular transitions. Inspect the affected file’s actual duration and metadata before making changes. A duration directive in the concat file can override the duration used for that file, but use it only when you have a reliable value; an arbitrary duration can shift subsequent timestamps instead of fixing them.
Rank #4
- Broadcom BCM2711, quad-core Cortex-A72 (ARM v8) 64-bit SoC @ 1. 5GHz
- 2. 4 GHz and 5. 0 GHz IEEE 802. 11b/g/n/ac wireless LAN, Bluetooth 5. 0, BLE
- 2 × USB 3. 0 ports, 2 x USB 2. 0 Ports
- 2 × micro HDMI ports supproting up to 4Kp60 video resolution
- Micro SD card slot for loading operating system and data storage
3. Send the repeating list to YouTube Live
Use this as a command template for compatible inputs, not as a guaranteed YouTube ingest recipe:
ffmpeg -re -stream_loop -1 -f concat -i playlist.ffconcat -c:v libx264 -c:a aac -f flv 'rtmp://INGEST_ENDPOINT/STREAM_KEY'
Quick wins for a faster PC:
Scan for outdated or missing drivers - takes under a minuteDriver Scan →Clear out junk files and repair common Windows errorsFree Scan →Fix the driver behind crashes, sound loss and screen glitchesFind Drivers →Replace the output URL with the ingest URL and stream key shown for your YouTube Live setup. Replace or extend the output options to match the media and the current ingest settings shown for your account. The example selects H.264 video and AAC audio, but it does not establish the right resolution, frame rate, bitrate, keyframe interval or audio parameters for your particular stream.
Best Value
- Includes Raspberry Pi 5 16GB with 2.4Ghz 64-bit quad-core CPU (16GB RAM)
- Includes 128GB Micro SD Card pre-loaded with 64-bit Raspberry Pi OS, USB MicroSD Card Reader
- CanaKit Turbine Black Case for the Raspberry Pi 5
- CanaKit Low Noise Bearing System Fan
- Mega Heat Sink - Black Anodized
-reasks FFmpeg to read file input at approximately real-time speed instead of consuming it as fast as possible. Validate its behavior with your actual input and installed FFmpeg version.-stream_loop -1repeats the concat input indefinitely. It is an input option, so it belongs before the corresponding-i.-f concatselects the concat demuxer, and-i playlist.ffconcatsupplies its list.-c:vand-c:aselect video and audio encoders. If the inputs are compatible and you want to avoid re-encoding, stream copying may be possible, but do not assume it will work for mismatched inputs or that it is appropriate for your ingest configuration.-f flvsets the output container used by this RTMP command example. Confirm the current ingest details in YouTube’s live console and help for your account before choosing the actual output parameters.
Keep the stream key secret. Avoid putting it in a public script, sharing it in screenshots or logs, or exposing it in a place others can access. If it is exposed, replace it in YouTube’s live controls and update the FFmpeg command.
4. Test the rotation before relying on it
- Start with a short run using the full playlist, so you can observe every transition at least once.
- Watch FFmpeg’s console output for input, timestamp, encoder and connection errors. Save logs somewhere private if you need them for diagnosis, taking care not to expose a URL containing the stream key.
- Check YouTube’s live console to confirm that it receives a usable video and audio stream and that the stream is behaving as expected.
- Only after the clips and transitions work should you leave the stream unattended. A local setup still depends on the computer and network staying available, and this command does not itself provide a managed recovery service.
YouTube Live settings and content checks
Do not rely on an old forum post for fixed ingest values. Confirm the current, account-specific requirements in YouTube Help and the YouTube live console before selecting codec, resolution, frame rate, bitrate, keyframe interval or audio settings. This workflow does not establish a universal current parameter set. If YouTube does not receive a usable stream, the live console is a key place to check the platform-side status.
Also make sure you have the rights to stream every video and audio track in the playlist. Permission to upload a video does not necessarily establish permission to rebroadcast all music, footage or other material in it. Review YouTube’s current copyright rules and policies before scheduling a continuous stream. Repeated or prerecorded programming does not by itself establish compliance with YouTube’s monetization or reused-content policies; assess the channel and content under YouTube’s current guidance rather than assuming that a looping format is exempt.
Recommended Free Tools
Troubleshooting common failures
| Symptom | Likely cause | What to check or change |
|---|---|---|
| FFmpeg rejects a file or errors when it reaches the next clip | The files have incompatible stream layouts, codecs or time bases, or a listed path is wrong. | Compare each file with ffprobe, verify the playlist paths, then standardize the media or use a concat-filter workflow that re-encodes. |
| A clip transition has a gap, overlap or timestamp error | Duration metadata may be inaccurate, or the inputs may not be compatible. | Inspect the actual duration and metadata of the clip before the transition. Use a concat-file duration override only when you have a sound duration value; otherwise fix or normalize the inputs. |
| The playlist will not open a file with spaces or a non-portable path | Safe-path mode rejects the path, or the path is written incorrectly. | Prefer simple relative paths. If the playlist is trusted and the path genuinely requires it, use -safe 0 before -i. |
| YouTube does not show a usable live stream | The ingest URL or key may be wrong, the connection may not be established, or the output may not match current ingest expectations. | Check FFmpeg’s connection and output logs, verify the current URL and key in the live controls, and inspect YouTube’s live console. Confirm ingest parameters against current official guidance rather than copying an unverified recipe. |
| The picture arrives but audio is absent or unusable | The source may lack an audio stream, stream selection may be wrong, or the output’s audio parameters may not suit the ingest. | Inspect the inputs and FFmpeg output for an audio stream, then check the live console and current YouTube guidance. Do not assume a particular audio arrangement is a universal requirement. |
| The stream stops when you leave or shut down the computer | FFmpeg is running locally, so the process and its host must remain available. | Keep the host, power and internet connection active and supervise recovery, or choose a cloud service designed to run the playlist without a home computer. |
Or let it run in the cloud
With StreamNeo, upload a recording or build a playlist, add your YouTube stream key once and go live. StreamNeo loops uploaded videos from the cloud, so your computer and home connection do not have to stay on. It streams the uploaded video as made, up to 4K 60fps, at one flat price per slot; there are no quality tiers or re-encoding. It can automatically recover if YouTube drops the stream. StreamNeo is for YouTube streams from uploaded videos, not camera broadcasts.
The first day is free with no card, one free day per account. After that, the monthly option is $9.99 per month. Every slot includes 10 GB of storage, pooled across active slots, 24/7 looping and playlists, automatic recovery and StreamNeo team support. UPI and cards are available in India; card checkout is available worldwide. For five or more slots, contact support.
Quick Recap
Start your free StreamNeo day.
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.




