2017-08-01 9:53 GMT+02:00 Paul B Mahol <one...@gmail.com>: > On 8/1/17, Jon bae <jonba...@gmail.com> wrote: > > 2017-07-31 22:16 GMT+02:00 Paul B Mahol <one...@gmail.com>: > > > >> On 7/31/17, Jonathan Baecker <jonba...@gmail.com> wrote: > >> > > >> > > >> > 2017-07-31 14:41 GMT+02:00 Paul B Mahol <one...@gmail.com > >> > <mailto:one...@gmail.com>>: > >> > > >> > On 7/31/17, Jon bae <jonba...@gmail.com > >> > <mailto:jonba...@gmail.com>> > >> > wrote: > >> > > 2017-07-31 14:00 GMT+02:00 Paul B Mahol <one...@gmail.com > >> > <mailto:one...@gmail.com>>: > >> > > > >> > >> On 7/31/17, Jon bae <jonba...@gmail.com > >> > <mailto:jonba...@gmail.com>> wrote: > >> > >> > 2017-07-31 10:30 GMT+02:00 Paul B Mahol <one...@gmail.com > >> > <mailto:one...@gmail.com>>: > >> > >> >> > >> > >> >>> > >> > >> >>> What exactly you tried? > >> > >> >>> > >> > >> >>> Perhaps you want premultiply filter? > >> > >> >>> > >> > >> >>> Yes I have a video and a lower third, and I want to > overlay > >> > the lower > >> > >> >> third. But my alpha channel from the lower third is not > >> > pre-devided > >> > >> >> with > >> > >> >> the alpha channel, so I need to do a channel division in > >> > ffmpeg. > >> > >> >> Something like: > >> > >> >> > >> > >> >> ffmpeg -i video.mp4 -i lowerthird.png -filter_complex > >> > >> >> [1:v]geq=r=r/a:g=g/a:b=b/a[gq];[0:v][gq]overlay ... > >> output.mp4 > >> > >> >> > >> > >> >> I see that you wrote a filter for this, but can you please > >> > give me an > >> > >> > example of how it works? I don't get it to run. > >> > >> > >> > >> "I don't get it to run" means nothing to me. > >> > >> > >> > >> I'm not sure if I use the filter correct... But with this: > >> > > > >> > > ffmpeg -i video.mp4 -i image.png -filter_complex > >> > > "[0:v]format=rgba[a];[1:v]format=rgba[b];[a][b]premultiply" > >> > > > >> > > My result is, that everything what had alpha = 0, in my image, > >> > is > >> > now > >> > > black. Mybe I understand the use case wrong, but how you would > >> > use this > >> > > filter? > >> > > >> > Try harder to explain your use case? > >> > > >> > Sorry, my english is not so good, but I will try it. In the attachment > >> > you found 3 images. Universum.png is my original lower third, it comes > >> > out from blackmagic fusion. Universum-comp.jpg show the composite of a > >> > background video with the lower third, this is the correct result. The > >> > Universium-ffmpeg is the version from ffmpeg, as you see ffmpeg > handles > >> > the alpha channel different so the lower third is more dark. > >> > > >> > I can simulate the same effect, from ffmpeg, in my compositing > program, > >> > when I load the lower third image with the option "Post-Multiply by > >> > Alpha". I guess this is what ffmpeg does in Background, when it load > >> > images with alpha channel. > >> > To get rid of this effect now in my composition program I have to > >> > divide > >> > the color channel from the lower third with its own alpha: > >> > red/alpha;green/alpha;blue/alpha. Now I can overlay the lower third > and > >> > the result is correct. > >> > > >> > This division now I would need in ffmpeg. I though I can do it with > >> > your > >> > premultiply filter, but maybe not. > >> > >> Perhaps you want overlay filter? > >> > > > > No the overlay filter don't handle the alpha channel correct, that is > what > > I was trying to say. > > > > You can try it by your own - get this 3 images and run this command: > > > > ffmpeg -loop 1 -f image2 -i backgroud.png -i multiplied-alpha.png > > -filter_complex overlay -pix_fmt rgb24 -f sdl "multiplied alpha" > > > > ffmpeg -loop 1 -f image2 -i backgroud.png -i pre-divide-alpha.png > > -filter_complex overlay -pix_fmt rgb24 -f sdl "divide alpha" > > > > The second one overlay the image correct. The first one overlay the image > > different, because the alpha channel is not the same. > > > > I stll do not know what you are trying to tell me. > > Do you have equatition how should R/G/B be calculated with Alpha? >
I think to, that my hole description make it more complicate, then my question to the begin. I was trying to tell you, that my image, what I want to overlay, need to be process before, because its alpha channel is not in a way ffmpeg needs it for the overlay filter. You know that there is different way how a image have its color calculated with its own alpha channel. The color can be multiplied with the alpha, or can be straight. ( https://microsoft.github.io/Win2D/html/PremultipliedAlpha.htm ) My image now have a multiplied alpha. To get a correct overlay I have to: *a.* unmultiply the alpha channel ImageColor/ImageAlpha or: *b.* to overlay the image with a different math operation: foregroundColor + ( backgroundColor * ( 1 - foregroundAlpha ) ) I have make now more tests and it look like that method *a.* still not working 100%, even when it should. But method *b.* works. So my new question is: can ffmpeg combine images with a different math. Or is there a filter where I can write my own blend expressions (I know the blend filter, but until now I had no success with this one.) _______________________________________________ ffmpeg-user mailing list ffmpeg-user@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-user To unsubscribe, visit link above, or email ffmpeg-user-requ...@ffmpeg.org with subject "unsubscribe".