Skip to main content

Module screencast

Module screencast 

Source
Available on crate feature camoufox only.
Expand description

录像 Screencast:对标 DrissionPage 的 tab.screencast

大道至简:不走 Juggler 原生 Page.startScreencast(那要处理 screencastFrame 事件 + 逐帧 ack + 节流,复杂度更高),而是起一个后台任务按帧间隔反复截视口(复用 [TabCore::capture])。

模式(ScreencastMode):

  • Imgs:持续逐帧把视口存为 PNG(frame_000000.pngframe_000001.png…)。
  • FrugalImgs:仅当画面变化(与上一帧字节不同)才存——对应 DP 的“省流“模式。
  • Video / FrugalVideo:先取帧,停止时用 ffmpeg 合成 mp4(对标 DP 的 video 模式需 opencv, 这里换成更通用的 ffmpeg CLI,不引入 Rust 依赖);未装 ffmpeg 则报错并指引改用 Imgs
let cast = tab.screencast();
cast.set_save_path("video").set_mode(ScreencastMode::Imgs).set_fps(10.0);
cast.start(None).await?;
tab.wait().secs(3.0).await;
let out = cast.stop().await?;   // imgs→帧目录;video→mp4 文件

Structs§

Screencast
tab.screencast() 返回的录像句柄(对应 DP tab.screencast)。

Enums§

ScreencastMode
录制模式(对标 DP screencast.set_mode.*)。