您可以使用FFmpeg subtitles filter進行自動換行並將文本放在中間的中間位置。
有很多字幕格式,但這個答案有ASS和SRT字幕的例子。 ASS支持更多格式化選項,但SRT格式更簡單,可以使用字幕過濾器中的force_style
選項進行修改。
ASS字幕
讓你的字幕Aegisub。點擊看起來像粉紅色「S」的按鈕打開樣式管理器。點擊修改。選擇對齊值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
我會改用字幕。本網站上有大量[示例](http://stackoverflow.com/a/21369850/1109017),或者查看[documentation](https://ffmpeg.org/ffmpeg-filters.html#subtitles)和[FFmpeg wiki] (https://trac.ffmpeg.org/wiki/HowToBurnSubtitlesIntoVideo)。如果您必須使用drawtext,那麼只需在您的'text.txt'中添加換行符。 – LordNeckbeard
我明白了。但是,這可以讓我有文字換行嗎?我沒有看到使用字幕而不是快速查看文檔的任何優勢。 – nbrogi
是的,字幕會自動包裝文字。 – LordNeckbeard