GNU/Linux >> Tutoriels Linux >  >> Linux

Ajouter du texte superposé à la vidéo à l'aide de PHP-FFMPeg

J'ai récemment appris comment ajouter une piste audio à la vidéo à l'aide de PHP-FFMPeg. Maintenant, je voulais ajouter du texte superposé à la vidéo. L'outil de ligne de commande FFmpeg accepte drawtext filtrer en utilisant le libfreetype bibliothèque. Le hic, c'est que tout ce qui est possible dans le FFmpeg la ligne de commande n'est pas possible dans PHP-FFMpeg , mais celui-ci est tout à fait possible. Voyons maintenant comment procéder.

Avant cela, regardez l'image ci-dessous.

Noter

Vous devez avoir FFMpeg installé sur votre système et avoir été configuré avec –enable-libfreetype

.

Étape 1 :Comment vérifier FFMpeg configuré avec la bibliothèque 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

Étape 2 :Créer un filtre personnalisé dans PHP-FFMPeg

Je n'ai trouvé aucune implémentation directe pour ajouter un texte de superposition à la vidéo dans PHP-FFMPeg ou toute documentation pertinente. Je vais donc créer un filtre personnalisé pour utiliser drawtext filtrez en PHP-FFMPeg comme indiqué ci-dessous :

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

Étape 3 :Ajoutez du texte superposé à la vidéo à l'aide de PHP-FFMPeg

Vous trouverez ci-dessous le code complet d'ajout d'un texte superposé à la vidéo. Assurez-vous que le movie.mp4 et php-ffmpeg sont disponibles dans le chemin où se trouve ce fichier.

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

?>

Aimer? Faites-moi part de vos commentaires.


Linux
  1. PHP-FFMpeg :Autoriser plusieurs fichiers d'entrée (Ajouter de l'audio à la vidéo)

  2. Utiliser Uniq sur le texte Unicode ?

  3. Modifier un courrier entrant de Text/plain à Text/html ?

  4. Passer à la console texte à l'aide de Ssh ?

  5. Utiliser sed pour supprimer un bloc de texte

Comment verrouiller un fichier texte sous Linux à l'aide de la commande flock

Comment ajouter du texte au début du fichier sous Linux

Comment ajouter une bordure autour du texte dans GIMP

Rechercher du texte dans des fichiers sous Linux à l'aide de grep

Utilisation des didacticiels vidéo cPanel

Comment supprimer le texte sélectionné dans l'éditeur vi