ffmpeg Python子进程错误返回非零退出状态1 [英] ffmpeg Python Subprocess Error returned non-zero exit status 1

查看:890
本文介绍了ffmpeg Python子进程错误返回非零退出状态1的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

所以我在这里有一行,旨在通过python和ffmpeg转储电影中的帧.

So I have a line here that is meant to dump frames from a movie via python and ffmpeg.

subprocess.check_output([ffmpeg, "-i", self.moviefile, "-ss 00:01:00.000 -t 00:00:05 -vf scale=" + str(resolution) + ":-1 -r", str(framerate), "-qscale:v 6", self.processpath + "/" + self.filetitles + "-output%03d.jpg"])

当前它给了我错误:

'CalledProcessError: Command ... returned non-zero exit status 1'

正在运行的python SAYS命令为:

The command python SAYS it's running is:

'['/var/lib/openshift/id/app-root/data/programs/ffmpeg/ffmpeg', '-i', u'/var/lib/openshift/id/app-root/data/moviefiles/moviename/moviename.mp4', '-ss 00:01:00.000 -t 00:00:05 -vf scale=320:-1 -r', '10', '-qscale:v 6', '/var/lib/openshift/id/app-root/data/process/moviename/moviename-output%03d.jpg']'

但是当我通过ssh运行以下命令时...

But when I run the following command via ssh...

'/var/lib/openshift/id/app-root/data/programs/ffmpeg/ffmpeg' -i '/var/lib/openshift/id/app-root/data/moviefiles/moviename/moviename.mp4' -ss 00:01:00.000 -t 00:00:05 -vf scale=320:-1 -r 10 -qscale:v 6 '/var/lib/openshift/id/app-root/data/process/moviename/moviename-output%03d.jpg'

效果很好.我究竟做错了什么?我想我误解了子进程字段解析的工作方式...

It works just fine. What am I doing wrong? I think I'm misunderstanding the way subprocess field parsing works...

推荐答案

除非在shell模式下运行,否则子进程模块几乎绝对不会在其参数中包含任何空格字符.试试这个:

The subprocess module does almost never allow any whitespace characters in its parameters, unless you run it in shell mode. Try this:

subprocess.check_output(["ffmpeg", "-i", self.moviefile, "-ss", "00:01:00.000", "-t", "00:00:05", "-vf", "scale=" + str(resolution) + ":-1", "-r", str(framerate), "-qscale:v", "6", self.processpath + "/" + self.filetitles + "-output%03d.jpg"])

这里是 python文档的引用.

"特别注意,在外壳程序中由空格分隔的选项(例如-input)和参数(例如eggs.txt)位于单独的列表元素中,而当参数需要引号或反斜杠转义时外壳程序中使用的(例如,包含空格的文件名或上面显示的echo命令)是单个列表元素."

这篇关于ffmpeg Python子进程错误返回非零退出状态1的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