【问题标题】:ffmpeg reverts to default subtitle fontffmpeg 恢复为默认字幕字体
【发布时间】:2021-10-24 17:50:45
【问题描述】:

我正在使用ffmpeg-python 将 SRT 刻录到视频文件中。 我的代码如下所示:

caption_file = "captions.srt"
style = "FontName=Roboto-Regular,FontSize=8"
fonts_dir = "fonts-main/apache"

(
    ffmpeg  
    .concat(video.filter("subtitles", caption_file, fontsdir=fonts_dir, force_style=style), audio, v=1, a=1)
    .output("my_video_w_subs.mp4")
    .run()
)

当我运行代码时,SRT 确实被烧毁了,但不是以指定的字体(Roboto-Regular)。

这里是输出日志:

[Parsed_subtitles_0 @ 0x55adfd490e80] Loading font file 'fonts-main/apache/Roboto-Regular.ttf'
[Parsed_subtitles_0 @ 0x55adfd490e80] Using font provider fontconfig
[Parsed_subtitles_0 @ 0x55adfd490e80] fontselect: (Roboto-Regular, 400, 0) -> /usr/share/fonts/truetype/dejavu/DejaVuSans.ttf, 0, DejaVuSans

似乎找到并加载了所需的字体,所以我不确定为什么不使用它。

【问题讨论】:

    标签: python ffmpeg moviepy


    【解决方案1】:

    看起来fonts_dir 应该包含字体文件名。

    不要fonts_dir = "fonts-main/apache",试试:

    fonts_dir = "fonts-main/apache/Roboto-Regular.ttf"
    

    注意:fonts-main/apache/Roboto-Regular.ttf 使用相对路径。
    您可以尝试使用完整路径,例如:/fonts-main/apache/Roboto-Regular.ttf


    为调试添加参数.global_args('-report'),并检查日志文件。

    这是一个完整的代码示例:

    import ffmpeg
    
    caption_file = "captions.srt"
    style = "FontName=Roboto-Regular,FontSize=8"
    fonts_dir = "/fonts-main/apache/Roboto-Regular.ttf"
    
    input = ffmpeg.input('1.avi')
    
    video = input.video
    audio = input.audio
    
    (
        ffmpeg  
        .concat(video.filter("subtitles", filename=caption_file, fontsdir=fonts_dir, force_style=style), audio, v=1, a=1)
        .output("my_video_w_subs.mp4")
        .global_args('-report')
        .overwrite_output()
        .run()
    )
    

    使用fonts_dir = "/fonts-main/apache" 时,我收到错误ass_read_file(/fonts-main/apache/����): fopen failed

    注意:

    • 我使用的是 Windows,但我不确定 fonts_dir 值是否是真正的问题(我没有收到 Loading font file 消息)。

    【讨论】:

      猜你喜欢
      • 2015-10-31
      • 2020-07-24
      • 2015-01-13
      • 2022-09-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多