2013-06-25 130 views
1

这里是Python代码:分配输出到一个变量,而不是到输出文件

import subprocess 

cmnd = ["ffmpeg", "-i", "/home/xincoz/test/connect.flv", "-acodec", "copy", "-ss", "00:00:00", "-t", "00:00:30", "/home/xincoz/test/output.flv"] 

subprocess.call(cmnd) 

在这里,我得到connect.flv视频的30秒长的视频输出文件output.flv。但是我想将这30秒长的二进制数据存储在一个变量中,而不是将其复制到输出文件中。 我怎么能够做到这一点?

请帮帮我。提前致谢。

+0

http://stackoverflow.com/questions/2502833/python-store-output-of-subprocess-popen-call -in-a-string – matino

+1

非常感谢@matino – rash

回答

1

你必须告诉ffmpeg输出到标准输出,并告诉输出格式。然后,从蟒蛇,如@matino说,使用POPEN读什么内容写到标准输出:

cmnd = ["ffmpeg", "-i", "/your/file.avi", "-acodec", "copy", "-ss", "00:00:00", "-t", "00:00:30", "-f", "avi", "pipe:1"] 

p = subprocess.Popen(cmnd, stdout=subprocess.PIPE) 

out, err = p.communicate() 

print len(out) # print the length of the data received 
+1

非常感谢bro @Guillaume。 – rash