无头铬拍摄屏幕视频或动画 [英] headless chrome capture screen video or animation
问题描述
我尝试从网站捕捉一些动画并使用ffmpeg将它们拼接在一起。
就我所了解的文档 startScreencast
如果我理解了这一点,我可以开始使用
等待Page.startScreencast({format:'png',everyNthFrame:1});
每个传入帧包含
Page.screencastFrame(image => {
const {data,metadata } = image;
console.log(metadata);
});
但它从不打印出某些东西。所以我认为它没有被调用。
我用这样的东西存档我的目标:
let counter = 0;
while(counter <500){
等待Page.startScreencast({format:'png',everyNthFrame:1});
const {data,metadata} =等待Page.screencastFrame();
console.log(元数据);
counter + = 1;
}
这就像一个非高性能的黑客。
因此,如何正确使用 startScreencast
和 screencastFrame
的建议?
等待Page.navigate({url:'http://www.goodboydigital.com/pixijs/examples/12-2/'});
等待Page.loadEventFired();
等待Page.startScreencast({format:'png',everyNthFrame:1});
let counter = 0;
while(counter< 100){
const {data,metadata,sessionId} =等待Page.screencastFrame();
console.log(元数据);
等待Page.screencastFrameAck({sessionId:sessionId});
}
链接至 github issue 获取详细解释。
I try to capture some animations from a website and stitch them together using ffmpeg. As far as I understand the docs startScreencast is the way to go.
If I understand that right I can start the screencast with
await Page.startScreencast({format: 'png', everyNthFrame: 1});
and listen to every incoming frame with
Page.screencastFrame(image =>{
const {data, metadata} = image;
console.log(metadata);
});
But it's never prints out something. So I assume it's not called.
I archived my goal with something like this:
let counter = 0;
while(counter < 500){
await Page.startScreencast({format: 'png', everyNthFrame: 1});
const {data, metadata} = await Page.screencastFrame();
console.log(metadata);
counter += 1;
}
Which feels like a non-performant hack.
So any suggestions on how to use startScreencast
and screencastFrame
properly?
Every received frame also has to be acknowledged.
await Page.navigate({url: 'http://www.goodboydigital.com/pixijs/examples/12-2/'});
await Page.loadEventFired();
await Page.startScreencast({format: 'png', everyNthFrame: 1});
let counter = 0;
while(counter < 100){
const {data, metadata, sessionId} = await Page.screencastFrame();
console.log(metadata);
await Page.screencastFrameAck({sessionId: sessionId});
}
link to github issue for detailed explanation.
这篇关于无头铬拍摄屏幕视频或动画的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!