dawood/phpscreenrecorder

一个轻量级的 PHP 封装,围绕 ffmpeg 进行屏幕录制,最适合使用 selenium 进行验收测试录制,使用简单且 OOP 接口清晰

v1.4 2017-07-20 08:10 UTC

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 和开源社区