FFMpeg drawtext 宽度?
FFMpeg drawtext width?
我正在使用 drawtext
在动画 GIF 上打印一些文本。
一切正常,但我无法指定边界框并使文本换行。
我目前正在使用这个:
ffmpeg -i image.gif -filter_complex "drawtext=textfile=text.txt:x=main_w/2 - text_w/2:y=main_h/2 - text_h/2:fontfile=Roboto-Regular.ttf:fontsize=24:fontcolor=000000" image_out.gif
有没有办法换行?
您可以使用 FFmpeg subtitles filter 自动换行并将文本放在中间。
字幕格式有很多种,但这个答案有 ASS 和 SRT 字幕的示例。 ASS 支持更多格式选项,但 SRT 是一种更简单的格式,可以使用字幕过滤器中的 force_style
选项进行修改。
屁股字幕
在 Aegisub 中制作字幕。单击看起来像粉红色 "S" 的按钮以打开样式管理器。单击编辑。选择Alignment值5。将字幕文件保存为ASS格式。
ffmpeg
示例:
ffmpeg -i input -filter_complex subtitles=subs.srt -c:a copy output
SRT 字幕
SRT 比 ASS 更简单,但缺少一些功能,因此您可能需要在字幕过滤器中使用 force_style
选项。您可以使用文本编辑器制作这些字幕。 SRT 文件示例:
1
00:00:00,000 --> 00:00:05,000
Text with
manual line break
and with automatic word wrapping of long lines.
2
00:00:07,000 --> 00:00:10,000
Another line. Displays during 7-10 seconds.
ffmpeg
示例:
ffmpeg -i input -filter_complex "subtitles=subs.srt:force_style='Alignment=10,Fontsize=24'" -c:a copy output
有关更多 force_style
选项,请查看 ASS 文件内容中的 Styles
部分并参考 ASS Tags.
在这种情况下,Alignment
使用的是 legacy line position numbers,但上面的 ASS 示例使用的是现代 "numpad" 数字系统。
我正在使用 drawtext
在动画 GIF 上打印一些文本。
一切正常,但我无法指定边界框并使文本换行。
我目前正在使用这个:
ffmpeg -i image.gif -filter_complex "drawtext=textfile=text.txt:x=main_w/2 - text_w/2:y=main_h/2 - text_h/2:fontfile=Roboto-Regular.ttf:fontsize=24:fontcolor=000000" image_out.gif
有没有办法换行?
您可以使用 FFmpeg subtitles filter 自动换行并将文本放在中间。
字幕格式有很多种,但这个答案有 ASS 和 SRT 字幕的示例。 ASS 支持更多格式选项,但 SRT 是一种更简单的格式,可以使用字幕过滤器中的 force_style
选项进行修改。
屁股字幕
在 Aegisub 中制作字幕。单击看起来像粉红色 "S" 的按钮以打开样式管理器。单击编辑。选择Alignment值5。将字幕文件保存为ASS格式。
ffmpeg
示例:
ffmpeg -i input -filter_complex subtitles=subs.srt -c:a copy output
SRT 字幕
SRT 比 ASS 更简单,但缺少一些功能,因此您可能需要在字幕过滤器中使用 force_style
选项。您可以使用文本编辑器制作这些字幕。 SRT 文件示例:
1
00:00:00,000 --> 00:00:05,000
Text with
manual line break
and with automatic word wrapping of long lines.
2
00:00:07,000 --> 00:00:10,000
Another line. Displays during 7-10 seconds.
ffmpeg
示例:
ffmpeg -i input -filter_complex "subtitles=subs.srt:force_style='Alignment=10,Fontsize=24'" -c:a copy output
有关更多
force_style
选项,请查看 ASS 文件内容中的Styles
部分并参考 ASS Tags.在这种情况下,
Alignment
使用的是 legacy line position numbers,但上面的 ASS 示例使用的是现代 "numpad" 数字系统。