[FFmpeg-user] Alpha not working as expected with geq filter
Robert Krüger
krueger at lesspain.de
Tue May 21 19:23:16 CEST 2013
On Tue, May 21, 2013 at 6:56 PM, Paul B Mahol <onemda at gmail.com> wrote:
> On 5/21/13, Robert Krueger <krueger at lesspain.de> wrote:
>> Hi,
>>
>> I am trying to generate a test file using nullsrc and the geq filter
>> to obtain an image that has color and alpha channel values defined by
>> equations like so:
>>
>> ffmpeg -f lavfi -i nullsrc=s=256x256:d=0.01 -vf
>> scale,geq='r=255*(X/W):g=255*(Y/H):b=255*((X/W)*(Y/H)):alpha_expr=255*(1-Y/H)'
>> -pix_fmt rgba -y ~/tmp/generated-sd-alpha.png
>>
>> The generated png file does not contain any transparent pixels as far
>> as I can see and I wonder what I have done wrong. I found trac ticket
>> #2520 which has some similarities but it is marked as fixed. Full
>> command line and output:
>>
>> ffmpeg -f lavfi -i nullsrc=s=256x256:d=0.01 -vf
>> scale,geq='r=255*(X/W):g=255*(Y/H):b=255*((X/W)*(Y/H)):alpha_expr=255*(1-Y/H)'
>> -pix_fmt rgba -y ~/tmp/generated-sd-alpha.png
>> ffmpeg version N-53322-gb1bbd71 Copyright (c) 2000-2013 the FFmpeg
>> developers
>> built on May 21 2013 16:18:03 with llvm-gcc 4.2.1 (LLVM build 2336.11.00)
>> configuration: --enable-gpl
>> libavutil 52. 33.100 / 52. 33.100
>> libavcodec 55. 10.101 / 55. 10.101
>> libavformat 55. 7.100 / 55. 7.100
>> libavdevice 55. 1.100 / 55. 1.100
>> libavfilter 3. 68.101 / 3. 68.101
>> libswscale 2. 3.100 / 2. 3.100
>> libswresample 0. 17.102 / 0. 17.102
>> libpostproc 52. 3.100 / 52. 3.100
>> Input #0, lavfi, from 'nullsrc=s=256x256:d=0.01':
>> Duration: N/A, start: 0.000000, bitrate: N/A
>> Stream #0:0: Video: rawvideo (I420 / 0x30323449), yuv420p, 256x256
>
> Input does not have any alpha, thus alpa can't be changed.
I saw that but then I thought the geq filter would automatically use a
format with alpha if an alpha expression was there, regardless of what
was used in the previous member of the filter chain. Then I started
looking for a way to force the source to have alpha. I tried
- using -pix_fmt rgba as an input option but got an error message
telling me that pixel format is an unsupported option
- using color=0x80808080 as the source because I hoped setting an
alpha value would somehow make it use a pixel format with alpha
support
So how do I force alpha to be there in the source other than
generating a dummy video with alpha and using that as an input (which,
of course I can do but I was looking for the more elegant solution
first because I thought I must be missing some option to force a pixel
format)?
More information about the ffmpeg-user
mailing list