我试图使用Twisted with Python2.7来管理两个进程。
我想做的是:
myImagesPipesGenerator | ffmpeg -i -
myImagesPipesGenerator在stdout上输出无限的BMP图像列表。 FFmpeg正在stdin上获取这些图片并在视频中对它们进行编码
所以我需要:
generatorTransport = reactor.spawnProcess(myInputProtocol, "myImagesPipesGenerator", ["myImagesPipesGenerator",], env=None, childFDs={0:'w', 1:'r', 2:'r'})
ffmpegTransport = reactor.spawnProcess(myOutputProtocol, "ffmpeg", ["ffmpeg","-i","-"], env=None, childFDs={0:__What_to_use_here__, 1:'r', 2:'r'})
如何获得"输出" generatorTransport stdout管道的文件描述符,所以我可以在childFDs中为ffmpegTransport使用它吗?
感谢您的帮助,
答案 0 :(得分:2)
自己创建管道:
read, write = os.pipe()
然后传递您希望孩子们使用它们的文件描述符。类似的东西:
generatorTransport = reactor.spawnProcess(..., childFDs={1: write})
ffmpegTransport = reactor.spawnProcess(..., childFDs={0: read})