ffmpeg绝对路径错误

ffmpeg绝对路径错误

我创建了一个可以自动运行 ffmpeg 代码行的程序,它可以执行除一个功能之外的所有功能:如果我尝试叠加一些字幕,则绝对路径会出现问题,如果我在桌面上打开的 shell 中使用相同的代码,它可以工作,但如果我写下绝对路径,它就不起作用。

ffmpeg -i input.mp4 -filter_complex "subtitles=subs.srt:force_style='OutlineColour=&H80000000,BorderStyle=4,Outline=1,Shadow=0,MarginV=20,Fontsize=10,PrimaryColour=&H0000ff&'" output.mp4

如果我将 ffmpeg、input.mp4、subs.srt、output.mp4 更改为它们自己的绝对路径(“c:\users\home\desktop\input.mp4”),则不起作用!

我也尝试过:

  • “c:\users\home\desktop\input.mp4”
  • “c:/users/home/desktop/input.mp4”
  • 'c:\users\home\desktop\input.mp4'
  • ‘c:/users/home/desktop/input.mp4’

错误:

    [subtitles @ 0000000002ab79c0] Unable to parse option value "UsersFamigliaDesktop569.srt" as image size
    Last message repeated 1 times
[subtitles @ 0000000002ab79c0] Error setting option original_size to value UsersFamigliaDesktop569.srt.
[Parsed_subtitles_0 @ 0000000002ab78e0] Error applying options to the filter.
[AVFilterGraph @ 0000000002edcd20] Error initializing filter 'subtitles' with args 'C:UsersFamigliaDesktop569.srt:force_style=OutlineColour=&H80000000,BorderStyle=4,Outline=1,Shadow=0,MarginV=20,Fontsize=15,PrimaryColour=&H000000&'
Error reinitializing filters!
Failed to inject frame into filter network: Invalid argument
Error while processing the decoded data for stream #0:0

我能做些什么?

策略D

(我的英语说得不太好,抱歉)

答案1

根据此错误报告,您看到的错误是字幕过滤器的一个问题。

在 Windows 上,要使字幕过滤器能够使用绝对路径:

“每个特殊字符都需要转义 [...] 然后每个转义都需要重新转义”。

这实际上意味着您需要\\在冒号:(即\\:)之前并\\\\代替单个反斜杠\,例如:

subtitles=C\\:\\\\users\\\\\\\\home\\\\desktop\\\\subs.srt

为了避免出现问题,字幕路径中也不应有空格(对于没有空格的路径,引号无关紧要,因此没有必要)。

如果您漏掉了一个斜线(例如\:vs.\\:\\, \\\vs. \\\\)或在路径中包含空格,那么您将继续遇到问题。

请注意,此解决方案仅适用于字幕过滤器——您可以正常指定输入和输出文件的路径(例如c:\users\home\desktop\input.mp4)。

另请注意,仅当路径包含空格时才需要引号,例如

c:\users\home\desktop\input.mp4   # no space in path

对阵

"c:\users\home\desk top\input.mp4"   # space in path ("desk top")

最后,使用原始命令并c:\users\home\desktop\作为绝对路径将产生以下结果:

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

相关内容