Um invólucro PHP leve em torno do FFMPEG para gravar a tela, melhor para gravar seus testes de aceitação usando o Selenium, é fácil de usar e limpar a interface OOP.
Recebi uma tarefa para fazer um conjunto de testes de aceitação que incluía gravação de vídeos dos testes. Eu estava usando o selênio para a tarefa e para a gravação de vídeo, no entanto, não consegui encontrar uma solução elegante, e é por isso que criei essa biblioteca.
Uma das melhores características desta biblioteca é a facilidade de uso.
O método startRecording é chamado quando o usuário deseja iniciar a gravação, após a qual essa biblioteca iniciará a gravação de vídeo em segundo plano. Quando o usuário concluir sua tarefa, eles podem chamar stopRecording para interromper a gravação.
A biblioteca é facilmente instalada como um pacote através do compositor:
composer require dawood/phpscreenrecorder
É isso, nada mais é necessário para a instalação
Existem exemplos fornecidos na pasta Exemplos também.
Certifique -se de incluir o compositor automaticamente em algum lugar da sua base de código.
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 );
} O comando ffmpeg shell pode aceitar diferentes opções: para uma lista completa de opções que você pode visitar: http://ffmpeg.org/ffmpeg.html
setOptions aceitam as opções na matriz. Você pode fornecer qualquer opção da seguinte maneira: $ options [ ' -show_region ' =>' 1 ']
$ screenRecorder -> setOptions ( $ options );Nota: você precisa escrever uma opção completa, incluindo "-",
Eu tive que fazer dessa maneira, porque existem algumas opções que precisam de "-" isso e algumas que não são, por isso é difícil saber para qual opção eu tenho que definir é por isso que você precisa fornecer uma opção completa.
setScreenSizeToCapture Tamanho da tela para capturar, ele aceita dois argumentos, sendo o primeiro a largura e outros a altura.
startRecording Chame esse método depois de definir todas as opções desejadas,
Isso iniciará a gravação da tela. O método aceita dois argumentos opcionais, primeiro o local desejado para salvar o arquivo de vídeo e, em segundo lugar, o número de segundos para dormir após iniciar o processo. Isso é útil porque o FFMPEG leva de 1-2 segundos para iniciar a gravação, o valor padrão para isso é de 2 segundos. Você pode alterar isso de acordo com seus requisitos.
stopRecording This interromperá a gravação da tela. O método também pode levar um argumento opcional, o número de segundos para dormir após iniciar o processo. Isso é útil porque o FFMPEG leva de 1-2 segundos para iniciar a gravação.
getVideo retorna o arquivo de vídeo salvo.
setBinary para esta biblioteca Você não precisa de nenhum binário, pois tudo já está incluído, no entanto, se precisar usar qualquer outro binário, poderá fornecê -lo usando esse método.
getCommandToRun retorna o comando gerado que será executado pela biblioteca.
Isso é útil para verificar como você definiu as opções ou para depurar.
getOptions retorna uma matriz de todas as opções definidas.
getBinary Retorna o arquivo binário atualmente definido, ou seja, FFMPEG.
O gravador de tela PHP é um software de código aberto licenciado sob a licença do MIT.
Graças a todos os colaboradores, lance este repositório e envie -me um pedido de tração
Dawood Ikhlaq e comunidade de código aberto