Извлечение альфа-канала из веб-видео

1921
Andy E

Я пытаюсь извлечь маску из веб-видео с альфа-прозрачностью:

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 

Я делаю что-то неправильно? Документация для alphaextract удивительно мало.

Вот показание 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 
1
Пожалуйста, вставьте считывание ffprobe для файла. Gyan 8 лет назад 0
Готово. Также стоит упомянуть, что я создал этот webm из mp4 и маски, сейчас я пытаюсь понять, как сделать наоборот. Andy E 8 лет назад 0
Я сам сделал несколько VP8 с альфа-версией, и альфа, кажется, не хранится традиционно, то есть как вспомогательная плоскость. Дай мне проверить. Gyan 8 лет назад 0
[Кажется] (https://ffmpeg.org/pipermail/ffmpeg-user/2014-January/019283.html) невозможно с ffmpeg. Gyan 8 лет назад 0
Блин, это позор. Спасибо @Mulvya, пожалуйста, не стесняйтесь опубликовать ответ, объясняющий это. Andy E 8 лет назад 0

2 ответа на вопрос

3
cdlvcdlv

Начиная с 2016-07-20, можно правильно декодировать webm с альфа-каналом (VP8a или VP9a), но вам нужна -vcodec libvpxопция. Вы должны загрузить FFmpeg, скомпилированный после этой даты (или скомпилировать себя с последними коммитами) и использовать следующую команду:

ffmpeg -vcodec libvpx -i test.webm -vf alphaextract -y output.mp4

Обратите внимание, что -vcodec libvpxэто перед тем входом, а не после него.

2
Gyan

В настоящее время ни один из декодеров VP8 ffmpeg, похоже, не способен декодировать альфа в видеопотоках VP8. Это сообщение из списка рассылки ffmpeg-user предполагает, что это связано с необычным способом, которым альфа хранится в потоке.

Может стоит посмотреть на webm-tools .

Похожие вопросы