FFmpeg “ass” filter não funciona

3

Estou tendo um problema ao tentar usar o FFmpeg. Eu tenho usado principalmente para extrair clipes de vídeos e tal. No entanto, tenho tentado colocar algumas legendas incorporadas (hardsubs) no vídeo.

A documentação do FFMpeg me disse que eu deveria usar o filtro de vídeo "ass", e eu tentei como mostrado, mas sem sucesso. Não há mudança. O vídeo não tem as legendas nele; eles nem aparecem como um fluxo no arquivo. Eu posso também não ter incluído o filtro.

Esta é a linha que estou usando, que não está funcionando. O arquivo não tem fluxo de áudio anexado.

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

Eu sei que as legendas devem funcionar. Quando eu manualmente os carrego do meu player de vídeo, ou até os coloco juntos no arquivo, eles são exibidos perfeitamente. Mas, por alguma razão, o ffmpeg se recusa a gravar as legendas no vídeo em si.

No entanto, há um erro que estou chegando, que normalmente não aparece, e não tenho ideia do que está falando.

Fontconfig error: Cannot load default config file

[Parsed_ass_0 @ 00000000042c33c0] No usable fontconfig configuration file found, using fallback.

Fontconfig error: Cannot load default config file

[Parsed_ass_0 @ 00000000042c33c0] Added subtitle file: 'subs.ass' (3 styles, 68 events)

Qualquer ajuda sobre isso seria muito apreciada. (Se ajudar, estou usando a versão do windows do ffmpeg)

Editar: aqui está um link do MediaFire do arquivo ass. (Você notará que as legendas em si são menos que sérias.)

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%
    
por TUSF 08.08.2014 / 04:56

1 resposta

2

Eu também tive esse problema. Eu acho que é porque a construção estática que eu tenho para o Windows não inclui os arquivos fontconfig.

Eu copiei um arquivo fonts.conf padrão de esta discussão no Zeranoe FFmpeg na minha pasta chamada "conf" que eu coloquei na minha pasta ffmpeg e eu configurei as variáveis ambientais assim:

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

(A maneira que alterou as variáveis permanentemente para mim foi digitar "environment" no campo de busca no menu do windows e escolher "editar variáveis ambientais para sua conta", ou você pode chegar lá através do painel de controle).

Aqui está o conteúdo do arquivo fonts.conf que estou usando (acho que o bit mais importante é a seção <dir> no início. Mais informações sobre fontconfig em link ).

<?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>

Também descobri que o filtro não gostava de barras invertidas no estilo do Windows no caminho. Então, quando eu digitei vf ass="..\subtitles\subs.ass , ele me deu um erro Erro ao abrir filtros , até que eu substituí as barras invertidas por barras.

    
por 13.11.2014 / 06:23