ffmpeg drawtextフィルター-テキストで透明な背景を作成します


11

現在、drawtextフィルターを使用しています。これまでのところdrawtext、適切なフォントを使用してテキストを水平方向の中央に配置するオプション構成でのみ成功しています。drawtext以下に示すように、ビデオにテキストを表示するにはどうすればよいですか?

ffmpeg

ffmpeg -i "/media/test/test.mp4" -vf drawtext="fontfile=/usr/share/fonts/truetype/open-sans/OpenSans-Regular.ttf:text='Title of this Video':x=(w-tw)/2:y=(h-th)/2"  /media/test_edited.mp4"

回答:


21

drawboxボックスとdrawtextテキストに使用します。

赤いカブトムシ

ffmpeg -i input.mp4 -vf \
"format=yuv444p, \
 drawbox=y=ih/PHI:color=black@0.4:width=iw:height=48:t=fill, \
 drawtext=fontfile=OpenSans-Regular.ttf:text='Title of this Video':fontcolor=white:fontsize=24:x=(w-tw)/2:y=(h/PHI)+th, \
 format=yuv420p" \
-c:v libx264 -c:a copy -movflags +faststart output.mp4
  • drawtextboxオプションがありますが、私が知る限り、任意の幅にすることはできず、テキストサイズに関連するため、drawbox代わりにが使用されます。

  • formatフィルタの色改善するために使用されるdrawbox領域を、そうしないと、入力形式と出力形式に応じて、領域が彩度が低くなったり、モノクロになったりします。次に、formatフィルターを再度使用して、出力ファイルのピクセル形式がすべてのプレーヤーと互換性があることを確認します。

  • この例では、オーディオを不必要に再エンコードしたくない場合があるため、オーディオをストリームコピーしています。

  • 古いffmpegユーザーはのt=max代わりに使用する必要がありますt=fill


これは現在の質問の範囲外であり、新しい質問を作成する必要があるかもしれません。snapchatタイマーを追加する方法の提案。たとえば、私はいくつかのテストを行い、ffmpegにはタイマーを含むtestrcビデオソースが含まれています:ffplay -f lavfi -i testsrc。初期タイマーの数字0のサイズは29x52ピクセルで、左上隅からの位置は水平256ピクセル、垂直94ピクセルです。私はこのように1桁の領域をトリミングできますffmpeg -f lavfi -i testsrc -vf crop=29:52:256:94 -t 10 timer1.mp4
Code_Ed_Student

質問にタイマー付きの画像を追加しました。タイマーは、動画の長さに基づくカウントダウンです。
Code_Ed_Student 2015年

はい、新しい質問を作成します。あなたは正しいです。30. 29, 28...など
Code_Ed_Student


1
すばらしい、あなたは正しい、それは箱に影響を与えました
Code_Ed_Student

1

ffmpeg -i C:\ Users \ Developer_2 \ Videos \ 2.mkv -vf drawtext = "fontfile = C \:/ Regular.ttf:text = 'apcis.tmou.org':fontcolor = white:fontsize = 24:box = 1:boxcolor=black@0.4:x = w-tw:y = h-th "C:\ inetpub \ wwwroot \ videos \ 1.mp4


これは私にとってはうまくいきましたが、boxcolor
white @ 0.9
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.