当我做system "ffmpeg -i just-do-it.mp4 -ab 96k -ar 22050 -qscale 6 output.flv"
ffmpeg接管了ruby进程直到完成作业,这有时需要很长时间。我试过使用线程和红宝石叉无济于事,也system
等效命令,如exec
%x[]
我也尝试了红宝石1.9.2最新的光纤,但我不认为我正确使用它。防止ffmpeg接管stdout
我的问题是如何从ruby同时运行两个ffmpeg进程?
编辑:
fork do
fork do
system "ffmpeg -i you-know.mp4 -ab 96k -ar 22050 -qscale 6 #{Time.now.sec}.flv"
end
fork do
system "ffmpeg -i bangbang.mp4 -ab 96k -ar 22050 -qscale 6 #{Time.now.sec}.flv"
end
end
我添加了上面的fork代码,但那不起作用,显然我错过了一些东西,你能帮忙吗?谢谢! –
@Senthil,不要使用'system'(这只是分支/放弃/等待),使用'exec'。请记住重定向STDOUT/STDERR /等。请参阅上面的示例代码片段。 – cam
非常感谢!尽管“是”似乎已经失去了动力,并且正在使用96%的cpu进程。也许我没有正确关闭它,但ffmpeg现在正在运行,所以这很好。 –