Reputation: 1556
I'm using this command to crop,scale, and then add subtitles as overlay
ffmpeg -i input.avi -vf "[in]crop=in_w:in_h-20:0:0 [crop]; [crop]scale=320:240 [scale];[scale]subtitles=srt.srt" -aspect 16:9 -vcodec libx264 -crf 23 oq.mp4
how can we set font size/color of subtitle ?
Upvotes: 29
Views: 61471
Reputation: 134103
There are two methods to use subtitles: hardsubs and softsubs.
The subtitles
video filter can be used to hardsub, or burn-in, the subtitles. This requires re-encoding and the subtitles become part of the video itself.
force_style
optionTo customize the subtitles you can use the force_style
option in the subtitles
filter. Example using subtitles file subs.srt
and making font size of 24 with red font color.
ffmpeg -i video.mp4 -vf "subtitles=subs.srt:force_style='Fontsize=24,PrimaryColour=&H0000ff&'" -c:a copy output.mp4
force_style
uses the SubStation Alpha (ASS) style fields.
PrimaryColour
is in hexadecimal in Blue Green Red order. Note that this is the opposite order of HTML color codes. Color codes must always start with &H
and end with &
.
Alternatively, you can use Aegisub to create and stylize your subtitles. Save as SubStation Alpha (ASS) format as it can support font size, font color, shadows, outlines, scaling, angle, etc.
These are additional streams within the file. The player simply renders them upon playback. More flexible than hardsubbing because:
Of course sometimes hardsubs are needed if the device or player is unable to utilize softsubs.
To mux subtitles into a video file using stream copy mode:
ffmpeg -i input.mkv -i subtitles.ass -codec copy -map 0 -map 1 output.mkv
Nothing is re-encoded, so the whole process will be quick and the quality and formats will be preserved.
Using SubStation Alpha (ASS) subtitles will allow you to format the subtitles however you like. These can be created/converted with Aegisub.
subtitles
video filter documentationUpvotes: 62
Reputation: 528
FFmpeg is good sometimes, but some videos can becoms blurry. I recoomend to compare with VLC player.
media
>Convert/Save
I find the default settings for Profile Video for iPad HD/iPhone/PSP
is very good. Or I can reduce the Biterates from 700kb/s
to 350kb/s
to make smaller.
Upvotes: -1
Reputation: 149
From the documentation you can use a srt subtitle file and change the size of the font by putting ASS style format KEY=VALUE
pairs separated by ,
. So,
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
will put the subtitles with DejaVu font and size 24 while keeps the quality of the video. I've tried myself and it worked.
Upvotes: 13