wiki:

How to burn subtitles into the video

You can burn text subtitles (hardsubs) with one of two filters: subtitles or ass.

subtitles filter

Draw subtitles on top of input video using the libass library. This filter requires ffmpeg to be compiled with --enable-libass. See the subtitles video filter documentation for more details.

ffmpeg -i video.avi -vf subtitles=subtitle.srt out.avi

ass filter

Same as the subtitles filter, except that it doesn’t require libavcodec and libavformat to work. This filter requires ffmpeg to be compiled with --enable-libass. On the other hand, it is limited to ASS (Advanced Substation Alpha) subtitles files. See the ass video filter documentation for more details.

ffmpeg -i video.avi -vf "ass=subtitle.ass" out.avi

If your subtitle is in SubRip, MicroDVD or any other supported text subtitles, you have to convert it to ASS before using this filter:

ffmpeg -i subtitle.srt subtitle.ass

Windows users will have to setup font paths to get libass to work

picture based subtitles

You can burn "picture based" subtitles into a movie as well (for instance, dvdsub is a type of picture based overlay subtitles), by using the overlay video filter to overlay the images. Example of an MKV with dvdsub subtitles in a separate stream:

ffmpeg -i input.mkv -filter_complex "[0:v][0:s]overlay[v]" -map [v] -map 0:a <output options> output.mkv

If you have multiple subtitle streams, you can select which one to use by replacing [0:s] with [0:s:0] to select the first subtitle stream or [0:s:1] to select the second subtitle stream, and so on. See also the official documentation; search for "hardcode".

Last modified 11 months ago Last modified on 05/29/13 22:50:39