De acordo com este relatório de erros , o erro que você está vendo é um problema específico do filtro de legendas.
No Windows, para o filtro de legendas funcionar com caminhos absolutos:
"each special character needs to be escaped [...] and then each escape needs to be re-escaped".
O que isso significa efetivamente é que você precisa de \
antes dos dois pontos :
(ou seja, \:
) e \\
no lugar de barras invertidas únicas \
, por exemplo:
subtitles=C\:\\users\\\\home\\desktop\\subs.srt
Para evitar problemas, também não deve haver espaços em seu caminho de legendas (as cotações não importam de uma forma ou de outra para caminhos sem espaços e, portanto, não são necessárias).
Se você perder uma única barra (por exemplo, \:
vs. \:
ou \
, \\
vs. \\
) ou incluir espaços no caminho, você continuará tendo problemas.
Observe que essa solução é apenas para o filtro de legendas. Você pode especificar caminhos para seus arquivos de entrada e saída normalmente (por exemplo, c:\users\home\desktop\input.mp4
).
Além disso, você não precisa apenas de cotações se o caminho contiver espaços, por exemplo,
c:\users\home\desktop\input.mp4 # no space in path
vs.
"c:\users\home\desk top\input.mp4" # space in path ("desk top")
Por fim, usar seu comando original e c:\users\home\desktop\
como um caminho absoluto renderia:
ffmpeg -i c:\users\home\desktop\input.mp4 -filter_complex "subtitles=c\:\\users\\home\\desktop\\subs.srt:force_style='OutlineColour=&H80000000,BorderStyle=4,Outline=1,Shadow=0,MarginV=20,Fontsize=10,PrimaryColour=&H0000ff&'" c:\users\home\desktop\output.mp4