divinity76/headless-chromium-recorder
Composer 安装命令:
composer require divinity76/headless-chromium-recorder
包简介
php composer package to record chrome-php/chrome sessions
README 文档
README
php composer package to record chrome-php/chrome sessions
Installation:
composer require divinity76/headless-chromium-recorder
Sample usage: Load a youtube video, accept the cookie prompt, and record for 30 seconds:
<?php declare(strict_types=1); require_once('vendor/autoload.php'); $browserFactory = new \HeadlessChromium\BrowserFactory(); $browserFactory->setOptions([ 'headless' => true, 'noSandbox' => true, 'customFlags' => [ '--disable-dev-shm-usage', // docker compatibility.. ], 'windowSize' => [1920, 1200], ]); $browser = $browserFactory->createBrowser(); $page = $browser->createPage(); $page->setViewport( width: 1920, height: 1080, )->await(); $recorder = new \Divinity76\HeadlessChromiumRecorder\Recorder($page); $recorder->startRecording( format: 'jpeg', //format: 'png', quality: 100, everyNthFrame: 1 ); $page->navigate('https://www.youtube.com/watch?v=dQw4w9WgXcQ')->waitForNavigation(\HeadlessChromium\Page::LOAD); // Video will not start playing until we accept cookies prompt: for ($attempt = 0;; ++$attempt) { try { $page->mouse()->find("tp-yt-paper-dialog[class*=ytd-consent-bump] button", 3)->click(); break; } catch (\HeadlessChromium\Exception\ElementNotFoundException $e) { if ($attempt > 1000) { throw $e; } //usleep(1); // should be a socket_select: https://github.com/chrome-php/wrench/pull/17 $page->getSession()->getConnection()->readData(); // should be a socket_select... } } $targetTime = microtime(true) + 30; while (microtime(true) < $targetTime) { //usleep(1); // should be a socket_select: https://github.com/chrome-php/wrench/pull/17 $page->getSession()->getConnection()->readData(); } $recorder->stopRecording(); $page->close(); $savepath = __DIR__ . DIRECTORY_SEPARATOR . 'test1.mp4'; $recorder->generateVideo1( $savepath, [ //'-fps_mode' => '-fps_mode passthrough', ] ); echo "video saved to: $savepath\n";
divinity76/headless-chromium-recorder 适用场景与选型建议
divinity76/headless-chromium-recorder 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 16 次下载、GitHub Stars 达 0, 最近一次更新时间为 2024 年 03 月 21 日, 在 PHP 生态内属于活跃度较高的组件。
我们在过去多个企业项目中使用过 divinity76/headless-chromium-recorder 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 divinity76/headless-chromium-recorder 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
统计信息
- 总下载量: 16
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 26
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: Unknown
- 更新时间: 2024-03-21