FFmpeg“ass”过滤器不起作用

FFmpeg“ass”过滤器不起作用

我在尝试使用 FFmpeg 时遇到了一些问题。我主要用它来从视频中提取片段等。不过,我一直在尝试将一些字幕嵌入到视频中(硬字幕)。

FFMpeg 文档告诉我应该使用“ass”视频过滤器,我按照图示尝试了,但无济于事。没有任何变化。视频上没有字幕;它们甚至没有在文件中显示为流。我还不如不包含过滤器。

这是我正在使用的线路,但它不起作用。文件没有附加音频流。

ffmpeg -i input.webm -vf ass=subs.ass -b:v 1200K out.webm

我知道字幕应该可以正常工作。当我手动从视频播放器加载字幕,甚至将它们混合到文件中时,字幕都可以正常显示。但出于某种原因,ffmpeg 拒绝将字幕刻录到视频本身中。

然而,我遇到了一个小错误,这个错误通常不会出现,而且我不知道它在说什么。

Fontconfig 错误:无法加载默认配置文件

[Parsed_ass_0 @ 00000000042c33c0] 未找到可用的 fontconfig 配置文件,使用后备。

Fontconfig 错误:无法加载默认配置文件

[Parsed_ass_0 @ 00000000042c33c0] 添加字幕文件:“subs.ass”(3 种样式、68 个事件)

任何有关此问题的帮助都将不胜感激。(如果有帮助,我正在使用 Windows 版本的 ffmpeg)

编辑:这是一个MediaFire 链接,ass 文件的。(您会注意到字幕本身并不那么严肃。)

ffmpeg version N-65366-g1c59419 Copyright (c) 2000-2014 the FFmpeg developers
  built on Aug  6 2014 22:09:19 with gcc 4.8.3 (GCC)
  configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-av
isynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enab
le-iconv --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --
enable-libfreetype --enable-libgme --enable-libgsm --enable-libilbc --enable-lib
modplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrw
b --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libschroedinge
r --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --en
able-libvidstab --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-libvorbis
 --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-
libx265 --enable-libxavs --enable-libxvid --enable-decklink --enable-zlib
  libavutil      52. 98.100 / 52. 98.100
  libavcodec     55. 73.100 / 55. 73.100
  libavformat    55. 51.101 / 55. 51.101
  libavdevice    55. 13.102 / 55. 13.102
  libavfilter     4. 11.102 /  4. 11.102
  libswscale      2.  6.100 /  2.  6.100
  libswresample   0. 19.100 /  0. 19.100
  libpostproc    52.  3.100 / 52.  3.100
Input #0, matroska,webm, from 'input.webm':
  Metadata:
    encoder         : Lavf55.41.100
  Duration: 00:00:04.10, start: 0.000000, bitrate: 2465 kb/s
    Stream #0:0: Video: vp8, yuv420p, 620x924, SAR 1:1 DAR 155:231, 29.97 fps, 29.97 tbr, 1k tbn, 1k tbc (default)
File 'out.webm' already exists. Overwrite ? [y/N] y
Fontconfig error: Cannot load default config file
[Parsed_ass_0 @ 00000000043933a0] No usable fontconfig configuration file found, using fallback.
Fontconfig error: Cannot load default config file
[Parsed_ass_0 @ 00000000043933a0] Added subtitle file: 'subs.ass' (3 styles, 68 events)
[libvpx @ 00000000043ccf00] v1.3.0
Output #0, webm, to 'out.webm':
  Metadata:
    encoder         : Lavf55.51.101
    Stream #0:0: Video: vp8 (libvpx), yuv420p, 620x924 [SAR 1:1 DAR 155:231], q=-1--1, 1200 kb/s, 29.97 fps, 1k tbn, 29.97 tbc (default)
    Metadata:
      encoder         : Lavc55.73.100 libvpx
Stream mapping:
  Stream #0:0 -> #0:0 (vp8 (native) -> vp8 (libvpx))
