IOError:[Errno 32]管道破裂,Popen无法运行命令

我一直试图用python2.7实现一个函数,用ffmpeg向cli传递一个命令来转换视频,直到现在工作得几乎很好,问题是有时会抛出ioerror:[Errno 32]管道断裂,我不知道为什么会发生这种情况。你能帮我弄一下这个吗?
这是我将命令传递给CLI的函数:
Def_cli(Cmd):
#TODO验证函数
错误=FALSE
导入子流程
尝试:
P=subcess.Popen(cmd,stdout=subcess.PIPE,stderr=subprocess.PIPE,shell=True)
Stdoutdata,stderrdata=p.Communication()
如果p.Wait()!=0:
#处理错误/引发异常
用于判断转换成功与否的错误数
错误=True
打印stderrdata
返回stdoutdata、stderrdata、错误
除OSError外,e:
打印'Error'
Traceback.print_exc()
返回e.strerror,e.strerror,error
我是这样称呼它的:
C='/usr/bin/ffmpeg-Hide_Banner-nostats-i/home/user/original/390f8455-8657-4452-9fd9-0167d1025389.flv-c:v libx264-c:a aac-Strong-2\f25/home/user/original/390f8455-8657-4452-9fd9-0167d1025389.mp4'
打印'转换命令:%s'%c
Stdoutdata,stderrdata,错误=_cli(C)
如果出现错误:
打印'转换视频错误'
#obj为Django对象
Obj.Convert_Status='错误'
Obj.msg=stderrdata
这是一个例外:
回溯(最近一次呼叫):
在PERFORM_JOB中文件"/home/user/myapp/env/local/lib/python2.7/site-packages/rq/worker.py",第799行
Rv=job.Perform()
FILE"/home/user/myapp/env/local/lib/python2.7/site-packages/rq/job.py",第600行,在执行
Sel._Result=sel._Execute()
文件执行第606行,in_"/home/user/myapp/env/local/lib/python2.7/site-packages/rq/job.py",
返回self.func(*self.args,**self.kwargs)
转换视频中的文件"/home/user/myapp/cffmpeg/task.py",第79行
Stdoutdata,stderrdata,错误=_cli(C)
文件"/home/user/myapp/cffmpeg/task.py",第216行,in_cli
打印stderrdata
IoError:[Errno 32]管道断裂
第79行是我调用函数的地方,第216行是我打印stderrdata的函数

标签: python

添加新评论