Halloween DealsAmazon USHalloween week deals: useful picks before month-endAmazon US: current deals, useful picks and tech finds.Check DealsWindows FixRecommendedWindows errors stealing your time? Find the fix fastScan stability, cleanup and performance issues.Fix NowHalloween DealsAmazon USOctober picks are moving - compare before checkoutAmazon US: current deals, useful picks and tech finds.See Picks×
FREEDOM251

Freedom251 › Blog › FFmpeg

How to Burn Subtitles into Videos for an FFmpeg YouTube Playlist Stream

By Freedom251 Team · · 5 min read

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Use FFmpeg’s subtitles video filter to render subtitle text directly into the video frames, then encode those frames and send the resulting video to YouTube using the live encoder settings for your channel. The subtitle text will be permanently visible in the picture; viewers cannot switch it off as a separate caption track.

First, decide what “playlist stream” means

A playlist stream can mean a local sequence of video clips sent through one live encoder process, a YouTube playlist of videos that have already been published, or an HLS playlist written to a destination. These are different workflows. Creating an HLS playlist does not, by itself, send a stream to YouTube Live; FFmpeg’s HLS output and YouTube’s encoder-ingest workflow are separate configurations. See the FFmpeg formats documentation and YouTube’s encoder setup instructions.

As an Amazon Associate I earn from qualifying purchases.

The example below demonstrates rendering subtitles for one input video. It is not a complete command for every kind of playlist, nor a universal YouTube Live command. For a local list where each clip has its own subtitle file, you also need to orchestrate the clip order, subtitle selection, timing, and transitions.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Burn subtitles into a video with FFmpeg

1. Identify the subtitle source

Subtitles can come from an external text file, such as SRT or ASS, or from a subtitle stream already inside a media file. If a file contains multiple subtitle tracks, identify the intended stream and language instead of assuming the first one is correct. FFmpeg’s filter documentation describes the subtitles filter and its input and stream-selection options.

#1 Best Overall
CanaKit Raspberry Pi 4 4GB Starter PRO Kit - 4GB RAM
  • Includes Raspberry Pi 4 4GB Model B with 1.5GHz 64-bit quad-core CPU (4GB RAM)
  • Includes Pre-Loaded 32GB EVO+ Micro SD Card (Class 10), USB MicroSD Card Reader
  • CanaKit Premium High-Gloss Raspberry Pi 4 Case with Integrated Fan Mount, CanaKit Low Noise Bearing System Fan
  • CanaKit 3.5A USB-C Raspberry Pi 4 Power Supply (US Plug) with Noise Filter, Set of Heat Sinks, Display Cable - 6 foot (Supports up to 4K60p)
  • CanaKit USB-C PiSwitch (On/Off Power Switch for Raspberry Pi 4)

2. Check that your FFmpeg build has the filter

The subtitles filter depends on libass. The FFmpeg filter documentation specifies that FFmpeg must be configured with --enable-libass. If the filter is unavailable, use a build that includes this support before proceeding.

3. Render and encode a test file

ffmpeg -i input.mp4 -vf "subtitles=subtitles.srt" -c:v libx264 -c:a copy output.mp4

This is an illustrative offline example, not a tested command or a full live-playlist setup. It assumes the input file and external SRT file exist, the FFmpeg build includes the filter, and the libx264 encoder is available. Change the filenames to match your files.

Rank #2
Raspberry SC15184 Pi 4 Model B 2019 Quad Core 64 Bit WiFi Bluetooth (2GB)
  • Broadcom BCM2711, quad-core Cortex-A72 (ARM v8) 64-bit SoC @ 1. 5GHz
  • 2. 4 GHz and 5. 0 GHz IEEE 802. 11b/g/n/ac wireless LAN, Bluetooth 5. 0, BLE
  • 2 × USB 3. 0 ports, 2 x USB 2. 0 Ports
  • 2 × micro HDMI ports supproting up to 4Kp60 video resolution
  • Micro SD card slot for loading operating system and data storage

Because the filter changes video frames, FFmpeg must decode and encode the video. You cannot apply this visual filter while copying the compressed video stream with -c:v copy; stream copy bypasses the frame processing the filter requires. The example copies audio with -c:a copy only as a conditional convenience: the audio codec and container must be compatible with the output and eventual destination. If they are not, encode the audio to a compatible format.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

4. Inspect subtitles at the intended output size

