アルファ透明度のあるwebmビデオからマスクを抽出しようとしています。
ffmpeg -i test.webm -vf "alphaextract" -y output.mp4
しかし、エラーが発生します:
[Parsed_alphaextract_2 @ 0x7f924b700d00] Requested planes not available.
[Parsed_alphaextract_2 @ 0x7f924b700d00] Failed to configure input pad on Parsed_alphaextract_2
私は何か間違ったことをしていますか? documentation foralphaextractは驚くほどまばらです。
これがffprobeの読み出しです:
ffprobe version 2.8.6 Copyright (c) 2007-2016 the FFmpeg developers
built with Apple LLVM version 7.0.2 (clang-700.1.81)
configuration: --prefix=/usr/local/Cellar/ffmpeg/2.8.6 --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-libvo-aacenc --enable-libxvid --enable-libvpx --enable-libopus --enable-vda
libavutil 54. 31.100 / 54. 31.100
libavcodec 56. 60.100 / 56. 60.100
libavformat 56. 40.101 / 56. 40.101
libavdevice 56. 4.100 / 56. 4.100
libavfilter 5. 40.101 / 5. 40.101
libavresample 2. 1. 0 / 2. 1. 0
libswscale 3. 1.101 / 3. 1.101
libswresample 1. 2.101 / 1. 2.101
libpostproc 53. 3.100 / 53. 3.100
Input #0, matroska,webm, from 'test.webm':
Metadata:
encoder : Lavf56.40.101
Duration: 00:00:05.00, start: 0.000000, bitrate: 407 kb/s
Stream #0:0: Video: vp8, yuv420p, 480x244, SAR 1:1 DAR 120:61, 24 fps, 24 tbr, 1k tbn, 1k tbc (default)
Metadata:
alpha_mode : 1
現時点では、ffmpegのVP8デコーダーはいずれもVP8ビデオストリームのアルファをデコードできないようです。 ffmpeg-userメーリングリストからのこの post は、アルファがストリーム内で stored であるという珍しい方法によるものであることを示唆しています。
一見の価値があるかもしれません webm-tools 。
2016-07-20以降、アルファチャネル(VP8aまたはVP9a)を使用してWebMを適切にデコードすることは可能ですが、-vcodec libvpx
オプションが必要です。その日付以降にコンパイルされたFFmpegをダウンロードして(または最新のコミットで自分でコンパイルして)、次のコマンドを使用する必要があります。
ffmpeg -vcodec libvpx -i test.webm -vf alphaextract -y output.mp4
-vcodec libvpx
は前入力であり、後ではないことに注意してください。