5

コマンドを使用して、2 つのビデオをマージしようとしています。どちらも透過性があります。

ffmpeg.exe -i person2.mov -vf "[in] scale=iw/2:ih/2,fade=out:300:30:alpha=1, pad=2*iw:ih [左]; movie=person2 .mov, scale=iw/2:ih/2,fade=out:300:30:alpha=1 [右]; [左][右] overlay=main_w/3:0,fade=out:300:30: alpha=1 [out]" -b:v 768k Output_people.mov

そうすることで、次の出力が得られます。

http://i263.photobucket.com/albums/ii122/Fernando461/Untitled.png

ご覧のとおり、2 つのビデオを重ね合わせることができました。しかし、このビデオ (Output_people.mov) を別のビデオとマージしようとすると、透明度が同じではありません。結果の透明性を保つことは可能ですか?

編集1:

これは私が得る出力です: https://www.dropbox.com/s/gpid1pptfio31gd/ffmpeg-20130701-193206.log

また、「透明度が同じではありません」とは、背景が透明ではなく黒であることを意味していたので、1 つのビデオを重ねると、後ろのビデオが黒い部分で覆われてしまいます。前に。

編集 2: コードに -vcodec qtrle を追加すると機能しました。ありがとうmark4o!

4

1 に答える 1

7

出力用のビデオ コーデックを指定しなかったため、.movファイルのデフォルトのビデオ コーデックである H.264 (libx264エンコーダー) が使用されます。ただし、H.264 はアルファ チャネルをサポートしていません。出力ビデオに透過性が必要な場合は、入力に使用されるものなど、アルファ チャネルをサポートする出力ビデオ コーデックを指定する必要があります。つまり、QuickTime アニメーション RLE ( qtrle) です。これを行う-c:v qtrleには、出力ファイル名の前にオプションを追加します。.movアルファ チャネルをサポートし、ファイルに保存できる別のコーデックはpng.

ffmpegでサポートされているエンコーダーのリストを確認できますffmpeg -encoders。のようなコマンドffmpeg -h encoder=qtrleは、サポートされているピクセル形式を含む、そのエンコーダーに固有の情報を一覧表示します。argbrgbaabgrbgragbra、またはyuvaアルファ チャネルを持つ文字列を含むピクセル形式。

于 2013-07-03T16:39:30.403 に答える