无法按照我的意愿在 FFmpeg 命令中使用变量

无法按照我的意愿在 FFmpeg 命令中使用变量

我正在尝试在 Powershell 脚本中使用 FFmpeg 进行基本的硬字幕工作。代码如下:

$subfile = ".\test\sub.srt"

ffmpeg -i in.mp4 -c:v h264 -vf "subtitles=${subfile}:'force_style=fontsize=20'" out.mp4

当我运行此程序时,FFmpeg 中出现以下错误:

"Unable to open .testsub.srt"

$subfile奇怪的是,FFmpeg 从变量中切断了反弹。

如果我像下面这样更改命令(删除$subfile变量的花括号):

$subfile = ".\test\sub.srt"

ffmpeg -i in.mp4 -c:v h264 -vf "subtitles=$subfile:'force_style=fontsize=20'" out.mp4

这次 PowerShell 给出了如下错误:

"Variable reference is not valid. ':' was not followed by a valid variable name character. Consider using ${} to delimit the name."

在 FFmpeg 命令中,上面的" ':符号都是必需的,所以很遗憾我无法更改它。我该怎么办?

谢谢。

答案1

当我尝试“Gyan”的解决方案时,它成功了。我还尝试将所有模式从更改为\如下/

$subfile = ".\test\sub.srt"

$pattern = "[\\]"

$subfile = $subfile -replace $pattern, "/"

ffmpeg -i in.mp4 -c:v h264 -vf "subtitles=${subfile}:'force_style=fontsize=20'" out.mp4

答案2

这是我制作字幕的方法:

ffmpeg -y -i Bach720.mp4 -i bach.srt -vf "subtitles=bach.srt:force_style=FontName='Lobster Two,PrimaryColour=&H000000FF,FontSize=30'" BachSRT.mp4

相关内容