我在尝试使用 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
它给了我一个打开过滤器时出错错误,直到我用正斜杠替换反斜杠。