dawood / phpscreenrecorder
一个轻量级的 PHP 封装,围绕 ffmpeg 进行屏幕录制,最适合使用 selenium 进行验收测试录制,使用简单且 OOP 接口清晰
Requires
- symfony/process: >=2.7
Requires (Dev)
- phpunit/phpunit: ^6.2
This package is not auto-updated.
Last update: 2024-09-15 23:27:48 UTC
README
一个轻量级的 php 封装,围绕 ffmpeg 进行屏幕录制,最适合使用 selenium 进行验收测试录制,使用简单且 OOP 接口清晰。
历史记录
我被分配了一个任务,要创建一个 验收测试套件,其中包括录制测试视频。我使用 selenium 来完成任务,以及录制视频,然而,我找不到一个优雅的解决方案,因此我创建了这个库。
使用方法
这个库最出色的特性之一就是其易用性。
当用户想要开始录制时,会调用 startRecording
方法,然后这个库将在后台开始视频录制。当用户完成他们的任务后,他们可以调用 stopRecording
来停止录制。
安装
通过 composer 将库作为包轻松安装
composer require dawood/phpscreenrecorder
就这些,安装不需要其他任何东西
示例
在 examples 文件夹中也提供了示例。
确保在您的代码库中某处包含 composer 自动加载器。
捕获屏幕
include "../vendor/autoload.php"; use dawood\PhpScreenRecorder\ScreenRecorder; $screenRecorder=new ScreenRecorder(); $screenRecorder->setScreenSizeToCapture(1920,1080); $screenRecorder->startRecording(__DIR__.DIRECTORY_SEPARATOR.'myVideo'); sleep(5+2);//doing random stuff //when done stop recording $screenRecorder->stopRecording(); print "video is saved at :\"".$screenRecorder->getVideo().'"'.PHP_EOL;
Selenium 测试示例
public function testLoginUserCorrectly() { $this->screenRecorder->setScreenSizeToCapture(1920,1080); $this->screenRecorder->startRecording(__DIR__."/videos/loginCorrectly.flv",2); $loginInput = [ 'username' => 'test', 'password' => 'password' ]; $this->visit('/') ->submitForm("#loginform > form",$loginInput) ->wait(3) ->see("Logout") ->wait(2); $this->screenRecorder->stopRecording(0); }
设置选项
ffmpeg 命令行可以接受不同的选项:有关选项的完整列表,您可以访问: https://ffmpeg.net.cn/ffmpeg.html
封装方法
setOptions
接受数组中的选项。您可以通过以下方式提供任何选项:
$options['-show_region'=>'1'] $screenRecorder->setOptions($options);
注意:您必须写完整的选项,包括 "-" ,
我必须这样做,因为有些选项需要 "-" 这个符号,而有些则不需要,所以很难知道我需要为哪个选项设置它,因此您必须提供完整的选项。
-
setScreenSizeToCapture
要捕获的屏幕尺寸,它接受两个参数,第一个是宽度,第二个是高度。 -
startRecording
在设置所有所需的选项后调用此方法,
这将开始屏幕录制。该方法接受两个可选参数,首先是要保存视频文件的位置,其次是在启动进程后要休眠的秒数。这很有用,因为 ffmpeg 需要 1-2 秒来开始录制,默认值为此为 2 秒。您可以根据需要更改此值。 -
stopRecording
这将停止屏幕录制。该方法还可以接受一个可选参数,在启动进程后要休眠的秒数。这很有用,因为 ffmpeg 需要 1-2 秒来开始录制。 -
getVideo
返回保存的视频文件。 -
setBinary
对于这个库,您不需要任何二进制文件,因为一切都已经包含在内,但是,如果您需要使用其他二进制文件,您可以使用此方法提供它。 -
getCommandToRun
返回将由库执行的生成命令。
这很有用,可以检查您如何设置选项或进行调试。 -
getOptions
返回所有设置的选项数组。 -
getBinary
返回当前设置的二进制文件,例如 ffmpeg。
许可证
PHP 屏幕录制器 是开源软件,遵循 MIT 许可协议。
贡献
感谢所有贡献者,请fork此仓库并发送pull request给我。
作者
Dawood Ikhlaq 和开源社区