Легкая обертка PHP вокруг FFMPEG для записи экрана, лучше всего подходит для записи ваших приемных тестов с помощью Selenium, он прост в использовании и очистите интерфейс OOP.
Мне дали задачу сделать набор приемлемого теста , который включал запись видео с тестами. Я использовал селен для этой задачи и для видеозаписи, однако, я не смог найти элегантное решение, поэтому я создал эту библиотеку.
Одной из лучших особенностей этой библиотеки является его простота использования.
Метод startRecording вызывается, когда пользователь хочет начать запись, после чего эта библиотека запустит видеозапись в фоновом режиме. Когда пользователь выполнил свою задачу, он может позвонить, чтобы остановить stopRecording , чтобы остановить запись.
Библиотека легко устанавливается в виде пакета через композитор:
composer require dawood/phpscreenrecorder
Вот и все, больше ничего не требуется для установки
В папке также есть примеры.
Убедитесь, что вы включите композитор -автозагрузчик где -то в свою кодовую базу.
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 ; 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 Shell может принимать разные параметры: для полного списка параметров, которые вы можете посетить: http://ffmpeg.org/ffmpeg.html
setOptions принимает параметры в массиве. Вы можете предоставить любой вариант следующим образом: $ options [ ' -show_region ' =>' 1 ']
$ screenRecorder -> setOptions ( $ options );Примечание: вы должны написать полный вариант, включая «-»,
Я должен был сделать это, потому что есть некоторые варианты, которые нужны »-« это и некоторые, которые не так сложно узнать, для какого варианта я должен установить, поэтому вы должны предоставить полный вариант.
Размер экрана setScreenSizeToCapture для захвата, он принимает два аргумента, первыми являются ширина, а другие - высота.
startRecording Call Этот метод после того, как вы установили все желаемые параметры,
Это запустит запись экрана. Метод принимает два необязательных аргумента, во -первых, желаемое местоположение для сохранения видеофайла, а во -вторых, количество секунд для сна после запуска процесса. Это полезно, потому что FFMPEG требуется 1-2 секунды, чтобы запустить запись, значение по умолчанию для этого составляет 2 секунды. Вы можете изменить это в соответствии с вашими требованиями.
stopRecording что это остановит запись экрана. Метод также может занять один необязательный аргумент, количество секунд для сна после запуска процесса. Это полезно, потому что FFMPEG занимает 1-2 секунды, чтобы начать запись.
getVideo возвращает сохраненный видеофайл.
setBinary для этой библиотеки вам не требуется какого -либо двоичного файла, так как все уже включено, однако, если вам нужно использовать любой другой бинар, вы можете предоставить его, используя этот метод.
getCommandToRun возвращает сгенерированную команду, которая будет выполнена библиотекой.
Это полезно, чтобы проверить, как вы установили параметры или отладку.
getOptions возвращает массив всех вариантов установки.
getBinary возвращает в настоящее время установлен бинарный файл, т.е. FFMPEG.
Регистратор экрана PHP представляет собой программное обеспечение с открытым исходным кодом, лицензированное по лицензии MIT.
Благодаря всем участникам, разбивайте этот репозиторий и отправьте мне запрос на привлечение
Dawood Ikhlaq и сообщество с открытым исходным кодом