Free tools Windows power users keep installed
One-click scans. No signup required.
Yes, you can stream MP4 and MKV files from one FFmpeg playlist, but the extensions alone do not determine whether the files will work together. The files’ contained audio and video streams must be compatible with FFmpeg’s concat demuxer and the output format. Inspect the streams first; if they do not match, normalize or transcode the files to a common profile before streaming.
Why MP4 and MKV files may or may not work together
MP4 and MKV are containers—wrappers around encoded video and audio streams. Two files with different extensions may contain compatible streams, while two files with the same extension may not. FFmpeg’s concat demuxer expects the inputs to have the same streams, including codecs and time bases. Differences in stream layout or inaccurate duration metadata can also cause playback or timestamp problems. FFmpeg’s concat demuxer documentation describes these requirements.
That means a playlist cannot make incompatible files compatible by itself. Check the streams inside every file before deciding whether to copy them unchanged or transcode them.
Inspect the files before building the playlist
Use ffprobe on each file and compare the video and audio streams. Check the number of streams, codecs, time bases, dimensions, frame rates, pixel formats, and audio parameters. You can inspect the streams with:
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 match#1 Best Overall
- Built for Creators: Capture, edit, and transfer with ease. NVMe SSD with premium NAND Flash delivers up to 2100MB/s—perfect for 4K video, RAW photos, and gaming assets
- Record Without Limits: Direct 4K 120fps HDR recording from compatible USB-C iOS/Android phones, cameras, and tablets with supported pro apps. Ideal for high-bitrate shooting on the go
- Rugged, Reliable, Ready: Durable aluminum shell with water- and drop-proof protection. SMART monitoring and advanced error correction keep your data safe in any environment
- Works Where You Do: True plug-and-play with laptops, desktops, cameras, projectors, and more. Fully compatible with Windows, Mac, iPad Pro, Chromebooks, Android, Linux, PS4, PS5, and Xbox devices
- Pocket-Sized Power & Capacity Notice: Ultra-slim 2.85 × 1.52 × 0.40 in, 0.03 lb SSD fits any pocket or gear bag. Actual usable storage may be ~7–10% less than labeled due to system calculation differences. Supports up to 2100MB/s under ideal USB 3.2 Gen 2x2/Thunderbolt 4/5 conditions; older interfaces may reduce speeds
ffprobe -hide_banner -i "clip-one.mp4"
ffprobe -hide_banner -i "clip-two.mkv"
Compare the reported stream details across all playlist entries. Pay attention to whether every file has the same kinds of streams in the same arrangement; for example, an extra audio or subtitle stream in one file can matter. The exact output varies by file and FFmpeg build, so treat inspection as a compatibility check, not a guarantee that the eventual YouTube output will be accepted.
Create a concat-demuxer playlist
Make a UTF-8 plain-text file, such as playlist.txt, with one file directive per input in the order you want them played:
file '/media/clip-one.mp4'
file '/media/clip-two.mkv'
file '/media/clip-three.mp4'
Use paths that resolve on the machine running FFmpeg. For simple paths, a concat-demuxer input can be invoked like this:
Rank #2
- 250GB — ESSENTIAL STORAGE FOR DAILY FILES — The 250GB capacity provides practical portable space for documents, study materials, photos and frequently used files without paying for storage you may not need.
- UP TO 550MB/S READ AND 450MB/S WRITE — Transfer photos, videos, documents and project files with read speeds up to 500MB/s and write speeds up to 450MB/s through a compatible USB 3.2 Gen 2 connection.
- SLIM AND LIGHTWEIGHT — Measuring only 100 × 29.4 × 9mm and weighing approximately 30g, the Z Slim fits easily into a pocket, laptop bag or travel pouch for storage wherever your day takes you.
- ONE DRIVE, MULTIPLE DEVICES — Use the included USB Type-C-to-A cable and USB-A-to-C adapter with compatible USB-A and USB-C computers, phones and tablets. Supports compatible Windows, macOS, Linux and Android systems.
- ALUMINUM ALLOY ENCLOSURE — The lightweight aluminum-alloy housing provides a solid, comfortable feel for everyday carrying and handling. The ZSlim is backed by a 3-year limited warranty.
ffmpeg -re -f concat -safe 0 -i playlist.txt
-map 0:v:0 -map 0:a:0
-c copy -f flv "rtmp://YOUR_YOUTUBE_INGEST_URL/YOUR_STREAM_KEY"
This is a template, not a guaranteed command for every playlist. Replace the destination with the stream URL and key shown for your YouTube broadcast, and confirm the required output muxer and codecs for your selected ingest settings. The explicit mapping selects the first video and first audio stream; change or omit mappings if your files have a different layout. The command assumes those mapped streams can be copied into the chosen output container. FFmpeg’s concat-demuxer script format and options are documented in the FFmpeg formats documentation.
-safe 0 permits paths outside the concat demuxer’s restricted safe subset. Use it only with a playlist you control, since allowing arbitrary paths can expose local files to unintended access. Check the documentation for the FFmpeg version installed on your system: online documentation may describe a newer revision than your local binary.
Choose stream copy or transcoding
Use stream copy when inputs and output are compatible
-c copy copies encoded packets without decoding, filtering, or re-encoding. It is fast and avoids generation loss, but only works when the source streams suit the target container and the playlist inputs are compatible. It cannot apply filters or repair mismatched codecs, time bases, or stream layouts. FFmpeg explains these limits in its stream-copy documentation.
Rank #3
- Built for Creators: Capture, edit, and transfer with ease. NVMe SSD with premium NAND Flash delivers up to 2100MB/s—perfect for 4K video, RAW photos, and gaming assets
- Record Without Limits: Direct 4K 120fps HDR recording from compatible USB-C iOS/Android phones, cameras, and tablets with supported pro apps. Ideal for high-bitrate shooting on the go
- Rugged, Reliable, Ready: Durable aluminum shell with water- and drop-proof protection. SMART monitoring and advanced error correction keep your data safe in any environment
- Works Where You Do: True plug-and-play with laptops, desktops, cameras, projectors, and more. Fully compatible with Windows, Mac, iPad Pro, Chromebooks, Android, Linux, PS4, PS5, and Xbox devices
- Pocket-Sized Power & Capacity Notice: Ultra-slim 2.85 × 1.52 × 0.40 in, 0.03 lb SSD fits any pocket or gear bag. Actual usable storage may be ~7–10% less than labeled due to system calculation differences. Supports up to 2100MB/s under ideal USB 3.2 Gen 2x2/Thunderbolt 4/5 conditions; older interfaces may reduce speeds
Normalize or transcode mismatched files
If the streams do not match, preprocess every item into a shared profile before using the concat demuxer. Choose a common video and audio codec, dimensions, frame rate, pixel format, and audio configuration appropriate for your planned YouTube output. If you need to scale, change frame rate, or apply other filters, the media must be decoded and re-encoded; stream copy cannot apply filters. FFmpeg’s FAQ on concatenating media distinguishes the concat demuxer from the concat filter, which is an option when re-encoding is needed.
There is no single reliable transcode command for unknown files: the right settings depend on their stream layouts, the local FFmpeg build, and your intended resolution and frame rate. Test representative inputs and verify the resulting playlist before relying on it for a broadcast.
Configure YouTube Live and protect the stream key
- Get the ingest details: In YouTube Studio’s Live Control Room, select the stream’s ingest settings and copy the stream URL and stream key into your FFmpeg destination configuration. The available protocol and settings depend on the stream configuration; use the details displayed for that stream. See YouTube’s live stream settings guidance.
- Keep the key private: Treat it like a password. Avoid publishing it in scripts, screenshots, or shared logs. If it is exposed, reset it in YouTube Studio before using the stream again.
- Check encoder compatibility: YouTube’s live encoder guidance for RTMP/RTMPS lists H.264, H.265 (HEVC), and AV1 video; AAC or MP3 audio; and constant bitrate encoding. A conventional H.264/AAC setup in an FLV output is a broadly compatible route, but confirm the actual protocol, codecs, and FFmpeg build you are using in YouTube’s encoder settings guidance.
- Set keyframes and output quality: YouTube recommends a two-second keyframe interval, with a maximum of four seconds. For H.264, YouTube’s current live-encoder guidance accessed October 3, 2026, gives these examples: 720p at 30 or 60 fps, 8 Mbps recommended and 3 Mbps minimum; 1080p at 30 fps, 14 Mbps recommended and 5 Mbps minimum; 1080p at 60 fps, 17 Mbps recommended and 6 Mbps minimum. These are YouTube-published settings, not a guarantee that your connection can sustain them. The guidance also recommends 128 Kbps stereo audio, square pixels, progressive scan, and Rec. 709 for SDR. Match the output to your content and reliable upload capacity; consult the full table for other resolutions and frame rates.
- Test and monitor: Before the intended broadcast, test with representative motion and audio. Check YouTube’s stream-health messages before and during the event, and confirm that transitions between playlist entries behave as expected.
Troubleshoot common playlist and stream problems
- FFmpeg reports incompatible streams or fails at a file boundary: Compare stream counts, codecs, time bases, and other parameters with
ffprobe. Normalize or transcode all playlist items to a common profile rather than assuming their extensions imply compatibility. - The output muxer rejects a stream: The selected container may not support a copied codec or stream configuration. Verify the target container’s requirements and either select a compatible output or transcode to a supported codec.
- Audio or video is missing: Review the playlist’s stream layout and the
-mapoptions. A fixed mapping such as-map 0:a:0requires a first audio stream; it will not create one if an input lacks it. - Playback jumps, drifts, or breaks at a transition: Check time bases, stream layout, and duration metadata. FFmpeg warns that mismatched parameters or inaccurate durations can affect concat-demuxer timestamps. Normalize the inputs and test their joins.
- YouTube does not receive a healthy stream: Recheck the selected ingest URL and key, protocol, codecs, bitrate, and keyframe interval. Verify the upload connection can sustain the chosen bitrate and read YouTube’s stream-health messages.
- The stream key may have been exposed: Reset it in YouTube Studio and update the FFmpeg destination with the replacement key.
Or let it run in the cloud
If you want a YouTube channel to keep playing uploaded videos without leaving a computer or FFmpeg session running at home, StreamNeo is a cloud option. Upload a recording or build a playlist, add your YouTube stream key once, and go live. It loops the uploaded video from the cloud; it does not go live from a camera. Each slot supports uploaded quality up to 4K 60fps at one flat price per slot, automatic recovery if YouTube drops the stream, 10 GB of storage per slot pooled across active slots, and 24/7 looping and playlists. The first day is free with no card, one free day per account. Billing options are a day, a week, a month, six months, or a year, and you can cancel any time. UPI and cards are available in India; card checkout is available worldwide. For five or more slots, contact support.
Monthly: $9.99 per month. Learn more at StreamNeo, or start your free first 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.

