Recommended Free Tools
You can use FFmpeg on a Hetzner server to broadcast a continuous sequence of local video files to YouTube Live, but a YouTube watch-page playlist is not an established FFmpeg input for this workflow. Prepare media you own or are licensed to rebroadcast, make it accessible to the server, configure FFmpeg for YouTube’s current ingest instructions, then supervise and monitor the process. This is a workflow guide, not a tested one-line command: validate the exact command against your FFmpeg build, media files, and YouTube Studio settings before going live.
What “a YouTube playlist” means in this setup
This guide covers local video files played in sequence by FFmpeg and sent as a live broadcast to YouTube. The playlist is an FFmpeg-readable list of media files stored on the server or otherwise accessible to it; YouTube Live is the destination. The technical documentation cited here does not establish that a YouTube watch-page playlist URL can be fed directly to FFmpeg as a supported, rights-cleared source.
Use content you created or have permission to rebroadcast. Technical instructions for ingest and packaging do not grant rights to copy, download, or rebroadcast videos. The absence of a source addressing a particular use is not a legal conclusion about every possible case.
Plan the broadcast before configuring FFmpeg
Choose a YouTube ingest protocol
Use the protocol and endpoint shown in your current YouTube Live setup. RTMP and HLS are different ingest routes, not interchangeable FFmpeg labels. YouTube says HLS has higher latency because it sends video in segments rather than as a continuous stream like RTMP (YouTube’s HLS setup guidance). If lower latency matters and your format is compatible, compare the RTMP route with HLS. Choose HLS when your format or YouTube’s current setup requirements call for it.
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
#1 Best Overall
For YouTube HLS ingestion, YouTube’s guidance specifies Transport Stream segments, segment duration from 1 to 4 seconds, no byte range, HTTPS POST/PUT, and a rolling playlist with no more than five outstanding segments. It also says encryption beyond HTTPS is unsupported. These are YouTube ingestion requirements, not universal HLS defaults. FFmpeg’s HLS muxer exposes playlist and segment controls, but choosing those options alone does not ensure YouTube will accept the stream. Consult FFmpeg’s format documentation alongside YouTube’s current instructions.
Get the stream endpoint and protect the key
In YouTube Live’s setup flow, select the ingest protocol and copy the endpoint and stream key it provides. Keep the key private: do not publish it in a command example, screenshot, public log, or shared configuration file. Anyone who obtains it may be able to broadcast to your channel. Store it in a suitably protected configuration or secret-handling method for your server, and check that it is not exposed by process listings or logs before choosing how to launch FFmpeg.
Rank #2
Check the server, IP, and traffic allowance
A Hetzner Cloud server is a virtual machine for running an operating system and programs. Hetzner distinguishes shared-resource and dedicated-resource server types, and its overview says public connectivity requires a Primary IP. The overview page says it was last changed on 2022-06-28, so verify current server and IP pricing rather than relying on old figures (Hetzner Cloud server overview).
Hetzner says Cloud bandwidth is not guaranteed and that users can expect about 300–500 Mbit/s; instances share the host connection. This is an expectation, not a per-server minimum or an assurance of uninterrupted streaming (Hetzner Cloud technical FAQ).
Free tools Windows power users keep installed
One-click scans. No signup required.
Rank #3
Estimate outbound traffic from the encoded stream bitrate, then check the included traffic and overage terms for your selected server type and region. A rough planning calculation in decimal gigabytes is:
Monthly egress ≈ bitrate in megabits per second × 0.45 × 24 × 30
Rank #4
For example, at 4 Mbit/s this estimate is about 1,296 decimal GB for a 30-day month. This is arithmetic for planning, not a Hetzner-published allowance; protocol overhead, reconnects, actual bitrate, and billing-period length change the result. Hetzner bills outgoing traffic and charges overage in 100 MB blocks. Its 75% and 100% usage notifications are informational and do not cap or stop traffic (Hetzner Cloud billing FAQ).
Prepare media and an FFmpeg playlist
- Choose permitted source files. Keep the files on the server or on storage the server can reliably access. Confirm the audio and video streams are readable by the FFmpeg build installed on the server.
- Arrange the playback order. Create an FFmpeg-readable playlist or input sequence using a format documented by FFmpeg. Check the formats documentation for supported demuxers and playlist-related options; the right method depends on your file layout and desired looping behavior.
- Decide how the sequence repeats. Configure the input or process so it advances through the intended files and repeats continuously. The official sources cited here do not provide a complete, tested command for looping a concat playlist into YouTube Live. Do not assume a generic playlist option will work with every media format or FFmpeg build.
- Inspect the media and test locally. Check for missing files, incompatible codecs, unexpected durations, and audio/video problems before connecting to YouTube. A playlist can be syntactically valid while one item later fails to decode.
For available input, muxer, and format options, use the documentation for the installed FFmpeg version, including FFmpeg’s full documentation. A command assembled without checking those options and the destination’s requirements is not a reliable deployment recipe.
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 →Configure and start the YouTube Live broadcast
- Open YouTube Live setup. Select the broadcast’s ingest protocol and use the endpoint and stream key displayed there. Follow the current setup screen if its settings differ from older examples.
- Match the output to the ingest route. Configure FFmpeg’s output format, video and audio encoding, and transport for the selected protocol. For HLS, meet YouTube’s current segment, playlist, segment-format, and HTTP transport requirements. For RTMP, use the endpoint and format guidance YouTube displays for that broadcast. FFmpeg’s generic options do not supersede YouTube’s ingest requirements.
- Run at broadcast speed. The output must be sent in real time for a continuous live broadcast; a process that reads and uploads the entire playlist faster than its intended playback duration is not a continuous live stream.
- Verify reception in YouTube Live. Starting FFmpeg only confirms that a process launched. Check YouTube’s live status and preview to confirm the platform is receiving a valid signal before making the broadcast public or relying on it to continue.
The exact FFmpeg command depends on the chosen protocol, codecs, playlist format, and installed build. Validate it against the current YouTube endpoint settings and your actual files; the cited official documentation does not establish one universal command for this workflow.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Keep the process running and monitor it
Use an operating-system service manager or another process-supervision arrangement to restart or alert on a failed FFmpeg process. Configure that supervision for your operating system and deployment; no particular service unit or command is verified here as surviving every failure. Also monitor:
- FFmpeg logs for input, encoding, and output errors.
- YouTube Live status for ingest problems or a dropped broadcast.
- Server CPU, memory, disk availability, and access to every playlist file.
- Outgoing traffic and the selected plan’s usage, since Hetzner’s notifications do not stop overage.
- Whether recovery resumes the intended playlist position and produces a valid feed rather than merely restarting the process.
Hetzner’s Cloud and vServer service agreement says it will use commercially reasonable efforts to provide 99.9% monthly availability for each Cloud Server, measured over a calendar month. The agreement excludes, among other cases, customer software or configuration failures and some network interruptions outside Hetzner’s reasonable control. That is Hetzner’s availability-effort language for the server itself, not a promise that FFmpeg, YouTube ingest, or the complete broadcast will stay live (Hetzner Cloud and vServer service agreement).
Troubleshoot common failures
| Symptom | Likely cause | What to check |
|---|---|---|
| YouTube does not show an incoming signal | Incorrect endpoint or key, wrong protocol, incompatible output, or a network/output error | Compare FFmpeg’s destination with the current YouTube Live setup screen, verify the selected ingest route, and inspect FFmpeg logs without exposing the key. |
| HLS is rejected or fails to appear correctly | Segment format, duration, playlist behavior, or HTTP transport does not meet YouTube’s requirements | Check the current YouTube HLS guidance for Transport Stream segments, 1–4 second duration, no byte range, HTTPS POST/PUT, and no more than five outstanding segments; then check the corresponding FFmpeg muxer settings. |
| Playback stops at one file or the sequence ends | A file is missing, unreadable, incompatible, or the input sequence is not configured to repeat | Test each source file and playlist entry, confirm server paths and permissions, and verify the loop behavior for the installed FFmpeg build. |
| The feed stutters or the server falls behind | Encoding load, source compatibility, or variable/shared network capacity may be limiting delivery | Review FFmpeg errors and server resource use; compare output needs with the selected server’s CPU type and current network conditions. Hetzner’s stated bandwidth expectation is not a guarantee. |
| The stream drops after running successfully | FFmpeg process failure, server/network interruption, or YouTube ingest interruption | Check timestamps in FFmpeg and YouTube status, inspect server health, and ensure your supervisor detects and reports failures. A process restart alone does not prove the stream recovered. |
| Traffic costs exceed expectations | Actual bitrate, runtime, protocol overhead, or reconnects exceed the estimate | Recalculate from measured outbound bitrate and elapsed time, check current plan allowances, and remember Hetzner usage warnings are informational rather than traffic caps. |
Or let it run in the cloud
If you want a YouTube channel to loop uploaded videos without maintaining an FFmpeg server, StreamNeo is a cloud service for continuous YouTube streams. Upload a recording or build a playlist, add your YouTube stream key once, and go live. Your computer does not need to stay on at home; StreamNeo loops the uploaded video in the cloud, can automatically recover if YouTube drops the stream, and streams the upload as made up to 4K 60fps at one flat price per slot. The first day is free with no card. Monthly service is $9.99 per month.
Do these 3 things before closing this tab:
1Fix the driver behind crashes, sound loss and screen glitches2Clear out junk files and repair common Windows errors3Scan for outdated or missing drivers - takes under a minuteQuick 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.

