FFmpeg cannot read an ordinary CSV as a playlist. First parse the CSV and turn its validated file paths into an FFmpeg concat list; then send that sequence to the stream URL and key for a YouTube Live event. This guide shows the workflow, the compatibility checks that determine whether stream copying is safe, and how to preview and monitor the broadcast.
What you need before starting
- An eligible YouTube channel and a scheduled or created event in YouTube Studio’s Live Control Room.
- FFmpeg installed on the computer that will run the broadcast. The exact commands can vary by operating system and FFmpeg build.
- A CSV playlist and the sermon video files it refers to, stored in a stable location for the event.
- Permission to publicly stream every sermon, including any music, readings, or other material covered by third-party rights.
- A reliable upload connection with capacity beyond the stream’s total bitrate, plus someone available to watch the preview and respond if the process stalls or exits.
YouTube’s current eligibility guidance says a channel must be verified and must not have had a live-streaming restriction in the preceding 90 days. It also states that the minimum age to live stream is 16. Confirm eligibility on the channel before scheduling a service: YouTube’s live-streaming eligibility guidance.
As an Amazon Associate I earn from qualifying purchases.
Inspect the CSV and sermon files
Check the playlist’s actual format
CSV does not define one fixed set of column names or rules. Inspect your file to identify its header, delimiter, quoting conventions, path column, and whether paths are relative to the CSV’s folder or absolute. The examples below assume the path column contains one video path per row; adapt them to your file rather than assuming a church-specific schema.
Check that every listed file exists, is readable, and appears in the intended order. Keep the CSV and media in a stable location while the event runs. If filenames contain commas, quotes, apostrophes, or other unusual characters, use a real CSV parser and correctly escape paths for FFmpeg’s concat-list syntax; do not build a shell command by interpolating raw CSV cells.
#1 Best Overall
- POWERED BY RTX 5070 12GB + RYZEN 7 9700X - The GeForce RTX 5070 12GB GDDR7 graphics card pairs with an 8-core AMD Ryzen 7 9700X processor to drive smooth 1440p and 4K gameplay, giving this gaming PC the headroom for modern titles, streaming, and creative work.
- 32GB DDR5 6000MHz MEMORY & 1TB NVMe SSD - 32GB of high-speed DDR5 memory and a 1TB PCIe 4.0 NVMe solid state drive deliver quick load times, smooth multitasking, and generous storage, keeping this prebuilt gaming desktop responsive under heavy workloads.
- BUILT-IN 11.3-INCH Smart DISPLAY - An integrated smart screen shows real-time CPU and GPU temperatures, usage, and weather while you play, adding a distinctive and functional touch to your battlestation.
- 850W 80+ GOLD POWER SUPPLY, 360MM LIQUID COOLING & WiFi 7 - An 850W 80 Plus Gold certified power supply provides stable, efficient power with headroom for future upgrades, while a 360mm AIO liquid cooler, WiFi 7, and an ARGB mid-tower case keep the Ryzen 7 CPU cool and connected in a clean build.
- READY TO PLAY OUT OF THE BOX - Arrives fully assembled and tested with Windows 11 Home pre-installed, so your prebuilt gaming computer is ready to set up in minutes. Assembled in the USA, and backed by a one-year limited warranty and lifetime free technical support.
Confirm streaming rights
Having a recording does not necessarily mean the church has permission to broadcast every element in it. Check that the church has rights for public live streaming of the sermon and any embedded music, slides, video clips, or readings. YouTube may interrupt or restrict a stream when content-rights rules are triggered.
Convert the CSV into an FFmpeg concat list
FFmpeg’s concat demuxer reads a text file in its own format, not a comma-separated spreadsheet. After parsing and validating the CSV, generate a separate text file such as sermons.ffconcat. For two compatible videos, it can look like this:
ffconcat version 1.0
file 'media/sermon-01.mp4'
file 'media/sermon-02.mp4'
The header must be exactly ffconcat version 1.0 on the first line for automatic format recognition. Each file entry names one video; entries play in order. Relative paths are interpreted from the process’s working directory, so run FFmpeg from a predictable directory or generate paths with that in mind.
Recommended Free Tools
Rank #2
- AMD Ryzen 7 8700F 4.1GHz (5GHz Turbo Boost) CPU Processor | 1TB NVMe M.2 SSD – Up to 30x Faster Than Traditional HDD | High-Performance Air Cooler
- NVIDIA GeForce RTX 5060 Ti 8GB GDDR7 Graphics Card (Brand may vary) | 16GB DDR5 RAM 6000 Non-RGB Gaming Memory with Heat Spreader | Windows 11 Home
- WI-FI 5 802.11ac | No Bloatware | Graphic output options include 1 x HDMI, and 1 x Display Port Promised, Additional Ports may vary | USB Ports Including 2.0, 3.0, and 3.2 Gen1 Ports | HD Audio & Mic | Free Gaming Keyboard & Mouse
- High-Performance Air Cooler: Maximum Airflow & ARGB Fans | Skytech Shadow 5 Gaming Case with Tempered Glass, Black | 1 Year Warranty on Parts and Labor | Free Technical Support | Assembled in the USA
- This powerful gaming PC is capable of running all your favorite games such as Elden Ring Nightreign, Baldur's Gate 3, Cyberpunk 2077, Hogwarts Legacy, Helldivers 2, Diablo IV, Starfield, Valorant, Counter-Strike 2, Forza Horizon 5, Resident Evil 9, Alan Wake 2, Warhammer 40,000: Space Marine 2, God of War Ragnarök, Overwatch 2, Dragon's Dogma 2, Marvel's Spider-Man, Clair Obscur: Expedition 33,, more at Ultra settings, detailed 1080p Full HD resolution, and smooth 60+ FPS gameplay.
Keep FFmpeg’s safe-path handling enabled when practical. Its concat demuxer rejects certain unsafe paths by default. Setting -safe 0 allows any filename and can expose files beyond the intended media folder if untrusted CSV content reaches the list. Use it only when a trusted workflow genuinely requires paths rejected by safe mode, and validate and constrain every input first. See FFmpeg’s concat demuxer documentation.
Check whether the videos can be concatenated without re-encoding
Stream copying avoids decoding and encoding the video again, but it is not a universal fix for a mixed folder of recordings. FFmpeg’s concat demuxer expects the files to have compatible streams, codecs, and time bases. Compare representative files before choosing the output method; inspect stream details with a media probe such as ffprobe, which is distributed with many FFmpeg builds.
Use the concat demuxer for compatible sources
If the inputs have matching stream layouts and compatible codecs and time bases, the concat demuxer can feed them consecutively without re-encoding. Later timestamps are adjusted using earlier file durations. If a duration is missing or inaccurate, transitions may have gaps, timing problems, or audio/video artifacts. Test the complete playlist or a representative sequence before the service.
Rank #3
- POWERHOUSE 8-CORE GAMING PERFORMANCE — Driven by the AMD Ryzen 7 8700F with 8 cores and 16 threads, boosting up to 5.0 GHz for smooth, responsive gameplay and the ability to handle AAA titles, streaming, and background tasks all at once
- NEXT-GEN BLACKWELL ARCHITECTURE — The NVIDIA GeForce RTX 5070 is powered by NVIDIA's cutting-edge Blackwell GPU architecture, delivering a massive generational leap in rasterization and ray tracing performance so you can experience your games the way they were meant to be played.
- Simplistic Design: Enjoy the latest generation of Windows 11 Home for your everyday needs. *MSI recommends Windows 11 Pro for business use.
- Cool While Gaming: In conjunction with an ARGB fan Air Cooler, the Codex R2 features four system cooling fans; three in the front and one in the rear to pull in cool air and push heat out of the PC.
- Turn on the Bright Lights: With the built-in RGB lighting, take your gaming experience to the next level by pressing the MSI LED button to cycle through lighting options. Customize lighting even further with MSI Center software.
Use a re-encoding workflow for incompatible sources
If files differ in resolution, frame rate, codecs, stream layout, or other relevant properties, normalize them to a common format or use FFmpeg’s concat filter and re-encode to consistent output parameters. The filter is the appropriate concat approach when re-encoding is required; it involves more processing and should be tested on the actual recordings. FFmpeg distinguishes these approaches in its concatenation FAQ. Neither method guarantees seamless joins across arbitrary files without checking the results.
Quick wins for a faster PC:
Scan for outdated or missing drivers - takes under a minuteDriver Scan →Repair Windows errors before they cause bigger problemsFix Now →Create a YouTube Live event and protect its key
- In YouTube Studio, open Live Control Room and create or schedule the live event.
- Open the event’s stream settings and copy the stream URL and stream key shown there. Use that event’s actual values; do not assume a sample endpoint applies to every account or event.
- Use RTMPS where available. RTMPS is RTMP protected by TLS/SSL, and YouTube recommends it for encoder streams.
- Keep the stream key secret. YouTube describes stream keys as like the stream’s password and address. Do not put a real key in a public script, repository, screenshot, or article.
See YouTube’s encoder setup instructions for the event workflow and current account guidance, and its RTMPS guidance for the protected protocol.
Choose encoder settings for the source and event
For RTMP or RTMPS, YouTube’s current encoder guidance lists H.264, HEVC, and AV1 as supported video codecs, with format-specific conditions; it lists AAC or MP3 audio and supports up to 60 frames per second. For a straightforward SDR sermon feed, H.264 video with AAC audio is a practical example, not a requirement that overrides the event’s format or the current YouTube guidance.
Rank #4
- Powerful Processor: AMD Ryzen 5 5600GT 3.6GHz (4.6GHz Turbo) 6-Core 12-Thread processor brings faster response time to easily handle multi-threaded tasks
- Motherboard Specification: MSI A520M-A PRO motherboard provides reliable performance and expandability for your computing needs
- Integrated Graphics: AMD Radeon Vega Graphics (CPU Integration) enables you to play 1080P mainstream games at quality frame rates
- Memory and Storage: 16GB DDR4 3200MHz RAM paired with 1TB M.2 NVMe PCIe SSD for fast multitasking and quick data access
- Power Supply: 550W 80PLUS Bronze certified power supply ensures stable and energy-efficient operation
YouTube recommends constant bitrate (CBR) and a 2-second keyframe interval, and says not to exceed 4 seconds. Its guidance gives bitrate recommendations by resolution, so choose a value for the actual output resolution and frame rate rather than treating one bitrate as universal. Match the resolution to the source and the desired viewing quality; avoid upscaling a low-resolution recording merely to select a higher bitrate. Review YouTube’s current live encoder settings and bitrate table before the event, since recommendations can change.
Send the playlist to YouTube with FFmpeg
The command shape below uses stream copying and is only appropriate if the playlist’s media streams are compatible and already meet the selected YouTube output requirements. The environment variables keep the secret out of the command text, but they are not a complete secret-management system: avoid shared accounts and inspect your shell’s history and process visibility. The exact output URL syntax depends on the URL YouTube provides and the installed FFmpeg build.
export YT_URL='paste-the-event-URL-shown-by-YouTube-here'
export YT_KEY='paste-the-event-stream-key-here'
ffmpeg -re -f concat -safe 1 -i sermons.ffconcat
-c copy -f flv "${YT_URL}/${YT_KEY}"
This is a shell example for environments such as Linux and macOS; shell syntax differs on Windows. It assumes the event endpoint is suitable for the shown URL form and that the concat list’s relative paths resolve from the current directory. Do not publish the event URL or key. If YouTube supplies an endpoint/key arrangement that does not fit that form, follow the endpoint format shown for the event and the output options supported by your FFmpeg build.
Best Value
- 【6-Core Ryzen 5 Prebuilt Gaming PC | Smooth Large Game & Streaming Performance】 The Suevery prebuilt gaming PC features an Ryzen 5 6-Core processor (3.6GHz Base, 4.1GHz Boost) and Radeon RX 560 4GB Graphics Card. It delivers lag-free gameplay for large games, seamless high-definition streaming, and smooth creative software operation, meeting gamers and content creators' reliable performance needs.
- 【16GB DDR4 RAM + 512GB NVMe SSD | Blazing-Fast Boot & Load Speeds】 16GB DDR4 RAM supports simultaneous operation of multiple games, browser tabs and office apps without slowdowns. The 512GB NVMe SSD (up to 30x faster than traditional HDDs) enables fast boot-ups, instant game loads and quick file transfers, with ample storage for games, videos and work files.
- 【Wi-Fi 6 Gaming Tower | Versatile Connectivity for Multi-Scenarios】 This tower gaming desktop has Wi-Fi 6 for fast, stable wireless internet, ideal for online gaming and high-definition streaming. It also includes 2× USB 3.0 and 4× USB 2.0 ports to connect peripherals, storage and office devices, suitable for gaming, home and office use.
- 【RGB Cooling System | Stable Operation】 The advanced air cooling system with customizable RGB fans keeps the gaming tower PC cool and quiet during intense gaming. Optimized airflow maintains optimal component temperatures, preventing overheating and ensuring stable performance for long gaming sessions or heavy office workloads. Sleek RGB lighting adds a gaming-inspired aesthetic.
- 【Prebuilt Tower PC | Adapt to Gaming/Work/Home/Office】 This prebuilt tower gaming PC is versatile for streaming, work, home and office tasks—from video editing and design software to daily office work and browsing. Ready to use with no extra setup, it meets the needs of gamers, remote workers and home users.
-re reads the files at their native rate rather than sending the entire recording sequence as fast as possible. -f concat selects the concat demuxer, -safe 1 keeps safe-path checks enabled, and -c copy avoids re-encoding. The example does not force a resolution, bitrate, frame rate, or keyframe interval; copied streams retain their existing encoding. If they do not meet the event’s requirements or are incompatible with one another, use a tested re-encoding workflow with explicit video and audio settings instead of assuming this command will work.
Preview, start, and monitor the broadcast
- Start FFmpeg and wait for the event’s Live Control Room preview to show the incoming feed.
- Check video, audio, the first transition, and the sequence order in the preview before making the stream public or starting the event.
- Confirm the live page is accessible as intended, then monitor Live Control Room’s stream health during the broadcast.
- Keep an operator available to investigate a stalled feed, stop or restart FFmpeg, and confirm which sermon should play next if the process exits.
Leave upload headroom beyond the stream’s total bitrate so other network use and connection variation do not consume the whole available capacity. YouTube says streams under 12 hours are automatically archived; confirm current account and event settings, and do not assume an archive will be available for a longer stream.
Plan for a finite playlist, not an automatic 24/7 schedule
The concat demuxer plays the listed files in sequence and then reaches the end of the list. It does not automatically repeat the CSV, watch for new rows, restart itself after a failure, or schedule a new day’s playlist. Continuous unattended operation requires a separately designed wrapper or scheduler that handles looping or playlist updates, process failures, logging, and supervision. The right implementation depends on the church’s operating system and schedule; those details are not specified here.
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 matchTroubleshoot common problems
- FFmpeg says a file cannot be opened: Check the spelling, permissions, working directory, and whether each relative path is based where you expect. If safe mode rejects a path, prefer generating safe relative paths; only consider
-safe 0for validated, trusted inputs. - The list is treated as malformed: Confirm it is a text concat list rather than the original CSV, that the header is exact and on line one, and that every entry uses
file 'path'syntax. Escape unusual path characters correctly. - FFmpeg reports mismatched streams or the joins glitch: Probe the files for differences in streams, codecs, time bases, and durations. Use compatible files with the demuxer, or normalize/re-encode with a concat-filter workflow; test transitions before going live.
- YouTube does not receive a signal: Recheck that the event is live or ready to receive an encoder, that the stream URL and key belong to that event, and that the URL form matches YouTube’s endpoint. Keep the key private while correcting it.
- The feed is rejected or has poor quality: Compare the actual codec, bitrate, resolution, frame rate, audio format, and keyframe interval with YouTube’s current recommendations for that format. A stream-copy command cannot change those properties.
- The stream drops or stops early: Check the upload connection and FFmpeg’s output, then have an operator restart or investigate the process. A finite list ending normally is different from a crashed process; neither behavior creates a repeating schedule by itself.
Or let it run in the cloud
If the goal is to keep prerecorded sermons looping on a YouTube channel without leaving a church computer running, StreamNeo is a cloud alternative to operating FFmpeg locally. Upload a recording or build a playlist, add the YouTube stream key once, and go live. StreamNeo plays uploaded videos rather than broadcasting from a camera, and its service streams to YouTube only.
- Nothing has to stay powered on at the church; the stream runs from the cloud.
- Videos stream as uploaded, up to 4K 60fps, at one flat price per slot rather than quality-based tiers.
- StreamNeo automatically recovers if YouTube drops the stream.
- The first day is free with no card required; it is one free day per account.
- Monthly: $9.99 per month.
Try StreamNeo’s free day by creating a StreamNeo account.
Quick Recap
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.

