Baru-baru ini saya mempelajari cara menambahkan trek audio ke video menggunakan PHP-FFMpeg. Sekarang saya ingin menambahkan teks overlay ke video. Alat baris perintah FFmpeg menerima drawtext filter menggunakan libfreetype Perpustakaan. Tangkapannya adalah, semua yang mungkin ada di FFmpeg baris perintah tidak dimungkinkan di PHP-FFMpeg , tapi yang ini pasti mungkin. Mari kita lihat bagaimana melakukannya sekarang.
Sebelum itu, lihatlah gambar di bawah ini.
Catatan
Anda harus menginstal FFMpeg di sistem Anda dan seharusnya sudah dikonfigurasi dengan –enable-libfreetype
.Langkah 1:Cara memverifikasi FFMpeg yang dikonfigurasi dengan libfreetype library
#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
Langkah 2:Buat filter khusus di PHP-FFMpeg
Saya tidak dapat menemukan implementasi langsung untuk menambahkan teks overlay ke video di PHP-FFMpeg atau dokumentasi yang relevan. Jadi saya akan membuat filter khusus untuk menggunakan drawtext filter di PHP-FFMpeg seperti yang ditunjukkan di bawah ini:
$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");
Langkah 3:Tambahkan teks overlay ke video menggunakan PHP-FFMpeg
Di bawah ini adalah kode lengkap untuk menambahkan teks overlay ke video. Pastikan movie.mp4 dan php-ffmpeg tersedia di jalur tempat file ini berada.
<?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;
}
?> Suka? Beri tahu saya komentar Anda.