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.