透明なビデオをMP4にオーバーレイするにはどうすればよいですか?


2

electron-recorderスマートフォンからMP4ビデオにオーバーレイする必要がある、わずかに変更したバージョンを使用して生成した透明なwebmビデオがあります。overlayフィルターを使用してみましたが、オーバーレイでは常に透明ではなく黒い背景が表示されます。オーバーレイの背景は透明であると確信しています。ウェブページで再生でき、背景が透けて見えます。

これを機能させるにはどのコマンドが必要ですか?

これは、webm透明なPNGから生成するために使用したコマンドです(electron-recorderテスト用に抽出および変更)。cat *.png | ffmpeg -y -f image2pipe -r 30 -i - -c:v libvpx -pix_fmt yuva420p -metadata:s:v:0 alpha_mode="1" output.webm

出力はffprobe overlay.webm次のとおりです。

ffprobe version 3.0.2 Copyright (c) 2007-2016 the FFmpeg developers
  built with Apple LLVM version 8.0.0 (clang-800.0.42.1)
  configuration: --prefix=/usr/local/Cellar/ffmpeg/3.0.2 --enable-shared --enable-pthreads --enable-gpl --enable-version3 --enable-hardcoded-tables --enable-avresample --cc=clang --host-cflags= --host-ldflags= --enable-opencl --enable-libx264 --enable-libmp3lame --enable-libxvid --enable-libfreetype --enable-libvorbis --enable-libvpx --enable-libfaac --enable-libass --enable-ffplay --enable-libfdk-aac --enable-libopus --enable-libx265 --disable-lzma --enable-nonfree --enable-vda
  libavutil      55. 17.103 / 55. 17.103
  libavcodec     57. 24.102 / 57. 24.102
  libavformat    57. 25.100 / 57. 25.100
  libavdevice    57.  0.101 / 57.  0.101
  libavfilter     6. 31.100 /  6. 31.100
  libavresample   3.  0.  0 /  3.  0.  0
  libswscale      4.  0.100 /  4.  0.100
  libswresample   2.  0.101 /  2.  0.101
  libpostproc    54.  0.100 / 54.  0.100
Input #0, matroska,webm, from 'overlay.webm':
  Metadata:
    encoder         : Lavf57.25.100
  Duration: 00:00:01.77, start: 0.000000, bitrate: 152 kb/s
    Stream #0:0: Video: vp8, yuv420p, 720x720, SAR 1:1 DAR 1:1, 30 fps, 30 tbr, 1k tbn, 1k tbc (default)
    Metadata:
      alpha_mode      : 1

オーバーレイにアルファチャネルがあることを確認します。Webページでは、バックグラウンドが何らかの方法でキーアウトされているか、アルファのサイドストリーム方式を使用している場合があります。つまり、ビデオは2倍のサイズで、半分はアルファです。を実行しますffplay in.webm -vf alphaextract。完全な白の出力が表示されるか、エラーがある場合、透明度はありません。
ギャン

面白い。私はこれを得ます:[Parsed_alphaextract_0 @ 0x7fc6afd22d20]要求された飛行機は利用できません。[Parsed_alphaextract_0 @ 0x7fc6afd22d20] Parsed_alphaextract_0の入力パッドの構成に失敗しました
最大シュメリング

したがって、アルファ版はありません。読み出しを貼り付けffprobe in.webm、あなたQ.へ
ギャン

その出力と、オーバーレイの生成に使用したコマンドを貼り付けました。
マックスシュメリング

おっと、私はFFmpegが最近までVP8のアルファチャンネルをデコードできなかったことを忘れていました。16年7月よりも新しいffmpegビルドにアップグレードする必要があります。ここから入手してください
ギャン

回答:


3

最近まで、FFmpegはVP8 / 9ストリームのアルファプレーンをアルファ付きでデコードできませんでした。まだできません。

ただし、libvpxコンパイル済みのFFmpegの最近のビルド(> 7月16日)がある場合は、次を使用できます。

ffmpeg -i base.mp4 -c:v libvpx -i overlay.webm -filter_complex overlay output.mp4

3

あなたはこれをしたい場合は、今、あなたはおそらく追加の小さな変更で受け入れ答えが必要になります-vp9にはlibvpx

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