如何在 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
我有一组 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