如何在 GStreamer 中保存带有 alpha 通道的视频?

How do I save a video with an alpha channel in GStreamer?

我有一组 RGBA png 文件,并已验证每个文件上是否存在 alpha 层:

gst-launch-1.0 multifilesrc location="pics/%d.png" ! decodebin ! videorate ! videoconvert ! video/x-raw,format=BGRA,framerate=60/1 ! videomixer background=checker ! videoconvert ! ximagesink

我想获取这些文件并将它们制作成视频文件(GStreamer 可以使用简单的 decodebin 轻松处理的任何格式)。为此使用什么好的编码器、容器和元素?

我试过 avimux 但没有保存任何 alpha 数据。我还尝试了 avenc_huffyuv,并且可以使用 avenc_huffyuv 将其解码为原始数据,但 decodebin 无法检测到它。

没有什么比睡个好觉更能解决问题了..

显然,huffyuv 编码器和 avi muxer 可以很好地协同工作以保持透明度:

gst-launch-1.0 multifilesrc location="pics/%d.png" ! decodebin ! videorate ! videoconvert ! video/x-raw,format=BGRA,framerate=60/1 ! avenc_huffyuv ! avimux ! filesink location=/tmp/test.avi