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.