【问题标题】:Assign output to a variable instead to a Output file将输出分配给变量而不是输出文件
【发布时间】:2013-06-22 01:14:35
【问题描述】:

这里是 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 秒长的二进制数据存储在变量中,而不是将其复制到输出文件中。 我怎么能做到这一点?

请帮助我。提前非常感谢。

【问题讨论】:

标签: python ffmpeg subprocess


【解决方案1】:

您必须告诉 ffmpeg 输出到 stdout 并告诉输出格式是否。然后从 python,正如@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

【讨论】:

  • 非常感谢@Guillaume 兄弟。
猜你喜欢
  • 2017-09-28
  • 2012-12-12
  • 2018-05-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多