Free tools Windows power users keep installed
One-click scans. No signup required.
To shuffle videos in a continuous YouTube stream with FFmpeg, put compatible files in a randomized FFmpeg concat-demuxer list, then loop that list with -stream_loop -1. This repeats the same shuffled order each cycle. FFmpeg’s input-loop option does not reshuffle the list; a fresh order each cycle requires external logic to prepare and switch to the next list at a cycle boundary.
Choose what “shuffle” should mean
There are two different behaviors to plan for:
- Repeat one shuffled cycle: Randomize the file list once and loop the concat input indefinitely. The same sequence repeats.
- Reshuffle every cycle: Have an external controller create a new order and transition or restart FFmpeg at the end of each cycle. The documented
-stream_loopoption repeats an input; it does not randomize it. Rewriting the playlist while FFmpeg is already processing it is not a documented way to change the active order.
For the simplest reliable setup, start with a single randomized cycle that repeats. Add cycle-by-cycle reshuffling only if you can manage the transition and verify it does not interrupt the broadcast.
Prepare compatible video files
The concat demuxer reads a sequence of files as one ordered input. The files should have compatible stream characteristics—such as matching codecs, dimensions, frame rates, and audio layout—so FFmpeg can process them consistently. If they differ, test and normalize the sources first, or use a controller that opens and encodes each file consistently.
Keep the playlist paths simple
Use relative filenames with ordinary characters where possible. The concat demuxer’s safe mode is enabled by default, and it can reject unsafe paths or directives. The example below uses -safe 0 to permit paths outside that default; use it only with a playlist and file paths you trust. FFmpeg’s concat documentation describes quoting rules for paths with spaces or apostrophes, so escape those correctly rather than assuming every filename will work as written.
#1 Best Overall
- Get NVMe solid state performance with up to 1050MB/s read and 1000MB/s write speeds in a portable, high-capacity drive(1) (Based on internal testing; performance may be lower depending on host device & other factors. 1MB=1,000,000 bytes.)
- Up to 3-meter drop protection and IP65 water and dust resistance mean this tough drive can take a beating(3) (Previously rated for 2-meter drop protection and IP55 rating. Now qualified for the higher, stated specs.)
- Use the handy carabiner loop to secure it to your belt loop or backpack for extra peace of mind.
- Help keep private content private with the included password protection featuring 256‐bit AES hardware encryption.(3)
- Easily manage files and automatically free up space with the SanDisk Memory Zone app.(5). Non-Operating Temperature -20°C to 85°C
Create a randomized concat list
From a POSIX shell, this example finds common video file types in the current directory, randomizes their order, and writes an ffconcat list. It assumes filenames do not contain newlines or apostrophes; for those cases, use a script that applies FFmpeg concat syntax quoting to each path.
find . -maxdepth 1 -type f ( -iname '*.mp4' -o -iname '*.mov' -o -iname '*.mkv' ) -print
| sort -R
| sed "s|^./|file '|; s|$|'|" > shuffled.ffconcat
Review shuffled.ffconcat before streaming. It should contain one file entry per intended video, in the order you want for that cycle. The randomization happens in the shell command before FFmpeg reads the list; it is not a concat-demuxer shuffle feature.
Rank #2
- Solid state performance with up to 800MB/s read speeds in a portable drive. (Based on internal testing; performance may be lower depending on host device, interface, usage conditions and other factors. 1MB=1,000,000 bytes.)
- Back up your content and memories on a storage solution that fits seamlessly into your mobile lifestyle.
- Take it with you on your adventures—up to two-meter drop protection means this durable drive can take a beating. (Based on internal testing.)
- Secure it to your belt loop or backpack for extra peace of mind thanks to the tough rubber hook.
- From Sandisk, a brand professional photographers trust to take on assignments.
Connect FFmpeg to YouTube and loop the sequence
- Get YouTube’s ingest details. In YouTube Studio, create or select a stream in Live Control Room, then copy the server URL and stream key. Keep the stream key private. YouTube’s encoder instructions say to enter the Live server URL and stream key into the encoder.
- Set the connection values. Put the server URL and stream key into environment variables so the key is not embedded in your shell history or shared command text. The precise URL format depends on the ingest details YouTube gives your stream.
- Start FFmpeg. This is a conceptual RTMP/FLV template, not a tested command. Replace the encoding settings as needed for your media, FFmpeg build, hardware, and YouTube’s selected ingest protocol.
- Check YouTube’s preview. Confirm in Live Control Room that YouTube is receiving video and audio before relying on the stream.
export YOUTUBE_RTMP_URL='YOUR_YOUTUBE_SERVER_URL'
export YOUTUBE_STREAM_KEY='YOUR_PRIVATE_STREAM_KEY'
ffmpeg -re -stream_loop -1 -f concat -safe 0 -i shuffled.ffconcat
-c:v libx264 -c:a aac -f flv
"$YOUTUBE_RTMP_URL/$YOUTUBE_STREAM_KEY"
-re reads the input at its native rate rather than sending it as fast as possible. -stream_loop -1 loops the entire concat input indefinitely. Because the list was randomized once, FFmpeg repeats that same sequence; it does not create a new random order at the end of a pass.
Choose encoding settings for your actual input
The template uses H.264 video and AAC audio, but it does not specify a bitrate, resolution, frame rate, or keyframe interval. Those values depend on the source files and the ingest protocol shown in YouTube Studio. Check the current encoder guidance for your stream rather than copying settings from an example for a different protocol. If you change the example to use a hardware encoder, confirm that encoder is available in your FFmpeg build.
Rank #3
- Capacity Display Variance: 500GB external ssd often appears as around 465GB on Windows. MacOS can show full 500 GB capacity. This is binary calculation difference and doesn’t affect SSD hard drive actual physical storage
- 1050 MB/s Speed: Instantly access to your files with blazing-fast 10Gbps external SSD read up to 1050MB/s and write up to 1000MB/s. LED Light indicates USB SSD instant activity
- Data Security: Solid state drives S.M.A.R.T. health diagnostics and adaptive TRIM optimizing data block management ensures consistent write speeds and extends the longevity of the portable SSD
- USB-C & USB-A Cable: Both cables featuring rapid USB 3.2 Gen2, this USB SSD effortlessly bridges devices, enabling seamless cross-platform file transfers and backup between computers, smartphones, tablets and iPhone
- Always Fast: No slowdowns for large file transfers. With SLC caching (25% of current available capacity allocated as high-speed cache), this external SSD delivers steady 10Gbps for transfers within the cache capacity
Reshuffle between cycles without confusing ingest playlists
To reshuffle after each completed pass, an external supervisor must detect the cycle boundary, generate a new randomized list, and coordinate a controlled transition or restart. That adds operational complexity: a restart can interrupt the feed, while seamless transitions require a media controller designed to move between inputs. Do not assume editing shuffled.ffconcat while FFmpeg is running changes the order FFmpeg has already opened.
YouTube’s HLS media playlists solve a different problem: they describe the order of short ingest segments so the receiver can reconstruct a stream. They are not a mechanism for randomizing your source videos. If you deliberately choose YouTube HLS ingestion, follow its HLS requirements rather than applying RTMP settings by habit.
Rank #4
- Easily store and access 2TB to content on the go with the Seagate Portable Drive, a USB external hard drive
- Designed to work with Windows or Mac computers, this external hard drive makes backup a snap just drag and drop
- To get set up, connect the portable hard drive to a computer for automatic recognition no software required
- This USB drive provides plug and play simplicity with the included 18 inch USB 3.0 cable
- The available storage capacity may vary.
Plan for YouTube’s stream lifecycle
YouTube Help says streams under 12 hours are automatically archived. A genuinely continuous 24/7 broadcast therefore needs a plan for broadcast lifecycle and archiving; do not assume one archived video covers an unlimited-duration stream. YouTube’s API documentation distinguishes a live broadcast—the watchable event or video—from a live stream, the audio-video feed sent to YouTube. It gives a 24/7 live feed as an ongoing-use example. In API-managed or scheduled setups, keep the broadcast resource’s lifecycle separate from FFmpeg’s media-input loop.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.RTMP and HLS are different ingest choices
YouTube describes RTMP as a common encoder connection and supplies the server URL and key to use. HLS is an alternative with separate format and encoding requirements. YouTube’s HLS guidance specifies muxed M2TS, H.264 or HEVC video, AAC audio, closed GOP, and support for up to 60 fps; it also notes relatively higher latency. Those HLS requirements should not be treated as universal RTMP settings.
Quick wins for a faster PC:
Clear out junk files and repair common Windows errorsFree Scan →Scan for outdated or missing drivers - takes under a minuteDriver Scan →Repair Windows errors before they cause bigger problemsFix Now →Best Value
- MADE FOR THE MAKERS: Create; Explore; Store; The T7 Portable SSD delivers fast speeds and durable features to back up any endeavor; Build your video editing empire, file your photographs or back up your blogs all in an instant
- SHARE IDEAS IN A FLASH: Don’t waste a second waiting and spend more time doing; The T7 is embedded with PCIe NVMe technology that brings fast read and write speeds up to 1,050/1,000 MB/s¹, making it almost twice as fast as the T5
- ALWAYS MAKE THE SAVE: Compact design with massive capacity; With capacities up to 4TB, save exactly what you need to your drive – from large working files to game data and everything in between
- ADAPTS TO EVERY NEED: Whether using a PC or mobile phone, count on the T7 for extensive compatibility²; It’s a true team player when it comes to heavy-duty application usage or file-saving
- HI RESOLUTION VIDEO RECORDING: Record Ultra High Resolution (4K 60fs) videos directly onto the T7 Portable SSD with your favorite camera or mobile devices; Supports iPhone 15 Pro Res 4K at 60fps video and more³
Troubleshoot a stream that fails or breaks
- FFmpeg rejects the concat file: Check that each entry uses valid concat syntax, that paths are correct, and that safe mode is not rejecting a path. Prefer simple relative paths; use
-safe 0only for trusted playlist content. - The output has gaps, errors, or missing audio: Check that the source files have compatible stream characteristics. Test each file and normalize mismatched media before concatenating.
- YouTube receives no signal: Verify that the server URL and stream key are the current values from the selected stream in Live Control Room, that the key is private, and that FFmpeg is still running. Check YouTube’s preview and status.
- The sequence repeats but does not reshuffle: This is expected with
-stream_loop -1. Generate a new order and use external cycle-control logic if you need a fresh shuffle each pass. - You chose HLS but the ingest rejects the stream: Check the HLS-specific requirements—muxed M2TS, H.264 or HEVC, AAC, closed GOP, and the supported frame rate—in YouTube’s HLS guide. Do not assume an RTMP/FLV command is an HLS configuration.
- The archive does not cover the full continuous broadcast: YouTube’s automatic archive statement applies to streams under 12 hours. Plan for the broadcast lifecycle and archival behavior of a longer-running feed.
Or let it run in the cloud
If you want a YouTube channel to stay live without keeping this FFmpeg setup running at home, StreamNeo is a cloud option: upload a recording or build a playlist, add your YouTube stream key, and go live. It plays uploaded videos, not a live camera feed, and the channel can keep streaming with your computer off.
Quick Recap
- One flat price per slot for any quality up to 4K 60fps, streamed as uploaded without re-encoding 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.
See StreamNeo or start the free 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.

