Un envoltorio PHP liviano alrededor de FFMPEG para grabar la pantalla, lo mejor para grabar sus pruebas de aceptación usando Selenium, es fácil de usar y limpiar la interfaz OOP.
Me dieron una tarea para hacer una suite de prueba de aceptación que incluía grabar videos de las pruebas. Estaba usando Selenium para la tarea y para la grabación de video, sin embargo, no pude encontrar una solución elegante, por lo que creé esta biblioteca.
Una de las mejores características de esta biblioteca es su facilidad de uso.
El método startRecording se llama cuando el usuario desea iniciar la grabación después de lo cual esta biblioteca iniciará la grabación de video en segundo plano. Cuando el usuario ha completado su tarea, puede llamar stopRecording para detener la grabación.
La biblioteca se instala fácilmente como un paquete a través del compositor:
composer require dawood/phpscreenrecorder
Eso es todo, no se requiere nada más para la instalación.
También hay ejemplos proporcionados en la carpeta de ejemplos.
Asegúrese de que incluya el compositor Autoloader en algún lugar de su 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 );
} El comando ffmpeg shell puede aceptar diferentes opciones: para una lista completa de opciones que puede visitar: http://ffmpeg.org/ffmpeg.html
setOptions acepta las opciones en la matriz. Puede proporcionar cualquier opción de la siguiente manera: $ options [ ' -show_region ' =>' 1 ']
$ screenRecorder -> setOptions ( $ options );Nota: debe escribir una opción completa que incluya "-",
Tuve que hacer de esta manera porque hay algunas opciones que necesitan "-" Esto y otras que no son difíciles de saber para qué opción tengo que configurar que es por eso que debe proporcionar una opción completa.
setScreenSizeToCapture Tamaño de la pantalla Para capturar, acepta dos argumentos que el primero es el ancho y otro es la altura.
startRecording llame a este método después de haber establecido todas las opciones deseadas,
Esto iniciará la grabación de la pantalla. El método acepta dos argumentos opcionales, en primer lugar la ubicación deseada para guardar el archivo de video y, en segundo lugar, el número de segundos para dormir después de comenzar el proceso. Esto es útil porque FFMPEG tarda 1-2 segundos en iniciar la grabación, el valor predeterminado para esto es de 2 segundos. Puede cambiar esto de acuerdo con sus requisitos.
stopRecording Esto detendrá la grabación de la pantalla. El método también puede tomar un argumento opcional, el número de segundos para dormir después de comenzar el proceso. Esto es útil porque FFMPEG tarda 1-2 segundos en comenzar la grabación.
getVideo devuelve el archivo de video guardado.
setBinary Para esta biblioteca, no requiere ningún binario, ya que todo ya está incluido, sin embargo, si necesita usar cualquier otro binario, puede proporcionarlo utilizando este método.
getCommandToRun Devuelve el comando generado que será ejecutado por la biblioteca.
Esto es útil para verificar cómo ha establecido las opciones o para depurar.
getOptions devuelve una matriz de todas las opciones establecidas.
getBinary Devuelve el archivo binario establecido actualmente, es decir, ffmpeg.
La grabadora de pantalla PHP es un software de código abierto con licencia bajo la licencia MIT.
Gracias a todos los contribuyentes, bifurca este repositorio y envíame una solicitud de extracción
Dawood Ikhlaq y comunidad de código abierto