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"
这是输入和输出说..
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。这是ffmpeg说的另一个......
[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
这是最后一个ffmpeg说...
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%
提前感谢那些可以帮助我的人!
经过一些测试,我发现这
FontName
是Droid Sans
而不是实际的字体位置。然后fontsdir
需要我们字体文件的文件夹位置,而不是实际的字体文件硬字幕的命令将是:
我的例子:
要了解您的
Fontname
,您可以使用任何浏览器在fontdrop.info上在线,然后将您的字体文件上传到那里,或者如果您使用的是 Windows,请将鼠标悬停在您的字体文件上,然后名称将出现在其下方对于
ass
过滤器,使用任何文本编辑器编辑您的 ass 文件,然后在那里替换字体名称和字体大小。您不需要输入force_style
上面的选项,只需使用fontsdir
并替换-vf subtitles
为-vf ass
像这样:
这适用于 termux android、windows cmd 甚至 mac。由于一些小问题,我不得不使用双引号。