GNU/Linux >> Linux の 問題 >  >> Linux

PHP-FFMpegを使用してビデオにオーバーレイテキストを追加する

最近、PHP-FFMpegを使用して動画にオーディオトラックを追加する方法を学びました。次に、ビデオにオーバーレイテキストを追加したいと思いました。 FFmpegコマンドラインツールはdrawtextを受け入れます libfreetypeを使用してフィルタリングする 図書館。キャッチは、FFmpegで可能なすべてのものです PHP-FFMpegではコマンドラインを使用できません 、しかしこれは間違いなく可能です。今それを行う方法を見てみましょう。

その前に、下の画像をご覧ください。

ノート

システムにFFMpegがインストールされている必要があり、–enable-libfreetype

で構成されている必要があります。 。

ステップ1:libfreetypeライブラリで構成された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

ステップ2:PHP-FFMpegでカスタムフィルターを作成する

PHP-FFMpegまたは関連ドキュメントのビデオにオーバーレイテキストを追加するための直接的な実装は見つかりませんでした。そこで、drawtextを使用するカスタムフィルターを作成します 以下に示すように、PHP-FFMpegでフィルターします:

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

ステップ3:PHP-FFMpegを使用してビデオにオーバーレイテキストを追加する

以下は、ビデオにオーバーレイテキストを追加する完全なコードです。 movie.mp4を確認してください およびphp-ffmpeg このファイルが配置されているパスで使用できます。

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

?>

大好きです?コメントを教えてください。


Linux
  1. Linuxコマンドを使用して画像にテキストを書き込む方法

  2. PHP-FFMpeg:複数の入力ファイルを許可する(ビデオにオーディオを追加する)

  3. UnicodeテキストでUniqを使用していますか?

  1. 着信メールをText/plainからText/htmlに変更しますか?

  2. Sshを使用してテキストコンソールに変更しますか?

  3. netplanを使用してUbuntu18.04にIPアドレスを追加するにはどうすればよいですか?

  1. LinuxでAsciiDocを使用するための完全ガイド

  2. コマンドを使用してUbuntuにIPアドレスを追加するにはどうすればよいですか?

  3. sed を使用してテキスト ブロックを削除する