User Tools

Site Tools


ffmpeg:subtitles:add_subtitles_from_a_srt_file

ffmpeg - Subtitles - Add subtitles from a SRT file

Adding Soft Subtitles

ffmpeg -i input.mp4 -i subtitle.srt -c copy -c:s mov_text -metadata:s:s:0 language=eng output.mp4
 
ffmpeg -i input.mp4 -i subtitle.srt -c copy -c:s srt -metadata:s:s:0 language=eng output.mkv

NOTE: Different syntax is used for MP4 and MKV.

  • -c copy specifies that the video is not to be re-encoded.
  • -c:s mov_text sets the SRT file to MOV_TEXT format.
  • -c:s srt sets the SRT file to SRT format for MKV.
  • -metadata:s:s:0 means to set the metadata for Stream:Subtitle:Number of stream, starting with 0.
  • language=eng sets the subtitle language to English.
    • The value for this option uses the ISO 639 language code which consists of 3 letters for every language.

Adding Hard Subtitles

ffmpeg -i input.mp4 -vf subtitles=subtitle.srt output.mp4

NOTE: The subtitles will be added to the video using the default font styles.

  • -vf is an alias for -filter:v.
  • subtitles=subtitle.srt is the name of the filter followed by the name of the SRT subtitle file.

Adding Soft Subtitles with additional formatting

Use a SRT subtitle file and change the size of the font by putting ASS style format KEY=VALUE pairs separated by a comma.

ffmpeg -i input.mp4 -vf subtitles=sub.srt:force_style='FontName=DejaVu Serif,FontSize=24' -vcodec libx264 -acodec copy -q:v 0 -q:a 0 output.mp4

NOTE: This will put the subtitles with DejaVu font and size 24 while keeps the quality of the video.


References

ffmpeg/subtitles/add_subtitles_from_a_srt_file.txt · Last modified: 2024/12/30 22:10 by peter

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki