如何在ffmpeg视频过滤器中添加字幕字体大小

如何在ffmpeg视频过滤器中添加字幕字体大小,ffmpeg,video-processing,subtitle,Ffmpeg,Video Processing,Subtitle,我使用这个命令来裁剪、缩放,然后添加字幕作为覆盖 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 如何设置字幕的字体大小/颜色?使用字幕有两种方法:硬字幕和软字幕 硬潜艇 视频过滤器可用于硬分或刻录字幕。这需要重新编码,字幕成为

我使用这个命令来裁剪、缩放,然后添加字幕作为覆盖

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

如何设置字幕的字体大小/颜色?

使用字幕有两种方法:硬字幕和软字幕

硬潜艇 视频过滤器可用于硬分或刻录字幕。这需要重新编码,字幕成为视频本身的一部分

force_样式
选项 要自定义字幕,可以使用
字幕
过滤器中的
强制样式
选项。示例使用字幕文件
subs.srt
并使字体大小为24,字体颜色为红色

ffmpeg -i video.mp4 -vf "subtitles=subs.srt:force_style='Fontsize=24,PrimaryColour=&H0000ff&'" -c:a copy output.mp4
  • force_样式
    使用

  • primarycolor
    是十六进制的蓝绿红顺序。请注意,这与HTML颜色代码的顺序相反。颜色代码必须始终以
    &H
    开头,以
    &
    结尾

字幕制作 或者,您可以使用创建字幕并设置其样式。另存为(ASS)格式,因为它可以支持字体大小、字体颜色、阴影、轮廓、缩放、角度等


软式潜水艇 这些是文件中的附加流。播放器只需在播放时渲染它们。比硬Subbing更灵活,因为:

  • 您不需要重新编码视频
  • 您可以有多个字幕(多种语言)并在它们之间切换
  • 您可以在播放过程中打开/关闭它们
  • 他们可以调整大小与任何球员值得使用
当然,如果设备或播放器无法使用软式潜艇,有时需要硬式潜艇

要使用模式将字幕多路复用到视频文件中,请执行以下操作:

没有任何东西是重新编码的,因此整个过程将是快速的,质量和格式将得到保留

使用SubStation Alpha(ASS)字幕将允许您以自己喜欢的方式格式化字幕。可以使用Aegisub创建/转换这些文件


也看到

从文档中,您可以使用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输出。mp4


将使用DejaVu字体和大小24的字幕,同时保持视频质量。我自己也试过,效果很好。

FFmpeg有时很好,但有些视频会变得模糊。我决定和VLC玩家比较一下

媒体
转换/保存


我发现iPad HD/iPhone/PSP的个人资料
视频的默认设置非常好。或者,我可以将比特率从
700kb/s
降低到
350kb/s
,使其变小。

关于如何更改字体大小的问题没有回答,请提供语法正确的信息example@RolandSeuhs答案是,这是不可能与SRT(据我所知)。至于ASS,实际的ASS文件决定了字体大小;正如您在示例文件中所看到的。这是可行的,但请确保您已经创建了FC_CONFIG_DIR、FONTCONFIG_文件和FONTCONFIG_PATH环境变量,并且文件fonts.conf存在,否则它将不起作用。此命令有效,谢谢,但前提是我用双引号将参数括在
-vf
中。此硬代码子命令有效,但正如@GabrielDevillers所说,只有在-vf参数周围加上双引号。
ffmpeg -i input.mkv -i subtitles.ass -codec copy -map 0 -map 1 output.mkv