为啥 ffmpeg 刻录中文字幕(ass) 不换行?

Posted

技术标签:

【中文标题】为啥 ffmpeg 刻录中文字幕(ass) 不换行?【英文标题】:Why does ffmpeg burn Chinese subtitles(ass) without word wrap?为什么 ffmpeg 刻录中文字幕(ass) 不换行? 【发布时间】:2020-07-09 07:19:23 【问题描述】:

my ffmpeg burn subtitle example

ffmpeg 将字幕刻录成 mp4。属性 WrapStyle(0:word wrap, 1: char '\N' or movie edge force change line, 2: only \n and \N change line)。

英文字幕运行正常。 WrapStyle=0时中文字幕不换行。

【问题讨论】:

【参考方案1】:

因为文本中没有空格。

中文通常在单词或句子之间没有任何空格字符。 ASS 字幕格式最初是由欧洲语言使用者设计并为欧洲语言使用者设计的,不幸的是,它只会破坏实际空格字符上的单词。您的字幕文件不包含任何空格字符,因此不会出现断行。

未来

有an open pull request 教libass 正确地打破这些线。 libass 是 FFmpeg 用来显示字幕的软件。最终,这应该会导致一个 FFmpeg 选项来启用此类换行符。

在此之前,您唯一的选择是将明确的\N 添加到您希望换行的字幕文本中。

【讨论】:

以上是关于为啥 ffmpeg 刻录中文字幕(ass) 不换行?的主要内容,如果未能解决你的问题,请参考以下文章

ffmpeg-01-Subtitle

如何在直播中使用 FFMpeg 将 dvb 字幕转换为文本格式,或者如何优化 dvb 刻录过程?

android 中使用ffmpeg,将视频加入字幕,用ass文件,在PC上可以,但在Android上一直不行

FFmpeg 硬编码字幕 fontconfig 错误

使用 ffmpeg 禁用默认字幕轨道

使用ffmpeg压制硬字幕与logo