GNU/Linux >> Linux Esercitazione >  >> Linux

Aggiungi testo sovrapposto al video usando PHP-FFMpeg

Di recente ho imparato come aggiungere una traccia audio al video utilizzando PHP-FFMpeg. Ora volevo aggiungere del testo in sovrimpressione al video. Lo strumento da riga di comando FFmpeg accetta drawtext filtra usando il libfreetype biblioteca. Il problema è che tutto ciò che è possibile nel FFmpeg la riga di comando non è possibile in PHP-FFMpeg , ma questo è sicuramente possibile. Vediamo come farlo ora.

Prima di ciò, dai un'occhiata all'immagine qui sotto.

Nota

Devi avere FFMpeg installato sul tuo sistema e dovrebbe essere stato configurato con –enable-libfreetype

.

Fase 1:Come verificare FFMpeg configurato con la libreria 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

Fase 2:crea un filtro personalizzato in PHP-FFMpeg

Non sono riuscito a trovare alcuna implementazione diretta per l'aggiunta di un testo sovrapposto al video in PHP-FFMpeg o qualsiasi documentazione pertinente. Quindi creerò un filtro personalizzato per utilizzare drawtext filtro in PHP-FFMpeg come mostrato di seguito:

$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");

Fase 3:aggiungi testo in sovrimpressione al video usando PHP-FFMpeg

Di seguito è riportato il codice completo per aggiungere un testo in sovrimpressione al video. Assicurati che il movie.mp4 e php-ffmpeg sono disponibili nel percorso in cui si trova questo file.

<?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;
}

?>

Lo adoro? Fatemi sapere i vostri commenti.


Linux
  1. Come scrivere testo sull'immagine usando il comando Linux

  2. PHP-FFMpeg:Consenti più file di input (aggiungi audio al video)

  3. Utilizzo di Uniq su testo Unicode?

  4. Modificare una posta in arrivo da testo/normale a testo/html?

  5. Come aggiungere l'indirizzo IP su Ubuntu 18.04 usando netplan?

Come bloccare un file di testo in Linux usando il comando flock

Come aggiungere testo all'inizio del file in Linux

Come aggiungere un bordo attorno al testo in GIMP

Trova testo nei file su Linux usando grep

Utilizzo dei video tutorial di cPanel

Come eliminare il testo selezionato nell'editor vi