ffmpeg Image2pipe命令从PhantomJS获取图像流时无限卡住

时间:2019-01-16 19:54:06

标签: javascript node.js cmd ffmpeg phantomjs

让我用我的代码解释我面临的问题...

这是我的PhantomJS使用的js文件。简单地告诉它打开一个页面并对其截屏并将其存储在stdout中。

var page = require("webpage").create();
page.viewportSize = { width: 640, height: 480 };
page.open("http://www.goodboydigital.com/pixijs/examples/12-2/", function() {
setInterval(function() {
page.render("/dev/stdout", { format: "png" });
}, 25);
});

这是我正在运行的cmd命令,用于在Windows命令提示符下的ffmpeg中接收捕获的图像。

phantomjs runner.js | ffmpeg -y -c:v png -f image2pipe -r 25 -t 10  -i - -c:v libx264 -pix_fmt yuv420p -movflags +faststart dragon.mp4

此命令成功启动PhantomJS和ffmpeg的进程。但是在相当长的时间内没有任何反应,在15分钟后,它给出了一个错误消息:

“无法重新分配解析器缓冲区”

就这样。我已经从开发人员声称可以正常工作的该站点引用了此代码 https://mindthecode.com/recording-a-website-with-phantomjs-and-ffmpeg/

请参阅随附的图片以获取更多说明。 Image of Code

1 个答案:

答案 0 :(得分:0)

这可能与ffmpeg进程的标准输出有关,因为它正在通过管道进行标准输入,并且在获取连续图像缓冲区后被填满并给出错误。

您可以在nodeJS上组织良好的画布录制应用程序“ puppeteer-recorder”中查看此内容

https://github.com/clipisode/puppeteer-recorder