ffmpeg。连接两个具有透明度的 webm 文件

ffmpeg. Concatenate two webm files with transparency

你能帮我找出我的错误吗?我正在尝试连接两个具有透明背景的文件 (webm)。我执行以下操作:

ffmpeg -i 1.webm  -i  2.webm -filter_complex "[0:v:0] 1:v:0]concat=n=2:v=1[outv]" -map "[outv]" 3.webm

我得到了我期望的连接视频。但是透明背景消失了。相反,背景是黑色的。如何在连接两个视频时保持透明度?

以上命令的输出为:

ffmpeg version 3.3.4-2 Copyright (c) 2000-2017 the FFmpeg developers built with gcc 7 (Ubuntu 7.2.0-8ubuntu2)

Input #0, matroska,webm, from '1.webm':
Metadata:
encoder         : Lavf57.71.100
Duration: 00:00:04.35, start: 0.000000, bitrate: 293 kb/s
Stream #0:0(eng): Video: vp9 (Profile 0), yuv420p(tv, progressive),     799x770, SAR 1:1 DAR 799:770, 23 fps, 23 tbr, 1k tbn, 1k tbc (default)
Metadata:
alpha_mode      : 1
Input #1, matroska,webm, from '2.webm':
Metadata:
encoder         : Lavf57.71.100
Duration: 00:00:04.35, start: 0.000000, bitrate: 303 kb/s
Stream #1:0(eng): Video: vp9 (Profile 0), yuv420p(tv, progressive),     799x770, SAR 1:1 DAR 799:770, 23 fps, 23 tbr, 1k tbn, 1k tbc (default)
Metadata:
alpha_mode      : 1
File '3.webm' already exists. Overwrite ? [y/N] y
Stream mapping:
Stream #0:0 (vp9) -> concat:in0:v0
Stream #1:0 (vp9) -> concat:in1:v0
concat -> Stream #0:0 (libvpx-vp9)
Press [q] to stop, [?] for help
[libvpx-vp9 @ 0x55f58406a540] v1.6.1
Output #0, webm, to '3.webm':
Metadata:
encoder         : Lavf57.71.100
Stream #0:0: Video: vp9 (libvpx-vp9), yuv420p, 799x770 [SAR 1:1 DAR     799:770], q=-1--1, 200 kb/s, 23 fps, 1k tbn, 23 tbc (default)
Metadata:
encoder         : Lavc57.89.100 libvpx-vp9
Side data:
cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: -1
frame=  200 fps=8.4 q=0.0 Lsize=     187kB time=00:00:08.65 bitrate=     176.8kbits/s speed=0.365x    
video:185kB audio:0kB subtitle:0kB other streams:0kB global     headers:0kB muxing overhead: 1.011632%

`

我以为这个问题已经解决了,但显然原生 VPx 解码器仍然无法解码 alpha,因此您必须使用 libvpx 解码器。

ffmpeg -c:v libvpx-vp9 -i 1.webm -c:v libvpx-vp9 -i  2.webm -filter_complex "[0:v:0] 1:v:0]concat=n=2:v=1[outv]" -map "[outv]" 3.webm