5

私はFFmpeg でdrawtextdrawbox avfilters を使用しています。

単一のフレーム、つまりフレーム 22 の drawtext だけでそれらを使用できるかどうか、またどのように使用できるかを理解するのに苦労しています。

現在のコマンド:

ffmpeg -i test.wmv -y -b 800k -f flv -vcodec libx264 -vpre default -s 768x432 \
  -g 250 -vf drawtext="fontfile=/home/Cyberbit.ttf:fontsize=24:text=testical:\
  fontcolor=green:x=100:y=200" -qscale 8 -acodec libfaac -sn -vstats out.flv

ドキュメントに記載されている 2 つの要素はntです。ただし、xとyでしか使用できないようです。テキストではなく、他のパラメーターとしても。

ヘルプや FFmpeg のガイダンスをいただければ幸いです。

4

1 に答える 1

3

FFmpeg が常に注意を払っているという素晴らしい例では、これを行うのは些細なことでdrawtextあり、非常に苦痛drawboxです。

重要なのは、パラメーターがdrawtext含まれていることです。draw

draw
テキストを描画するかどうかを指定する式を設定します。式が 0 に評価される場合、テキストは描画されません。これは、特定の条件が満たされた場合にのみテキストを描画するように指定する場合に役立ちます。

したがって、フレーム 22 にテキストのみを表示するには:

ffmpeg -i in.wmv -vf drawtext="fontfile=font.ttf:text='blah':draw='eq(n,22)'" out.flv

drawboxパラメータがなくdraw、それをエミュレートする一般的な方法がないため、ボックスを配置するビデオの部分を抽出し、オフセットでオーバーレイするなどの操作を行う必要があります。

ffmpeg -i in.wmv -t 1 -ss 10 -vf drawbox=10:10:20:20:red boxed.flv
ffmpeg -i in.wmv -itsoffset 10 -i boxed.flv -filter_complex overlay out.flv

(これにより、最後のフレームがboxed.flv永遠に表示されたままになります)、またはビデオを複数の部分に分割し、適切な部分に描画してから再結合します。

于 2012-08-03T23:47:06.553 に答える