![]() |
狂野的卤蛋 · 俄罗斯简况_风土人情_俄罗斯_2014年10 ...· 6 天前 · |
![]() |
玩篮球的创口贴 · 2024年研考分数查询及复试分数线汇总_中国 ...· 1 周前 · |
![]() |
害羞的豆芽 · 王轶、蔡蔚然:基于婚内财产分割协议的物权变动 ...· 2 周前 · |
![]() |
沉稳的筷子 · 演员邓婕专访:64岁再演“王熙凤”,笑声爽朗依旧· 4 周前 · |
![]() |
心软的香菜 · 中村裡帆和瀨戶利樹主演的日劇《灰姑娘onli ...· 4 周前 · |
所以我这里有一行,用来通过python和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命令说它正在运行:
'['/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运行以下命令时..。
'/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'
效果很好。我做错了什么?我想我误解了子进程字段解析的工作方式.
发布于 2014-07-31 20:08:27
子进程模块几乎不允许参数中的任何空格字符,除非您在shell模式下运行它。试试这个:
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"])
以下是 蟒蛇的医生。 的引文
“特别要注意的是,shell中由空格分隔的选项(如-input)和参数(如eggs.txt)位于单独的列表元素中,而在shell中使用时需要引用或反斜杠转义的参数(例如包含空格的文件名或上面显示的回显命令)是单个列表元素。”
发布于 2014-07-31 20:10:39
传递给
check_call
的参数数组格式不正确。例如,
ffmpeg
的每个参数都需要是参数列表中的单个元素。
... "-ss 00:01:00.000 -t 00:00:05 -vf ...
应该是
... "-ss", "00:01:00.000", "-t", "00:00:05", "-vf", ...
完整的结果args数组应该是:
['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']
https://stackoverflow.com/questions/25067927
复制相似问题
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2024 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号: 粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
![]() |
沉稳的筷子 · 演员邓婕专访:64岁再演“王熙凤”,笑声爽朗依旧 4 周前 |