How to get alpha channel from RGBA video ?

Mathieu Virbel mat at kivy.org
Fri Mar 18 10:44:15 PDT 2011


Hi folks,

I'm trying to get alpha working from a avi video, without success.
My video is a set of uncompressed PNG image, 32 bpp. Even if my
current code is in Python, the pipeline look like:

filesrc location=rgbavideo.avi ! decodebin ! ffmpegcolorspace !
video/x-raw-rgb,red_mask=(int)0xff000000,green_mask=(int)0x00ff0000,blue_mask=(int)0x0000ff00,alpha_mask=(int)0x000000ff,bpp=32,depth=32
! appsink

After getting the buffer from appsink, the alpha channel is still 0xff :
>>> print set(self._buffer.data[3::4])
set(['\xff'])

The caps detected by decodebin/avidemux is:
video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321,
red_mask=(int)65280, green_mask=(int)16711680,
blue_mask=(int)-16777216, framerate=(fraction)25/1, width=(int)1080,
height=(int)540

With ffmpeg, i'm able to convert the video into png, and the png got
the alpha background. FFMpeg show :
Input #0, avi, from 'Fleches_3.avi':
  Duration: 00:00:10.00, start: 0.000000, bitrate: 466965 kb/s
    Stream #0.0: Video: rawvideo, bgra, 1080x540, 25 tbr, 25 tbn, 25 tbc

I've tryied to use ffdemux_avi instead of decodebin, without success.

Is anyone have an idea about how to get the alpha channel from the
video source ?

Regards,

Mathieu


More information about the gstreamer-devel mailing list