Obter erro ao adicionar legendas com ffmpeg

1

Eu quero adicionar um SubRip aos vídeos mp4, mas recebo um erro. Aqui está o meu comando:

ffmpeg -i "C:\Users\wwy12\Downloads\RaymondChen20_high.mp4" -s 1920x1080 -b:v 3842k -ac 2 -r 29.97 -c:v libx264 -ar 44100 -b:a 140k -c:a aac -aspect 16:9 -vf "subtitles='C:\Users\wwy12⁠\Downloads\subtitle.srt':charenc=cp936:force_style='PrimaryColour=&H0000FFFF,OutlineColour=&H00FFFFFF'" "c:\ffoutput\out.mp4" -y

e aqui está a saída:

ffmpeg version N-82759-g1f5630a-Sherpya Copyright (c) 2000-2016 the FFmpeg developers
  built with gcc 6.2.1 (GCC) 20161118
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'C:\Users\wwy12\Downloads\RaymondChen20_high.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    title           : One Dev Question with Raymond Chen - How do program settings work in virtual desktops
    album           : One Dev Question with Raymond Chen - How do program settings work in virtual desktops
    encoder         : Lavf57.10.101
    comment         : Application Development, C#, C++, developer center, Developer Tools, Developer Resources, Developers, Development, Windows 10
    copyright       : 2017 Microsoft Corporation
  Duration: 00:01:04.56, start: 0.000000, bitrate: 3985 kb/s
    Stream #0:0(eng): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1920x1080, 3842 kb/s, 29.97 fps, 29.97 tbr, 30k tbn, 59.94 tbc (default)
    Metadata:
      handler_name    : VideoHandler
    Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 140 kb/s (default)
    Metadata:
      handler_name    : SoundHandler
[subtitles @ 00000000030af220] Unable to parse option value "Userswwy12Downloadssubtitle.srt" as image size
    Last message repeated 1 times
[subtitles @ 00000000030af220] Error setting option original_size to value Userswwy12Downloadssubtitle.srt.
[Parsed_subtitles_0 @ 00000000030af160] Error applying options to the filter.

Veja aqui uma imagem da tela acima (algumas pessoas podem achar mais fácil ler).

    
por William 18.09.2017 / 05:06

1 resposta

2

O

Unable to parse option value "Userswwy12Downloadssubtitle.srt" …

mensagem de erro revela que o FFmpeg está descartando as barras invertidas no nome do arquivo. Esta pergunta de super usuário sugere que você pode substituir as barras invertidas ( \ ) com ordinária, encaminhada para a barra ( / ); ou seja, algo como

-vf "subtitles='C:/Users/wwy12/Downloads/subtitle.srt'…

e se você estiver executando na unidade C: , tente deixar C: fora do nome do arquivo.

Meu primeiro pensamento quando vi isso era que o FFmpeg usava barra invertida como um caractere de escape. A correção normal para essa situação é dobrar as barras invertidas:

-vf "subtitles='C:\Users\wwy12\Downloads\subtitle.srt'…

mas este tíquete de problema do FFmpeg sugere que você pode precisar quadruplicar eles. (Isso não é totalmente irracional; Algumas vezes precisei usar um número ridículo de barras invertidas no Unix.) Então você pode precisar fazer algo como

-vf "subtitles='C\:\\Users\\wwy12\\Downloads\\subtitle.srt'…

Eu não entendo porque eles sugerem colocar barras invertidas antes dos dois pontos ( : ). Como eu disse, você pode tornar sua vida mais simples omitindo o C: .

Atualização:

O OP informou que conseguiu que ele funcionasse duplicando as barras invertidas no caminho subtitles e adicionando um antes do cólon:

-vf "subtitles='C\:\Users\wwy12\Downloads\subtitle.srt'…
    
por 18.09.2017 / 06:23

Tags