2

1 つのビデオに多重化し、各象限の左上にテキストを配置したい 4 つのビデオがあります。vid1 が左上、vid2 が右上、vid3 が左下、vid4 が右下になるように、ビデオを正常に多重化できます。

ただし、drawtext コマンドを使用して単純なテキストを表示することさえできません。

各象限に元のビデオファイルの名前を入れたいと思います。

現時点で私のコマンドは次のとおりです。

ffmpeg.exe -i "vid1.mp4" -i "vid2.mp4" -i "vid3.mp4" -i "vid4.mp4"  -filter_complex "[0:0]scale=iw/2:ih/2,pad=iw*2:ih*2[a];[1:0]scale=iw/2:ih/2[b];[2:0]scale=iw/2:ih/2[c];[3:0]scale=iw/2:ih/2[d];[a][b]overlay=w[x];[x][c]overlay=0:h[y];[y][d]overlay=w:h" -vf [0]drawtext=fontsize=12:fontcolor=white:fontfile="/Windows/Fonts/arial.ttf":text="vid1":x=35:y=35[out] "4UP_Video.mov"

drawtext コマンドを削除すると、同じ結果が得られます。4 アップ ビデオはきれいですが、テキストはありません。私の仮定は、他の象限については、入力ストリーム # を使用して別の drawtext コマンドを追加することです。

[1]drawtext ...

どんな助けでも大歓迎です!

4

1 に答える 1

1

drawtext新しいフィルタを作成する代わりに、現在のフィルタ チェーンにフィルタを追加します。

ffmpeg.exe -i vid1.mp4 -i vid2.mp4 -i vid3.mp4 -i vid4.mp4 -filter_complex "[0:0]scale=iw/2:ih/2,pad=iw*2:ih*2[a];[1:0]scale=iw/2:ih/2[b];[2:0]scale=iw/2:ih/2[c];[3:0]scale=iw/2:ih/2[d];[a][b]overlay=w[x];[x][c]overlay=0:h[y];[y][d]overlay=w:h,drawtext=fontsize=12:fontcolor=white:fontfile=/Windows/Fonts/arial.ttf:text='vid1':x=35:y=35,drawtext=fontsize=12:fontcolor=white:fontfile=/Windows/Fonts/arial.ttf:text='vid2':x=(w/2)+35:y=35,drawtext=fontsize=12:fontcolor=white:fontfile=/Windows/Fonts/arial.ttf:text='vid3':x=35:y=(h/2)+35,drawtext=fontsize=12:fontcolor=white:fontfile=/Windows/Fonts/arial.ttf:text='vid4':x=(w/2)+35:y=(h/2)+35" 4UP_Video.mov

今後の ffmpeg の使用に関する質問は、superuser.com でお尋ねください。スタック オーバーフローは、プログラミングのみに制限されています。

于 2012-12-11T19:34:13.480 に答える