执行命令时出现ffmpeg语法错误

2024-04-29 21:03:17 发布

您现在位置:Python中文网/ 问答频道 /正文

此代码工作正常:

cmd = "ffmpeg -y -loop 1 -i " + url1 + " -ss 0 -t 5 " + " - 
filter_complex" + " 
[0:v]scale=w=-2:h=3*720,crop=w=3*1080/1.2:h=3*720/1.2:y=t*in_h/5- 
t*out_h/5,scale=w=1080:h=720 " + " -c:v h264 -crf 18 -preset veryfast 
" + url2

os.system(cmd)

但在执行以下代码之后:

cmd = "ffmpeg -y -loop 1 -i " + url1 + " -ss 0 -t 5 " + " - 
filter_complex" + " 
[0:v]scale=w=-2:h=3*720,crop=w=3*1080/1.2:h=3*720/1.2:y=(in_h-out_h)- 
t*(in_h-out_h)/5,scale=w=1080:h=720 " + " -c:v h264 -crf 18 -preset 
veryfast " + url2

os.system(cmd)

我得到一个错误:

**sh: 1: Syntax error: "(" unexpected****

所以括号有问题。有没有办法解决这个问题


Tags: 代码incropcmdloopfilteroutss
1条回答
网友
1楼 · 发布于 2024-04-29 21:03:17

括号对shell有特殊的意义。您可以使用反斜杠(必须加倍:\\(in_h-out_h\\))保护它们,也可以将整个序列放在单引号中:

... + "'[0:v]scale=w=-2:h=3720,crop=w=31080/1.2:h=3720/1.2:y=(in_h-out_h)-t(in_h-out_h)/5,scale=w=1080:h=720'" + ...

相关问题 更多 >