GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Fügen Sie mit PHP-FFMpeg Overlay-Text zum Video hinzu

Ich habe kürzlich gelernt, wie man mit PHP-FFMpeg eine Audiospur zum Video hinzufügt. Jetzt wollte ich Overlay-Text zum Video hinzufügen. Das FFmpeg-Befehlszeilentool akzeptiert drawtext filtern Sie mit dem libfreetype Bücherei. Der Haken an der Sache ist, alles was im FFmpeg möglich ist Kommandozeile ist in PHP-FFMpeg nicht möglich , aber dieser ist definitiv möglich. Mal sehen, wie das jetzt geht.

Sehen Sie sich vorher das Bild unten an.

Notiz

Sie müssen FFMpeg auf Ihrem System installiert haben und sollten mit –enable-libfreetype

konfiguriert worden sein .

Schritt 1:So überprüfen Sie mit der libfreetype-Bibliothek konfiguriertes FFMpeg

#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

Schritt 2:Erstellen Sie einen benutzerdefinierten Filter in PHP-FFMpeg

Ich konnte keine direkte Implementierung zum Hinzufügen eines Overlay-Textes zum Video in PHP-FFMpeg oder einer relevanten Dokumentation finden. Also werde ich einen benutzerdefinierten Filter erstellen, um drawtext zu verwenden filtern Sie in PHP-FFMpeg wie unten gezeigt:

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

Schritt 3:Overlay-Text mit PHP-FFMpeg zum Video hinzufügen

Unten ist der vollständige Code zum Hinzufügen eines Overlay-Textes zum Video. Stellen Sie sicher, dass movie.mp4 und php-ffmpeg sind in dem Pfad verfügbar, in dem sich diese Datei befindet.

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

?>

Liebe es? Lassen Sie mich Ihre Kommentare wissen.


Linux
  1. Vollständiges Handbuch zur Verwendung von AsciiDoc unter Linux

  2. So schreiben Sie mit dem Linux-Befehl Text auf ein Bild

  3. Uniq für Unicode-Text verwenden?

  4. Eine eingehende Mail von Text/plain zu Text/html ändern?

  5. Mit ssh zur Textkonsole wechseln?

So sperren Sie eine Textdatei in Linux mit dem Befehl flock

So fügen Sie Text am Anfang einer Datei in Linux hinzu

So fügen Sie in GIMP einen Rahmen um Text hinzu

Finden Sie Text in Dateien unter Linux mit grep

Verwendung der cPanel-Video-Tutorials

So löschen Sie ausgewählten Text im vi-Editor