FFmpegは、フィルターされたバージョンの上に1つのビデオを配置します[複製]


0

この質問にはすでに答えがあります:

2つのビデオを組み合わせて作成しようとしています。最初のビデオは変更されていない私の入力ですが、2番目のビデオ(最初のビデオの下に配置された)は最初のビデオのフィルターバージョンです。最初のビデオを好きなようにフィルタリングすることはできますが、2つのバージョンの出力を希望どおりに組み合わせるのは困難です。

この他の質問に続いても私を助けません:

両側に異なるフィルターを使用したビデオのアップスケーリング

私が使用しているコマンドは次のとおりです。

ffmpeg -i ./media/video/video_with_alpha.mov \
-c:v libx264 -b:v 400k -tune zerolatency -profile:v baseline -level 3.0 -movflags +faststart -c:a libfdk_aac -b:a 64k \
-filter_complex \
    "[0:v] fifo, lutrgb=r=maxval:g=maxval:b=maxval [T1]; \
     [0:v] format=rgba, fifo, lutrgb=r=minval:g=minval:b=minval [T2]; \
     [T2][T1] overlay [out_alpha]; \
     [0:v][out_alpha] overlay=0:360[out]" \
-map '[out]' -map 0:a ./media/output/video_rgb_above_alfa.mp4

私が得る結果は、次のように2つのビデオが互いに重なり合っていることです。 ここに画像の説明を入力してください

私が欲しいのはこのようなものです: ここに画像の説明を入力してください

誰かが私が間違っていることを知っていますか?

前もって感謝します!


なぜ-b:v 400k -tune zerolatency使用しているのfifoですか?
-llogan

1
リンクの質問は、更新の答えを持っているので、あなたの質問が重複して考えることができます。
-llogan

回答:


0

あなたの答えをありがとうございますが、私はこのコマンドで私の解決策を見つけました:

ffmpeg -i ./media/video/video_walpha.mov \
-filter_complex "[0:v] fifo, lutrgb=r=maxval:g=maxval:b=maxval [1]; \
[0:v] format=rgba, fifo, lutrgb=r=minval:g=minval:b=minval [2]; \
[2][1] overlay [alpha]; \
[0:v]pad=iw:ih*2[stage]; \
[stage][alpha] overlay=0:h [merge]; \
[merge] scale=1280:-1 [out]" \
-map '[out]' -map 0:a \
-c:v libx264 -b:v 400k -tune zerolatency -profile:v baseline -level 3.0 -movflags +faststart -c:a libfdk_aac -b:a 64k \
./media/output/video_mobile_rgb_alfa.mp4

欠けていたのは、実際には「パッド」フィルターでした。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.