Here’s the final output graph from my set up. To get the alpha properly, you 
need to force overlay to rgb, then format it back to yuv before the buffersink.

+-------------+
| watermarkIn |default--[439x102 1:1 bgra]--overlay:overlay
|  (buffer)   |
+-------------+

+----------+
|    in    |default--[640x960 0:1 yuvj420p]--pad:default
| (buffer) |
+----------+

                                           +-------+
in:default--[640x960 0:1 yuvj420p]--default|  pad  |default--[640x960 0:1 
yuvj420p]--auto-inserted scaler 0:default
                                           | (pad) |
                                           +-------+

                                                           +-----------+
auto-inserted scaler 0:default--[640x960 0:1 bgra]-----main|  overlay  
|default--[640x960 0:1 bgra]--auto-inserted scaler 1:default
watermarkIn:default-------------[439x102 1:1 bgra]--overlay| (overlay) |
                                                           +-----------+

                                                              +----------+
auto-inserted scaler 1:default--[640x960 0:1 yuv420p]--default|  format  
|default--[640x960 0:1 yuv420p]--out:default
                                                              | (format) |
                                                              +----------+

                                              +--------------+
format:default--[640x960 0:1 yuv420p]--default|     out      |
                                              | (buffersink) |
                                              +--------------+

                                            +------------------------+
pad:default--[640x960 0:1 yuvj420p]--default| auto-inserted scaler 0 
|default--[640x960 0:1 bgra]--overlay:main
                                            |        (scale)         |
                                            +------------------------+

                                            +------------------------+
overlay:default--[640x960 0:1 bgra]--default| auto-inserted scaler 1 
|default--[640x960 0:1 yuv420p]--format:default
                                            |        (scale)         |
                                            +------------------------+



- Stephen



On Feb 28, 2014, at 4:41 PM, Stephen H. Gerstacker <[email protected]> 
wrote:

> As a follow up, I attempted the following
> 
> Create a new “buffer” that I dump BGRA frames in to (that’s the format the 
> watermark is in as memory).
> Every time I add a frame to my original buffer, I add a watermark frame to my 
> watermark buffer.
> After the pad link, I added an “overlay” filter with the pad and watermark 
> buffer as inputs, outputting to the buffersink.
> 
> This worked, but I loose the alpha transparency. Anything I can do to 
> preserve that?
> 
> - Stephen
> 
> 
> 
> On Feb 28, 2014, at 9:54 AM, Stephen H. Gerstacker <[email protected]> 
> wrote:
> 
>> I'm making an AVFilterGraph in code. I need to apply a watermark to the 
>> video. 
>> 
>> My assumption is that I need to use the "movie" AVFilter to then overlay it. 
>> My watermark is just stored in memory, not in a file, so I'm unsure how to 
>> point the "movie" filter to use that watermark? 
>> 
>> Can someone clarify how I would do that?
>> 
>> My current filter graph is basically:
>> 
>> buffer -> (optional rotation) -> scale -> pad -> buffersink
>> 
>> The watermark would come in after the pad and overlaid there.
>> 
>> - Stephen
>> 
>> 
>> 
>> _______________________________________________
>> Libav-user mailing list
>> [email protected]
>> http://ffmpeg.org/mailman/listinfo/libav-user
> 
> _______________________________________________
> Libav-user mailing list
> [email protected]
> http://ffmpeg.org/mailman/listinfo/libav-user

_______________________________________________
Libav-user mailing list
[email protected]
http://ffmpeg.org/mailman/listinfo/libav-user

Reply via email to