コマンド プロンプト ウィンドウのこのコマンドは正常に動作し、画面全体を記録します。
ffmpeg -f gdigrab -framerate 24 -i desktop -preset ultrafast -pix_fmt yuv420p out.mp4
このコマンド プロンプトは、画面の中央に白色の透かしテキストを追加します。
ffmpeg -f gdigrab -framerate 24 -i desktop -vf "drawtext=fontfile=path/to/arial.ttf:text='All rights reserved to ...':fontsize=24:fontcolor=white:x=(w-text_w)/2:y=(h-text_h)/2" -preset ultrafast -pix_fmt yuv420p out.mp4
問題は、透かしのテキストが白で、背景ウィンドウの色が黒のときだけ表示されることです。たとえば、ffmpeg コンソール ウィンドウを前面に表示したときなどです。
しかし、白い背景のウィンドウを記録する場合、テキストが白であるため見えません。
ffmpeg のコマンド プロンプトを更新して、背景ウィンドウが黒の場合は透かしのテキストを白で表示し、背景が白のウィンドウを表示する場合は透かしのテキストを自動的に黒に変更するようにして、何らかの形で動的にしたいと思います。
これは、ダイナミック効果のために試したコマンドですが、機能せず、エラーが発生しました。その後、コマンド ラインのさまざまなバージョンを試しましたが、何も役に立たず、機能しませんでした。
ffmpeg -f gdigrab -framerate 24 -i desktop -filter_complex "[0:v]drawtext=text='Watermark Text':x=(w-text_w)/2:y=(h-text_h)/2:fontfile=arial.ttf:fontsize=24,format=rgba [txt];[txt]split=2 [bw][wc];[bw]lut=r=val*2 [b];[wc]lut=r=val*0.5+0.5:g=val*0.5+0.5:b=val*0.5+0.5 [wc];[wc][b]alphamerge [wm];[wm][0:v]overlay=10:10[outv]" -c:v libx264 -preset ultrafast -map "[outv]" out.mp4
そしてこれも試してみた
ffmpeg -f gdigrab -framerate 24 -i desktop -filter_complex "[0:v]drawtext=text='Watermark Text':x=(w-text_w)/2:y=(h-text_h)/2:fontfile=Arial.ttf:fontsize=24,format=rgba [txt];[txt]split=2 [bw][wm];[bw][1:v]split=3 [b][g][r];[b]geq=r=0:g=0.5:b=0 [b];[g]geq=r=0:g=0:b=0.5 [g];[r]geq=r=0.5:g=0:b=0 [r];[wm][b][g][r]merge=3,format=rgba [watermark];[0:v][watermark]overlay=x=(W-w)/2:y=(H-h)/2" -map "[watermark]" -map 0:a? -c:v libx264 -c:a copy -preset ultrafast out.mp4