我正在尝试编写一个python脚本来使用ffmpeg和视距刺图书馆。 我的问题是输出文件似乎没有通过stdout,所以使用子流程.Popen()返回空变量。在
cmd1=["ffmpeg", "-i","./input.MOV", "-vf", "vidstabdetect=stepsize=6:shakiness=10:accuracy=15", "-f","null","pipe:1"]
p = subprocess.Popen(cmd1, stdout=subprocess.PIPE)
vectors, err = p.communicate()
问题是vibstabdect接受一个名为result的过滤器,并将一个文件输出到其中指定的任何地方,而stdout仍然是空的。(如果没有指定结果,则默认为变换.trf。)
有没有办法获取结果文件的内容? 当使用上面的代码运行脚本时,它执行时不会出错,但文件是用默认名称创建的,变量保持为空。在
您需要为过滤器日志数据指定stdout,而不是ffmpeg的转码输出,这是当前的
-f null pipe:1
所做的。在但是,vidstabdecute过滤器使用posixfopen来打开转换数据的目的地,这与大多数使用内部avio_open的过滤器不同。对于fopen,
pipe:1
是不可接受的。对于Windows,CON
,对于linux,/dev/stdout
,如您所确认的,是必需的。在相关问题 更多 >
编程相关推荐