Play the rendered file before using it in a long stream. Check that the timing and language are right, fonts are available, line breaks are readable, and the text remains visible at the final stream resolution. If your playlist includes different clips or subtitle files, verify the selection and timing at each clip boundary.

Rank #3
Raspberry Pi 4 Model B (2GB)
  • Broadcom BCM2711, Quad core Cortex-A72 (ARM v8) 64-bit SoC @ 1.5GHz
  • 1GB, 2GB, 4GB or 8GB LPDDR4-3200 SDRAM (depending on model)
  • 2.4 GHz and 5.0 GHz IEEE 802.11ac wireless, Bluetooth 5.0, BLE Gigabit Ethernet
  • 2 USB 3.0 ports; 2 USB 2.0 ports.
  • Raspberry Pi standard 40 pin GPIO header (fully backwards compatible with previous boards)

Send the encoded video to YouTube Live

For a live encoder workflow, configure the outgoing format and codec according to YouTube’s current guidance and the settings shown for the channel and destination you are using. YouTube’s pages for live encoder settings, bitrates, and resolutions and creating a live stream with an encoder explain the setup. Use the stream URL and key provided for your channel; do not publish or share the key.

There is no single command here that covers every playlist source, per-clip subtitle file, repeat or transition policy, hardware encoder, and YouTube account configuration. Treat the offline command above as the subtitle-rendering step, then configure and test the live output for your specific source and YouTube destination.

Rank #4
Vilros Raspberry Pi 4 Complete Starter Kit- Includes Raspberry Pi 4 Board, Fan Cooled Case, 64GB Preloaded Micro SD Card and More (4GB, Clear Transparent Case)
  • Vilros Complete Starter Kit for Pi 4 Includes Raspberry Pi 4 Model B Board and all the accessories you need to get started.
  • 9-PART KIT WILL HAVE YOU READY TO GET UP AND RUNNING: Kit Includes 1. Raspberry Pi 4 Model B Board 2. Case With Easy to connect Built-in fan 3. 64GB Micro SD card Preloaded with RP OS 4. Vilros Pi 4 Compatible Power Supply with Inline on/off switch (power supply color may vary white/black) 5. Micro HDMI to Standard HDMI cable (5ft) 6. Micro SD to USB adapter to reflash card if desired 7. Neoprene Storage Bag to store all parts when not in use 8. Set of 4 Heatsinks 9. Vilros QuickStart Guide instruction booklet for Pi 4
  • PASSIVE & ACTIVE COOLING: The included case is well-vented and the kit also includes a set of heatsinks with thermal stickers for easy application and a pre-installed fan to keep the board cool in any use.
  • CONVENIENT ACCESSORIES: The power supply features an inline on/off switch neoprene bag that holds and protects all the parts when not in use and the QuickStart guide is updated and written for Raspberry Pi 4.
  • IMPORTANT: Kit does NOT include Keyboard, Mouse or Monitor

Hard subtitles or selectable captions?

Choice What viewers get Trade-off
Burned-in subtitles Text is part of the picture and stays visible across players. Viewers cannot turn it off, choose another language, or restyle it as a separate caption track.
Separate caption track Captions remain separate from the video image and can be handled through YouTube’s caption workflow. They are not the same as text rendered into the frames; follow the relevant YouTube workflow if you need captions.

ASS can carry richer styling than a plain text subtitle format, while external subtitle rendering depends on the chosen format, fonts, and filter options. Burning subtitles is a presentation choice, not a universal replacement for captions. If accessibility or language choice matters, retain or provide a separate caption track as well.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Plan the playlist workflow and encoding load

  • Burn before assembling clips: render each clip with its own subtitle file, then assemble or play the prepared clips in the intended order.
  • Render continuously: apply filtering and encoding in the ongoing process, making sure subtitle selection and timing remain correct across clip boundaries.
  • Allow for video encoding: subtitle rendering processes video frames, so a persistent stream needs a process and host capable of sustaining the configured workload. The actual throughput depends on the source, resolution, encoder, and hardware; no universal minimum hardware requirement follows from the filter documentation.
  • Keep delivery formats distinct: local clip playback, HLS packaging, and YouTube encoder ingest are not interchangeable. Follow the current instructions for the output and destination you actually use.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Troubleshoot common problems

“No such filter: subtitles”

Your FFmpeg build may not include the filter or libass support. Check the build and use one configured with --enable-libass, as required by the FFmpeg filter documentation.