Press [q] to stop, [?] for help
frame=    7 fps=0.0 q=0.0 size=      72kB time=00:00:00.23 bitrate=2512.2kbits/s
frame=   13 fps= 10 q=0.0 size=      95kB time=00:00:00.43 bitrate=1799.3kbits/s
frame=   19 fps=9.7 q=0.0 size=     128kB time=00:00:00.63 bitrate=1656.4kbits/s
frame=   25 fps=9.9 q=0.0 size=     144kB time=00:00:00.83 bitrate=1415.2kbits/s
frame=   30 fps=9.9 q=0.0 size=     165kB time=00:00:01.00 bitrate=1351.3kbits/s
frame=   37 fps= 10 q=0.0 size=     193kB time=00:00:01.23 bitrate=1281.2kbits/s
frame=   42 fps= 10 q=0.0 size=     208kB time=00:00:01.40 bitrate=1216.8kbits/s
frame=   48 fps= 10 q=0.0 size=     237kB time=00:00:01.60 bitrate=1213.7kbits/s
frame=   52 fps= 10 q=0.0 size=     253kB time=00:00:01.73 bitrate=1196.9kbits/s
frame=   57 fps= 10 q=0.0 size=     281kB time=00:00:01.90 bitrate=1211.0kbits/s
frame=   60 fps=9.7 q=0.0 size=     301kB time=00:00:02.00 bitrate=1232.0kbits/s
frame=   66 fps=9.9 q=0.0 size=     326kB time=00:00:02.20 bitrate=1211.3kbits/s
frame=   70 fps=9.7 q=0.0 size=     347kB time=00:00:02.33 bitrate=1218.0kbits/s
frame=   73 fps=9.3 q=0.0 size=     386kB time=00:00:02.43 bitrate=1297.3kbits/s
frame=   78 fps=9.3 q=0.0 size=     406kB time=00:00:02.60 bitrate=1276.3kbits/s
frame=   81 fps=9.0 q=0.0 size=     418kB time=00:00:02.70 bitrate=1266.3kbits/s
frame=   85 fps=8.9 q=0.0 size=     441kB time=00:00:02.83 bitrate=1274.6kbits/s
frame=   90 fps=9.0 q=0.0 size=     456kB time=00:00:03.00 bitrate=1243.3kbits/s
frame=   94 fps=8.9 q=0.0 size=     476kB time=00:00:03.13 bitrate=1244.1kbits/s
frame=   99 fps=8.9 q=0.0 size=     502kB time=00:00:03.30 bitrate=1246.1kbits/s
frame=  102 fps=8.8 q=0.0 size=     510kB time=00:00:03.40 bitrate=1228.5kbits/s
frame=  107 fps=8.8 q=0.0 size=     533kB time=00:00:03.57 bitrate=1224.1kbits/s
frame=  113 fps=8.9 q=0.0 size=     559kB time=00:00:03.77 bitrate=1215.0kbits/s
frame=  118 fps=8.8 q=0.0 size=     578kB time=00:00:03.93 bitrate=1202.5kbits/s
frame=  123 fps=8.9 q=0.0 size=     603kB time=00:00:04.10 bitrate=1204.6kbits/s
frame=  123 fps=8.8 q=0.0 Lsize=     604kB time=00:00:04.10 bitrate=1204.7kbits/s
video:602kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.224451%

答案1

我也遇到过这个问题。我认为这是因为我为 Windows 获得的静态构建不包含字体配置文件。

我从关于 Zeranoe FFmpeg 的讨论放入我放在 ffmpeg 文件夹中的名为“conf”的文件夹,然后按如下方式设置环境变量:

FC_CONFIG_DIR=C:\Program Files\ffmpeg\conf
FONTCONFIG_FILE=C:\Program Files\ffmpeg\conf\fonts.conf
FONTCONFIG_PATH=C:\Program Files\ffmpeg\conf

(对我来说,成功永久更改变量的方法是在 Windows 菜单上的搜索字段中输入“环境”,然后选择“编辑您的帐户的环境变量”,或者您可以通过控制面板到达那里)。

以下是我正在使用的 fonts.conf 文件的内容(我认为最重要的是<dir>开头的部分。有关 fontconfig 的更多信息,请访问http://fontconfig.org)。

<?xml version="1.0"?>
<fontconfig>

<dir>C:\WINDOWS\Fonts</dir>

<match target="pattern">
<test qual="any" name="family"><string>mono</string></test>
<edit name="family" mode="assign"><string>monospace</string></edit>
</match>

<match target="pattern">
<test qual="all" name="family" compare="not_eq"><string>sans-serif</string></test>
<test qual="all" name="family" compare="not_eq"><string>serif</string></test>
<test qual="all" name="family" compare="not_eq"><string>monospace</string></test>
<edit name="family" mode="append_last"><string>sans-serif</string></edit>
</match>

<alias>
<family>Times</family>
<prefer><family>Times New Roman</family></prefer>
<default><family>serif</family></default>
</alias>
<alias>
<family>Helvetica</family>
<prefer><family>Arial</family></prefer>
<default><family>sans</family></default>
</alias>
<alias>
<family>Courier</family>
<prefer><family>Courier New</family></prefer>
<default><family>monospace</family></default>
</alias>
<alias>
<family>serif</family>
<prefer><family>Times New Roman</family></prefer>
</alias>
<alias>
<family>sans</family>
<prefer><family>Arial</family></prefer>
</alias>
<alias>
<family>monospace</family>
<prefer><family>Andale Mono</family></prefer>
</alias>
<match target="pattern">
<test name="family" compare="eq">
<string>Courier New</string>
</test>
<edit name="family" mode="prepend">
<string>monospace</string>
</edit>
</match>
<match target="pattern">
<test name="family" compare="eq">
<string>Courier</string>
</test>
<edit name="family" mode="prepend">
<string>monospace</string>
</edit>
</match>

</fontconfig>

我还发现过滤器不喜欢路径中的 Windows 样式反斜杠。所以当我输入时,vf ass="..\subtitles\subs.ass它给了我一个打开过滤器时出错错误,直到我用正斜杠替换反斜杠。

相关内容