To keep a YouTube live stream supplied by a looping video, run FFmpeg to publish the file to a MediaMTX path, then configure MediaMTX to forward that path to YouTube Live. Docker can keep MediaMTX’s configuration separate from its container, but this relay is only as dependable as the host, network, FFmpeg process, and YouTube connection. The setup below is a documented configuration pattern, not a tested deployment.
How the stream flows
The roles are separate: FFmpeg reads a source and publishes it; MediaMTX receives that feed on a path and forwards it to YouTube’s ingest endpoint.
As an Amazon Associate I earn from qualifying purchases.
video or other source → FFmpeg → MediaMTX path → YouTube Live
MediaMTX describes itself as a live media server and proxy that can publish, read, proxy, record, and play back real-time media. It can keep a path available when a publisher is offline, but that capability does not guarantee that a YouTube broadcast survives a host, network, container, or account failure. MediaMTX project documentation
#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
Prepare Docker and MediaMTX
Choose the host and network
Run the containers on a machine that can remain on and reach the internet. FFmpeg must be able to reach MediaMTX on the selected publishing protocol’s listener port. If FFmpeg runs in another container, use the MediaMTX service name on a shared Docker network rather than assuming localhost refers to the MediaMTX container.
The MediaMTX Docker guide’s sample publishes several protocol ports, including RTSP 8554 and RTMP 1935. Publish only the listener ports your design uses; avoid exposing unrelated services. MediaMTX Docker documentation
Rank #2
- 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
Keep configuration on the host
MediaMTX documents mounting a host directory containing mediamtx.yml into the container and using that directory as the working directory. This lets you maintain the YAML outside the container. It also documents configuration through MTX_-prefixed environment variables and through the Control API; choose a method that fits how you manage configuration and credentials.
Windows Errors? Fix Them Before They Spread
Repair common Windows errors and clear accumulated junk for a smoother, more stable PC - no reinstall needed.Free scan · no reinstallOutdated 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 matchThe configuration reference consulted identifies MediaMTX v1.21.1. Select and record an intentional image tag for your deployment, then check the project’s release information before upgrading. A floating tag such as :1 does not identify one immutable build. MediaMTX releases
Rank #3
- CanaKit Raspberry Pi 5 Essentials Starter Kit
Configure the YouTube destination
- Open YouTube Live’s Go Live interface. Retrieve the current Stream URL and stream key shown for your broadcast. Do not assume an endpoint copied from an older example is still current.
- Configure a MediaMTX path to forward to YouTube. The MediaMTX forwarding guide shows the destination written as the URL, a
#, and the stream key. Its example isrtmps://a.rtmp.youtube.com/live2#streamKey; the guide warns that the endpoint reflects what YouTube reported when that documentation was updated. Use the URL YouTube currently displays for your channel instead. - Prefer RTMPS and verify certificate behavior. The guide recommends replacing
rtmp://withrtmps://for encryption in transit. It also notes that its example certificate was invalid at the last check and provides adestFingerprintworkaround. That fingerprint is volatile: verify the current certificate and endpoint before configuring any fingerprint rather than copying the sample as a permanent value. MediaMTX guide to forwarding to YouTube - Protect the key. Treat the stream key as a publishing credential. Keep it out of public examples, screenshots, and version control, and restrict access to the configuration or environment where it is stored.
MediaMTX supports environment overrides and the Control API as alternatives to a mounted YAML file. Those can change how configuration is maintained, but do not make a stream key safe to expose publicly.
Validate and start the container
Use the project’s Docker guide for the current image and mount syntax; the key idea is to mount the host configuration directory and start MediaMTX with that configuration. Before running the service, validate the configuration using the documented --validate-conf option. MediaMTX says configuration changes can be hot-reloaded without disconnecting existing clients whenever possible, but validation before startup is still useful for catching mistakes.
Rank #4
- All-in-One Complete Kit: This SANOOV RPi 5 bundle comes with Raspberry Pi 5 4GB RAM single board, active cooler, durable ABS case and screwdriver. No extra parts needed, ready to use right out of the box for beginners and hobbyists
- Powerful Single Board Computer: Equipped with 4GB RAM and high-performance processor, delivers fast running speed for 4K playback, AI projects, programming and daily computing tasks. SANOOV for raspberry pi 5 4GB is equipped with broadcom 64 quad-core Arm Cortex A76 processor with gigabit ethernet and upgraded with IEEE 802.11ac Wi-Fi, Bluetooth 5.0 dual-band 2.4Ghz and 5Ghz and Power Over Ethernet (POE). Upgrading delivers 2-3 x speed vs Pi 4, redefining the experience
- Efficient Active Cooler: Effectively lowers operating temperature and prevents performance throttling. Runs quietly even under long-time heavy load, ensures stable operation all day long. SANOOV RPi 5 4GB kit offer an active cooler, which combines an aluminium heatsink with a high-performance PWM fan. Active cooler is fully compatible with the Pi OS, which can effectively reduce the temperature of RPi5 and ensure its good performance during long-term high load operation
- Sturdy ABS Protective Case: Well-fitted for Raspberry Pi 5 board, can be secured with 4 screws to effectively protect the Pi 5 motherboard from damage, reserves full access to all ports and buttons. SANOOV uses ABS material to produce the case, which has a softer texture and feel. Meanwhile, SANOOV case adopts a layered design for easy disassembly and installation. (Tip: The Case cannot install M.2 HAT Add on Board and Solid State Drive!)
- Wide Application & Full Compatibility: Seamlessly compatible with official OS and mainstream peripheral accessories for Raspberry Pi 5. Whether you are a beginner, student, electronics hobbyist or professional developer, this all-in-one kit meets your diverse needs. It excels in IoT projects, robotics design, retro gaming devices, home media servers and other DIY creations. Backed by a large global community, you can easily find guides, technical support and shared projects online
When defining the forwarding path, make sure its name and protocol agree with the URL to which FFmpeg will publish. The listener port must be reachable from the FFmpeg process, whether both programs run in one container, separate containers, or separate machines.
Publish a looping file with FFmpeg
MediaMTX recommends RTSP for FFmpeg publishing and documents this looped-file pattern:
Best Value
- 【What you Get】You will get 1*Pi 5 8GB Single Board,1*RasTech Case,1*Active Cooler,1*Screwdriver,1*Installation instructions,12-month free warranty, lifetime service, 24-hour prompt and friendly response.
- 【More Connectors】There are two USB 3.0 ports(5Gbps simultaneously) and two USB 2.0 ports, which triple total bandwidth ,support any combination of up to two cameras or displays. Peak SD card performance is doubled through support for the SDR104 high-speed mode. It provides a smooth desktop experience for you. Offer Gigabit Ethernet and a PCIe interface, along with dual-band Wi-Fi and Bluetooth 5.0/BLE wireless capability. The RasTech Pi 5 Kit use the new 27W 5.1V 5A USB-C power connector.
- 【 Support Dual 4Kp60 Display 】Each of the two microHDMI sockets can control a 4K display at 60 Hertz, now support HDR, offering super HD video for media streaming projects. RPi 5 is the first RPi model that comes with a PCI Express port (PCIe 2.0 x1 with 500 MB/s) to attach SSDs (requires separate M.2 HAT).
- 【 Excellent Chips And Applications】Pi 5 is a full-size Pi computer using silicon built in-house at Pi. The RP1 “southbridge” provides the bulk of the I/O capabilities for Pi 5. Pi 5 is more friendly and convenient in the development of Internet of Things, Web development, machine identification, automatic control and other electronic equipment applications and network.
- 【 Faster CPU, Better GPU 】 Pi 5 features a Broadcom BCM2712 64-bit quad-core Arm Cortex-A76 processor running at 2.4GHz, it delivers a 2–3× increase in CPU performance relative to RaspberryPi 4. The 800MHz VideoCore VII GPU is compatible to OpenGL ES 3.1 and Vulkan 1.2, substantial uplift in graphics performance. Pi 5 Offers lightning-fast CPU speed, a PCI Express interface, a Real Time Clock (RTC) and a power button and runs significantly cooler than Pi 4.
ffmpeg -re -stream_loop -1 -i file.mp4 -c copy -f rtsp rtsp://localhost:8554/mystream
Replace file.mp4 with the media path available to the FFmpeg process. Replace localhost with the correct host or Docker service name if FFmpeg is not running alongside the RTSP listener, and use the path configured for forwarding instead of mystream if it differs. The -re option reads at real-time pace; -stream_loop -1 repeats the input indefinitely. -c copy avoids transcoding, but only use it if the source’s codecs and tracks are suitable for the destination. MediaMTX also documents RTMP publishing with -f flv to port 1935; it lists SRT, WebRTC, MPEG-TS, and RTP as other supported publishing options. The documentation does not establish a universal latency or quality winner among them. MediaMTX FFmpeg publishing documentation
Check tracks, preview, and operation
- Confirm both audio and video are present. MediaMTX’s YouTube forwarding guide warns that YouTube requires both tracks and silently rejects video-only streams. Check the source before relying on stream copy; if needed, configure FFmpeg to provide a valid audio track.
- Check YouTube’s live preview and status. A successful FFmpeg publish to MediaMTX does not alone prove that YouTube is receiving or accepting the forwarded stream.
- Watch MediaMTX logs and metrics. MediaMTX supports logging and metrics, which can help distinguish an incoming-publisher problem from a forwarding problem. No uptime guarantee or end-to-end monitoring procedure is established by the documentation cited here.
Troubleshoot common failures
| Symptom | Likely cause | What to check |
|---|---|---|
| FFmpeg cannot connect to MediaMTX | Wrong address, path, port, or Docker network; listener port not exposed or reachable. | Check the RTSP or RTMP URL, confirm FFmpeg uses the configured path, and verify that the relevant listener port is reachable from its container or host. |
| MediaMTX receives the feed but YouTube does not go live | Stale Stream URL or key, forwarding configuration error, or endpoint/certificate issue. | Copy the current Stream URL and key from YouTube Live. Check MediaMTX logs and verify current RTMPS endpoint and certificate behavior rather than relying on an old sample fingerprint. |
| YouTube rejects or does not show the stream | Missing audio or video track, or media encoding incompatible with the destination. | Confirm both tracks reach the forwarding path. Check source codecs and tracks before using -c copy; the cited examples do not establish codec suitability for every file. |
| The stream stops when the source ends | FFmpeg is not looping the input, or the input cannot be reopened. | For a file intended to repeat, confirm -stream_loop -1 is placed before the input option and that FFmpeg can read the file continuously. |
| Configuration edits do not take effect | Wrong mounted file or directory, invalid YAML, or a change that did not reload. | Check the host-to-container mount and working directory, run --validate-conf, and inspect logs. Hot reload is supported where possible, not guaranteed for every change. |
Or let it run in the cloud
If your goal is an always-on YouTube channel rather than operating Docker infrastructure, StreamNeo is a cloud service for looping uploaded videos on YouTube. Upload a recording or build a playlist, add your YouTube stream key once, and go live. Your computer and home connection do not have to stay on. StreamNeo streams uploaded videos, not a live camera feed.
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 minute- One flat price per slot for any uploaded quality up to 4K 60fps, with no re-encode or quality tiers.
- Automatic recovery if YouTube drops the stream.
- The first day is free, with no card required; one free day per account.
- Monthly: $9.99 per month.
See StreamNeo for details, then start your free day.
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.




