首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用FFmpeg、字体名称、字幕和ass过滤器的force_style硬子类

使用FFmpeg、字体名称、字幕和ass过滤器的force_style硬子类
EN

Ask Ubuntu用户
提问于 2021-05-08 12:24:29
回答 1查看 1K关注 0票数 1
代码语言:javascript
运行
复制
ffmpeg -y -i "/storage/0040-18A0/Music Videos on YouTube/TO be synced/ICSM dance.mkv" -c:s copy -q:s 0 -c:a copy -c:d copy -c:v mpeg2video -q:v 0 -map_metadata 0 -vf "scale=1920:-1,colorspace=all=bt2020,ass=/storage/0040-18A0/Music Videos on YouTube/TO be synced/ICSM dance.ass:fontsdir=/system/fonts/DroidSans.ttf" -bufsize 960M -maxrate 480M -r:v 30 -r:a 30 -t 30 -movflags +write_colr "/storage/0040-18A0/Music Videos on YouTube/TO be synced/30s samples.ts"

这是输入和输出写的。

代码语言:javascript
运行
复制
Input #0, matroska,webm, from '/storage/0040-18A0/Music Videos on YouTube/TO be synced/ICSM dance.mkv':
  Metadata:
    COMPATIBLE_BRANDS: iso6mp41
    creation_time   : 2020-12-16T20:39:56.000000Z
    MAJOR_BRAND     : dash
    MINOR_VERSION   : 0
    ENCODER         : Lavf58.76.100
  Duration: 00:03:30.07, start: 0.000000, bitrate: 218 kb/s
  Stream #0:0(eng): Video: vp9 (Profile 0), yuv420p(tv, bt709), 256x144, SAR 1:1 DAR 16:9, 29.97 fps, 29.97 tbr, 1k tbn, 1k tbc (default)
    Metadata:
      DURATION        : 00:03:30.009000000
  Stream #0:1: Audio: aac (LC), 44100 Hz, stereo, fltp (default)
    Metadata:
      HANDLER_NAME    : ISO Media file produced by Google Inc.
      VENDOR_ID       : [0][0][0][0]
      DURATION        : 00:03:30.071000000
Stream mapping:
  Stream #0:0 -> #0:0 (vp9 (native) -> mpeg2video (native))
  Stream #0:1 -> #0:1 (copy)
Press [q] to stop, [?] for help
[Parsed_ass_2 @ 0xa51dd240] libass API version: 0x1501000
[Parsed_ass_2 @ 0xa51dd240] libass source: tarball: 0.15.1
[Parsed_ass_2 @ 0xa51dd240] Shaper: FriBidi 1.0.10 (SIMPLE) HarfBuzz-ng 2.8.1 (COMPLEX)
[Parsed_ass_2 @ 0xa51dd240] Using font provider fontconfig
[Parsed_ass_2 @ 0xa51dd240] Added subtitle file: '/storage/0040-18A0/Music Videos on YouTube/TO be synced/ICSM dance.ass' (2 styles, 58 events)
[Parsed_ass_2 @ 0xa51dd240] Neither PlayResX nor PlayResY defined. Assuming 384x288
Output #0, mpegts, to '/storage/0040-18A0/Music Videos on YouTube/TO be synced/30s samples.ts':
  Metadata:
    COMPATIBLE_BRANDS: iso6mp41
    creation_time   : 2020-12-16T20:39:56.000000Z
    MAJOR_BRAND     : dash
    MINOR_VERSION   : 0
    encoder         : Lavf58.76.100
  Stream #0:0(eng): Video: mpeg2video (Main), yuv420p(tv, bt2020nc/bt2020/bt2020-10, progressive), 1920x1080 [SAR 1:1 DAR 16:9], q=2-31, 200 kb/s, 30 fps, 90k tbn (default)
    Metadata:
      DURATION        : 00:03:30.009000000
      encoder         : Lavc58.134.100 mpeg2video
    Side data:
      cpb: bitrate max/min/avg: 480000000/0/200000 buffer size: 960000000 vbv_delay: N/A
  Stream #0:1: Audio: aac (LC), 44100 Hz, stereo, fltp (default)
    Metadata:
      HANDLER_NAME    : ISO Media file produced by Google Inc.
      VENDOR_ID       : [0][0][0][0]
      DURATION        : 00:03:30.071000000

有人能帮我如何在ffmpeg Termux上使用系统字体吗?无论我尝试什么,都只是给了我DroidSansFallback。这是另一个,芬伯说.

代码语言:javascript
运行
复制
[Parsed_ass_2 @ 0xa51dd240] fontselect: ("/system/fonts/DroidSans.ttf", 400, 0) -> /system/fonts/Lohit-Punjabi.ttf, 0, Lohit-Punjabi
[Parsed_ass_2 @ 0xa51dd240] fontselect: (DroidSansChinese, 400, 0) -> /system/fonts/Lohit-Punjabi.ttf, 0, Lohit-Punjabi
[Parsed_ass_2 @ 0xa51dd240] Glyph 0x41 not found, selecting one more font for (DroidSansChinese, 16, 400)
[Parsed_ass_2 @ 0xa51dd240] fontselect: (DroidSansChinese, 400, 0) -> /system/fonts/DroidSansFallback.ttf, 0, DroidSansFallback

最后一封信说..。

代码语言:javascript
运行
复制
frame=  899 fps=1.7 q=0.0 Lsize=   25350kB time=00:00:29.97 bitrate=6927.5kbits/s speed=0.0563x
video:24095kB audio:469kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 3.197927%

提前感谢那些能帮我的人!

EN

回答 1

Ask Ubuntu用户

回答已采纳

发布于 2022-06-22 04:02:07

经过一些测试,我发现FontNameDroid Sans,而不是实际的字体位置。那么fontsdir需要我们的字体文件的文件夹位置,而不是实际的字体文件。

用于硬分的命令如下:

-vf "subtitles=(srt位置):fontsdir=(字体文件夹位置):subtitles=_style=‘FontName=Droid,Fontsize=12'“

我的例子:

代码语言:javascript
运行
复制
-vf "subtitles=/storage/emulated/0/0.srt:fontsdir=/storage/emulated/0/fonts/:force_style='FontName=Droid Sans,Fontsize=12'" 

要了解您的Fontname,您可以使用任何浏览器在fontdrop.info在线,然后将字体文件上传到那里,或者如果您正在使用windows,请将鼠标悬停到字体文件中,然后将名称显示在字体文件下面。

对于ass过滤器,使用任何文本编辑器编辑ass文件,然后在那里替换字体名称和字体大小。您不需要输入上面的force_style选项,只需使用fontsdir并将-vf subtitles替换为-vf ass

如下所示:

代码语言:javascript
运行
复制
-vf "ass=/storage/emulated/0/0.ass:fontsdir=/storage/emulated/0/fonts/"

这是用于termux,windows cmd,甚至mac。由于一些小问题,我不得不使用双引号。

票数 2
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/1336927

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档