ffmpeg-php, manipula videos y sonidos con PHP

Hasta ahora, solo había incursionado en la manipulación de imágenes con PHP. Usar videos en este idioma me parecía inviable. Y todavía ...

 
ffmpeg-php es una extensión de PHP que le permite agregar una API dedicada a la manipulación y el control de vídeo y sonido. Esta API de alto nivel brinda acceso a funciones simples y comprensibles para extraer información de archivos.

Estos métodos permiten recuperar en particular "fotogramas", como imágenes. éstos, a su vez, pueden manipularse utilizando la biblioteca GD.
ffmpeg-php es perfecto para crear miniaturas a partir de video, o para automatizar la extracción de metadatos (duración, bitrate,…).
Incluso es posible crear Gifs animados extrayendo varios fotogramas.

$ ffmpeg = 'encoderffmpeg'; // coloca la ruta relativa al archivo ffmpeg.exe $ second = 15; // especifica la hora a la que se tomará la captura de pantalla (se puede generar fácilmente de forma aleatoria) $ image = 'thumbnails / sample.jpg'; // definir el archivo de salida // finalmente ensamblar el comando y ejecutarlo $ command = "$ ffmpeg -itsoffset - $ second -i $ video -vcodec mjpeg -vframes 1 -an -f rawvideo -s 150 × 84 $ image"; exec ($ comando);

A continuación, se muestran algunos ejemplos de métodos:

getDuration (). "getFrameCount:". $ ffmpegInstance-> getFrameCount (). "getFrameRate:". $ ffmpegInstance-> getFrameRate (). "getFilename:". $ ffmpegInstance-> getFilename (). "getComment:". $ ffmpegInstance-> getComment (). "getTitle:". $ ffmpegInstance-> getTitle (). "getAuthor:". $ ffmpegInstance-> getAuthor (). "getCopyright:". $ ffmpegInstance-> getCopyright (). "getArtist:". $ ffmpegInstance-> getArtist (). "getGenre:". $ ffmpegInstance-> getGenre (). "getTrackNumber:". $ ffmpegInstance-> getTrackNumber (). "getYear:". $ ffmpegInstance-> getYear (). "getFrameHeight:". $ ffmpegInstance-> getFrameHeight (). "getFrameWidth:". $ ffmpegInstance-> getFrameWidth (). "getPixelFormat:". $ ffmpegInstance-> getPixelFormat (). "getBitRate:". $ ffmpegInstance-> getBitRate (). "getVideoBitRate:". $ ffmpegInstance-> getVideoBitRate (). "getAudioBitRate:". $ ffmpegInstance-> getAudioBitRate (). "getAudioSampleRate:". $ ffmpegInstance-> getAudioSampleRate (). "getVideoCodec:". $ ffmpegInstance-> getVideoCodec (). "getAudioCodec:". $ ffmpegInstance-> getAudioCodec (). "getAudioChannels:". $ ffmpegInstance-> getAudioChannels (). "hasAudio:". $ ffmpegInstance-> hasAudio (); ?> 

ffmpeg-php admite una gran cantidad de formatos (mpeg, avi, wmv, mov, mp3, wma,…).

Como ejemplo, Vimeo.com usa ffmpeg-php para crear sus miniaturas. por tanto, podemos pensar que esta API es sólida.

Descarga ffmpeg-php

lea también