GNU/Linux >> Tutoriales Linux >  >> Linux

Agregue texto superpuesto a video usando PHP-FFMpeg

Recientemente aprendí a agregar una pista de audio al video usando PHP-FFMPeg. Ahora quería agregar texto superpuesto al video. La herramienta de línea de comandos FFmpeg acepta drawtext filtrar usando el libfreetype biblioteca. El truco es, todo lo que es posible en el FFmpeg la línea de comandos no es posible en PHP-FFMpeg , pero este es definitivamente posible. Veamos cómo hacerlo ahora.

Antes de eso, echa un vistazo a la imagen de abajo.

Nota

Debe tener FFMpeg instalado en su sistema y debería haber sido configurado con –enable-libfreetype

.

Paso 1:Cómo verificar FFMpeg configurado con la biblioteca libfreetype

#ffmpeg  -version | grep libfreetype
configuration: --prefix=/usr --extra-version='0york0~18.04.1' --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl --disable-stripping --enable-avresample --disable-filter=resample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librsvg --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opengl --enable-sdl2 --enable-nonfree --enable-libfdk-aac --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --enable-shared

Paso 2:Crear un filtro personalizado en PHP-FFMPeg

No pude encontrar ninguna implementación directa para agregar un texto superpuesto al video en PHP-FFMpeg o cualquier documentación relevante. Así que crearé un filtro personalizado para usar drawtext filtro en PHP-FFMPeg como se muestra a continuación:

$command = "text='$text': fontfile=OpenSans-Regular.ttf: fontcolor=red: fontsize=80: box=1: [email protected]: boxborderw=5: x=(w-text_w)/2: y=(h-text_h)/2:";
$video->filters()->custom("drawtext=$command");

Paso 3:Agregue texto superpuesto a video usando PHP-FFMPeg

A continuación se muestra el código completo para agregar un texto superpuesto al video. Asegúrate de que movie.mp4 y php-ffmpeg están disponibles en la ruta donde se encuentra este archivo.

<?php

require_once 'vendor/autoload.php';
$ffmpeg = FFMpeg\FFMpeg::create();
$format = new FFMpeg\Format\Video\X264();
$format->setAudioCodec("aac");
$videoFile='movie.mp4';
$captionStaticFilePath=$_SERVER['DOCUMENT_ROOT'].'/';
$outputFile='movie_output.mp4';
$text="Techglimpse.com";
$command = "text='$text': fontfile=OpenSans-Regular.ttf: fontcolor=red: fontsize=80: box=1: [email protected]: boxborderw=5: x=(w-text_w)/2: y=(h-text_h)/2:";

try{
        $video = $ffmpeg->open($captionStaticFilePath.$videoFile);
        $video->filters()->custom("drawtext=$command");
        $video->save($format, $captionStaticFilePath.$outputFile);
        die('done');
}catch(Exception $e){
        echo $e->getMessage();die;
}

?>

¿Me encanta? Déjame saber tus comentarios.


Linux
  1. Cómo escribir texto en la imagen usando el comando de Linux

  2. PHP-FFMPeg:Permitir múltiples archivos de entrada (Agregar audio al video)

  3. ¿Usando Uniq en texto Unicode?

  4. ¿Modificar un correo entrante de texto/sin formato a texto/html?

  5. ¿Cambiar a la consola de texto usando Ssh?

Cómo bloquear un archivo de texto en Linux usando el comando flock

Cómo agregar texto al comienzo del archivo en Linux

Cómo agregar un borde alrededor del texto en GIMP

Encuentra texto en archivos en Linux usando grep

Uso de los tutoriales en video de cPanel

Cómo eliminar el texto seleccionado en el editor vi