Best Value
CanaKit Raspberry Pi 4 4GB Basic Kit with PiSwitch (4GB RAM)
  • Includes Raspberry Pi 4 4GB Model B with 1.5GHz 64-bit quad-core CPU (4GB RAM)
  • CanaKit 3.5A USB-C Power Supply with Noise Filter (UL Listed) specially designed for the Raspberry Pi 4 (5-foot cable)
  • CanaKit USB-C PiSwitch (On/Off Power Switch)
  • Set of 3 Aluminum Heat Sinks for the Raspberry Pi 4

Subtitles are missing or the wrong language appears

Check the external filename and path, confirm the selected subtitle stream index or language, and verify that the input actually contains text subtitles. When there are several tracks, select the intended one explicitly using the filter’s documented stream-selection options.

The filter expression fails on a path or style option

Quote the filter expression and escape special characters according to both your shell and FFmpeg’s filtergraph syntax. Escaping differs across shells and operating systems, so do not assume one quoting example is portable everywhere.

Encoding is unexpectedly slow or CPU-heavy

Burning subtitles requires video-frame processing and video encoding. Video stream copy cannot perform the filter. Actual speed varies with the input, output resolution, encoder, and hardware; no benchmark or minimum throughput is established here.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

YouTube does not receive or accept the stream

Check the current YouTube encoder requirements, the live destination settings in your channel, and the URL and key supplied for that destination. A command that works for an offline file does not automatically configure YouTube ingest or a playlist process.

Or let it run in the cloud

If you have a finished recording or playlist ready to loop, StreamNeo keeps a YouTube stream running from the cloud: upload the video or build a playlist, add your YouTube stream key, and go live. Your computer and home connection do not have to stay on. Each slot streams what you upload, up to 4K 60fps, at one flat price per slot; StreamNeo automatically recovers if YouTube drops the stream. The first day is free with no card, one free day per account. Monthly billing is $9.99 per month. UPI and cards are accepted in India; card checkout is available worldwide. StreamNeo plays uploaded videos, not a live camera feed, and streams to YouTube only. Start your free day on StreamNeo.

Quick Recap

Bestseller No. 1
CanaKit Raspberry Pi 4 4GB Starter PRO Kit - 4GB RAM
CanaKit Raspberry Pi 4 4GB Starter PRO Kit - 4GB RAM
Includes Raspberry Pi 4 4GB Model B with 1.5GHz 64-bit quad-core CPU (4GB RAM); Includes Pre-Loaded 32GB EVO+ Micro SD Card (Class 10), USB MicroSD Card Reader
$159.99
Bestseller No. 2
Raspberry SC15184 Pi 4 Model B 2019 Quad Core 64 Bit WiFi Bluetooth (2GB)
Raspberry SC15184 Pi 4 Model B 2019 Quad Core 64 Bit WiFi Bluetooth (2GB)
Broadcom BCM2711, quad-core Cortex-A72 (ARM v8) 64-bit SoC @ 1. 5GHz; 2. 4 GHz and 5. 0 GHz IEEE 802. 11b/g/n/ac wireless LAN, Bluetooth 5. 0, BLE
$92.97
Bestseller No. 3
Raspberry Pi 4 Model B (2GB)
Raspberry Pi 4 Model B (2GB)
Broadcom BCM2711, Quad core Cortex-A72 (ARM v8) 64-bit SoC @ 1.5GHz; 1GB, 2GB, 4GB or 8GB LPDDR4-3200 SDRAM (depending on model)
$83.00
Bestseller No. 5
CanaKit Raspberry Pi 4 4GB Basic Kit with PiSwitch (4GB RAM)
CanaKit Raspberry Pi 4 4GB Basic Kit with PiSwitch (4GB RAM)
Includes Raspberry Pi 4 4GB Model B with 1.5GHz 64-bit quad-core CPU (4GB RAM); CanaKit USB-C PiSwitch (On/Off Power Switch)
$139.99

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.

FFmpegStreamNeosubtitlesVideo StreamingYouTube Live

Leave a Reply

Your email address will not be published. Required fields are marked *

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Recommended PC Tool
Recommended PC Tool
Windows Errors? Fix Them Before They SpreadFree repair scan
Outdated Drivers Are Slowing You DownFree scan - exact matches

Two free Windows tools

One Free Minute Could Fix That PC

Before you go - each of these free tools takes about a minute and tackles what quietly slows a Windows PC down.

Special offer. View Outbyte info, uninstall instructions, EULA, and Privacy Policy.