Extrahieren Sie den Alphakanal aus dem Webm-Video

2020
Andy E

Ich versuche, eine Maske aus einem Webm-Video mit Alpha-Transparenz zu extrahieren:

ffmpeg -i test.webm -vf "alphaextract" -y output.mp4 

Aber ich bekomme einen Fehler:

[Parsed_alphaextract_2 @ 0x7f924b700d00] Requested planes not available. [Parsed_alphaextract_2 @ 0x7f924b700d00] Failed to configure input pad on Parsed_alphaextract_2 

Mache ich etwas falsch? Die Dokumentation für alphaextract ist überraschend spärlich.

Hier ist die ffprobe- Anzeige:

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
Bitte fügen Sie das Ergebnis von ffprobe für die Datei ein. Gyan vor 8 Jahren 0
Erledigt. Es ist auch erwähnenswert, dass ich diesen Webm aus einem mp4 und einer Maske erstellt habe. Ich versuche jetzt herauszufinden, wie man das Gegenteil macht. Andy E vor 8 Jahren 0
Ich habe selbst ein paar VP8 mit Alpha gemacht, und das Alpha scheint nicht traditionell gespeichert zu sein, dh als zusätzliche Ebene. Lass mich das überprüfen. Gyan vor 8 Jahren 0
[Scheint] (https://ffmpeg.org/pipermail/ffmpeg-user/2014-January/019283.html) mit ffmpeg nicht möglich. Gyan vor 8 Jahren 0
Verdammt, das ist eine Schande. Vielen Dank @ Mulvya, bitte zögern Sie nicht, eine Antwort zu posten, die dies erklärt. Andy E vor 8 Jahren 0

2 Antworten auf die Frage

3
cdlvcdlv

Seit dem 20.07.2016 ist es möglich, einen Webm mit Alphakanal (VP8a oder VP9a) ordnungsgemäß zu decodieren, aber Sie benötigen eine -vcodec libvpxOption. Sie müssen ein nach diesem Datum kompiliertes FFmpeg herunterladen (oder sich selbst mit aktuellen Commits kompilieren) und den folgenden Befehl verwenden:

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

Beachten Sie, dass -vcodec libvpxist vor dem Eingang, nicht danach.

2
Gyan

Zu diesem Zeitpunkt scheint keiner der VP8-Decoder von ffmpeg in der Lage zu sein, Alpha in VP8-Videoströmen zu decodieren. Dieser Post aus der ffmpeg-Benutzer-Mailingliste legt nahe, dass dies auf die ungewöhnliche Methode zurückzuführen ist, mit der Alpha im Stream gespeichert wird .

Vielleicht lohnt sich ein Blick auf webm-tools .