46

Windows 用の ffmpeg を使用して、ビデオ ファイルの各フレームにフレーム番号をオーバーレイする必要があります。

drawtextこのコードを使用して、フィルターでタイムコード スタンプをオーバーレイすることに成功しました。

ffmpeg -i video.mov -vcodec r210 -vf "drawtext=fontfile=Arial.ttf: timecode='01\:00\:00\:00': r=25: x=(w-tw)/2: y=h-(2*lh): fontcolor=white: box=1: boxcolor=0x00000099" -y output.mov

ただし、タイムコードではなくフレーム番号のオーバーレイが必要です。どんな助けでも大歓迎です。

4

1 に答える 1

67

または関数でdrawtext フィルターを使用できます。nframe_num

ここに画像の説明を入力
ループ 5 fps の例

コマンド例:

ffmpeg -i input -vf "drawtext=fontfile=Arial.ttf: text='%{frame_num}': start_number=1: x=(w-tw)/2: y=h-(2*lh): fontcolor=black: fontsize=20: box=1: boxcolor=white: boxborderw=5" -c:a copy output
  • などのフォント ファイルへのフル パスを指定する必要がある場合がありますfontfile=/usr/share/fonts/TTF/Vera.ttf
  • n/は 0 から始まりますが、例に示すようにオプションをframe_num使用してフレーム カウントを 1 から開始することができます。start_number

必要に応じてテキストを追加できますが、一部の特殊文字をエスケープする必要があることに注意してください。

text='Frame\: %{frame_num}'

ここに画像の説明を入力

詳細については、drawtext フィルターのドキュメントを参照してください。

于 2013-03-12T19:04:32.520 に答える