2017-04-30 3 views
0

私はdrawtextを使ってアニメーションGIFのテキストを印刷しています。FFMpegの描画幅?

すべて動作していますが、境界ボックスを指定してテキストを折り返すことができません。

私は現在、これを使用しています:

ffmpeg -i image.gif -filter_complex "drawtext=textfile=text.txt:x=main_w/2 - text_w/2:y=main_h/2 - text_h/2:fontfile=Roboto-Regular.ttf:fontsize=24:fontcolor=000000" image_out.gif 

は、テキストをラップする方法はありますか?

+0

代わりに字幕を使用します。このサイトの[examples](http://stackoverflow.com/a/21369850/1109017)または[documentation](https://ffmpeg.org/ffmpeg-filters.html#subtitles)と[FFmpeg wiki]を参照してください。 (https://trac.ffmpeg.org/wiki/HowToBurnSubtitlesIntoVideo)。 drawtextを使わなければならない場合は、 'text.txt'に改行を加えてください。 – LordNeckbeard

+0

私は参照してください。しかし、私はテキストラップを持つことができますか?テキストの代わりに字幕を使用すると、ドキュメントをすばやく調べることができません。 – nbrogi

+0

はい、字幕は自動的にテキストをラップします。 – LordNeckbeard

答えて

2

FFmpeg subtitles filterを自動折り返しと中央の中央に配置することができます。

多くの字幕フォーマットがありますが、この回答にはASSとSRT字幕の例があります。 ASSはより多くの書式設定オプションをサポートしていますが、SRTはシンプルな形式であり、字幕フィルタのforce_styleオプションで変更できます。

enter image description here

ASSは

Aegisubであなたの字幕を作る字幕。ピンクの「S」のようなボタンをクリックして、スタイルマネージャを開きます。編集をクリックします。アラインメント値を選択します。5.字幕ファイルをASS形式で保存します。

ffmpeg例:

ffmpeg -i input -filter_complex subtitles=subs.srt -c:a copy output 

SRT字幕

SRTがASSよりも簡単ですが、あなたは字幕フィルターでforce_styleオプションを使用する必要がありますので、機能を欠いています。これらの字幕はテキストエディタで作成できます。例SRTファイル:

1 
00:00:00,000 --> 00:00:05,000 
Text with 
manual line break 
and with automatic word wrapping of long lines. 

2 
00:00:07,000 --> 00:00:10,000 
Another line. Displays during 7-10 seconds. 

ffmpeg例:もっとforce_styleオプションについて

ffmpeg -i input -filter_complex "subtitles=subs.srt:force_style='Alignment=10,Fontsize=24'" -c:a copy output 
  • がASSファイルの内容でStylesセクションを見て、ASS Tagsを参照してください。

  • この場合、Alignmentlegacy line position numbersを使用していますが、上記のASSの例では最新の「数字パッド」番号システムを使用しています。

+0

ありがとう。私は、ASS形式でUTF-8サポートがあったことを望みますが、うまくいきます。 – nbrogi

+0

...フォントディレクトリを指定する方法があれば知っていますか? – nbrogi

+0

@nbrogi 'force_style'では' Fontname = Arial'のようなものを使うことができますし、SRTでは ' Foo'(未テスト)の を使うか、 Aegisubのフォント。 – LordNeckbeard

関連する問題