我使用此命令裁剪,缩放,然后将字幕添加为叠加
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
我们如何设置字幕的字体大小/颜色?
答案 0 :(得分:27)
使用字幕有两种方法:hardsubs和softsubs。
subtitles
视频过滤器可用于硬拷贝或老化字幕。这需要重新编码,字幕成为视频本身的一部分。
force_style
选项要自定义字幕,您可以使用force_style
过滤器中的subtitles
选项。使用字幕文件subs.srt
并使用红色字体颜色制作字体大小为24的示例。
ffmpeg -i video.mp4 -vf "subtitles=subs.srt:force_style='Fontsize=24,PrimaryColour=&H0000ff&'" -c:a copy output.mp4
force_style
使用SubStation Alpha (ASS) style fields。
PrimaryColour
为蓝绿红色顺序的十六进制。请注意,这与HTML颜色代码的顺序相反。颜色代码必须始终以&H
开头,并以&
结尾。
或者,您可以使用Aegisub创建字幕并设置样式。保存为SubStation Alpha(ASS)格式,因为它可以支持字体大小,字体颜色,阴影,轮廓,缩放,角度等。
这些是文件中的其他流。播放器只需在播放时呈现它们。比hardsubbing更灵活,因为:
当然,如果设备或播放器无法使用softsub,有时需要使用hardsubs。
使用stream copy模式将字幕复制到视频文件中:
ffmpeg -i input.mkv -i subtitles.ass -codec copy -map 0 -map 1 output.mkv
没有重新编码,因此整个过程将很快,质量和格式将得到保留。
使用SubStation Alpha(ASS)字幕可以让您根据自己的喜好格式化字幕。这些可以用Aegisub创建/转换。
答案 1 :(得分:6)
从文档中,您可以使用srt字幕文件并通过将ASS样式格式KEY=VALUE
对分隔为,
来更改字体大小。所以,
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
将保留DejaVu字体和大小为24的字幕,同时保持视频的质量。我已经尝试过了,但它确实有效。
答案 2 :(得分:0)
FFmpeg有时很好,但有些视频可能会变得模糊。我建议与VLC播放器进行比较。
media
> Convert/Save
我发现配置文件Video for iPad HD/iPhone/PSP
的默认设置非常好。或者,我可以将Biters的数量从700kb/s
减少到350kb/s
来缩小。