FFmpeg can play files in a chosen order, but it does not provide a built-in calendar that selects a different playlist each weekday. Create a concat manifest for each day, then use an external scheduler—such as cron on Linux—to select and run the right manifest. The steps below cover a daily file job and explain what changes when you need to replace a continuously running stream.
How the daily playlist setup works
Use the FFmpeg concat demuxer to sequence the media files listed in a text manifest. Keep a separate manifest for each day or schedule variant, and let a wrapper script or scheduler choose which one to use. The FFmpeg documentation describes the concat demuxer, not a built-in weekday playlist selector. FFmpeg concat demuxer documentation
As an Amazon Associate I earn from qualifying purchases.
The example below creates an output file. A live broadcast needs a different output destination and platform-specific options; the FFmpeg sources cited here do not establish the ingest settings for any particular service.
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 →Create one concat manifest per day
Make a directory for the manifests and list each day’s files in playback order. For example, save this as /srv/playlists/monday.ffconcat:
#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
ffconcat version 1.0
file /srv/media/clip-one.mp4
file /srv/media/clip-two.mp4
Repeat the pattern for other days, changing the filename and order as needed. The exact header must be the first line, with no leading whitespace or byte-order mark, for FFmpeg to recognize the format automatically. The manifest uses one directive per line. If a path contains spaces or special characters, follow the concat documentation’s escaping rules rather than assuming ordinary shell quoting will work. FFmpeg concat demuxer documentation
Check compatibility before using stream copy
Stream copy avoids re-encoding, but the concat demuxer requires matching streams, codecs, and time bases across the listed files. If the inputs do not match, normalize them in advance or choose a re-encoding or filter workflow instead. The command below is an illustrative pattern, not a tested command:
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.
ffmpeg -f concat -i /srv/playlists/monday.ffconcat -c copy output.mp4
Incorrect or unavailable media durations can also lead to timestamp artifacts because the demuxer uses durations to adjust timestamps. Where a duration is missing or inaccurate, the manifest’s duration directive can provide an override; consult the documentation for its syntax and behavior.
Schedule the right manifest on Linux
A wrapper can map the current weekday to a manifest and invoke FFmpeg. For example, a daily cron entry can run a wrapper at midnight:
Rank #3
- 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.
0 0 * * * /usr/local/bin/run-daily-playlist >> /var/log/daily-playlist.log 2>&1
This example assumes the wrapper exists and has executable permissions; it does not itself choose a manifest. Configure the wrapper to determine the intended day in the schedule’s time zone, select the matching manifest, and use absolute paths for FFmpeg and media files. Cron runs jobs in a defined environment rather than an interactive login shell, so do not rely on shell settings or a PATH that is only available in your terminal. The cited crontab manual documents the CRON_TZ setting for specifying a crontab’s time zone. Linux crontab manual
One wrapper or separate weekday entries?
- One daily wrapper: Centralizes the weekday-to-manifest logic and runs at the same time each day. This is useful when selection rules should live in one place.
- Separate cron entries: Makes each scheduled run visible in the crontab, but requires maintaining the schedule and the matching manifest paths there.
Either approach still needs an explicit time zone and a plan for the cron job’s environment. Cron’s behavior is specific to Linux cron; other operating systems use different schedulers.
Rank #4
- NEARLY 2X FASTER THAN OUR PREVIOUS GENERATION(8) – move 1,000 high-res photos in under 60 seconds(6) with up to 2000MB/s transfer speeds(2).
- IP65 RATING AND UP TO 3M DROP PROTECTION(3) – protects against spills and drops.
- POCKET-SIZED – fits easily in pockets and small bags.
- SPACE TO OWN YOUR AI CONTENT – speed and capacity to download your high-res clips and photo edits.
- 256-BIT AES ENCRYPTION(4) – helps keep private files secure with password protection.
If FFmpeg must keep running across midnight
A one-shot cron launch does not define how an already-running FFmpeg process should change playlists at midnight. Decide whether the existing process should stop and be replaced, whether a supervisor should restart it, or whether a long-running wrapper should manage the transition. Also plan what should happen after a failed launch or machine restart, and account for daylight-saving transitions if the schedule follows local time. These choices depend on whether FFmpeg is generating files or sending a continuous output; the appropriate live-output configuration depends on the destination platform.
Troubleshoot common problems
- FFmpeg does not recognize the manifest automatically: Check that
ffconcat version 1.0is exactly on the first line, with no leading spaces or byte-order mark. - A listed path is rejected: The concat demuxer’s
safeoption defaults to1and rejects unsafe paths. Setting it to0accepts any filename, so use that only with manifests you trust; prefer safe paths and documented escaping where possible. FFmpeg concat demuxer documentation - Stream copy fails or the output is unusable: Compare the input streams, codecs, and time bases. Normalize incompatible media or use a re-encoding/filter workflow.
- Timestamp gaps or artifacts appear: Check whether input durations are correct and use a
durationdirective where a duration is unavailable or inaccurate. - The wrong day’s playlist runs: Check the scheduler’s time zone, the wrapper’s weekday mapping, and whether cron’s environment differs from your login shell.
- The playlist does not change at midnight: A daily launch does not replace a still-running FFmpeg process. Add an explicit stop-and-relaunch or supervision strategy.
Or let it run in the cloud
If your goal is a continuously looping prerecorded-video stream on YouTube rather than a local FFmpeg job, 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 camera feed. Your computer and home connection do not have to stay on; uploads stream as made, up to 4K 60fps, at one price per slot regardless of quality; and StreamNeo automatically recovers if YouTube drops the stream. The first day is free with no card required. Monthly billing is $9.99 per month. Start your free StreamNeo day.
Quick Recap
Best Value
- Easily store and access 5TB of 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 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.
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.




