I think you want to use the ffmpeg libavfilter library . This basically allows you to overlay the image on top of the video. There is an example showing how to insert a transparent PNG logo in the lower left corner of the input. You can interact with the library from C ++ or from the command line on the command line.
In older versions of ffmpeg, you will need to use an extension library called watermark.so, often located in /usr/lib/vhook/watermark.so
You may also consider using an invisible digital watermark depending on your content. It embeds a digital sequence in your video that is not visually detectable. Even if someone removes the visible watermark, the invisible watermark will still remain. If the user was supposed to redistribute your video, an invisible watermark will indicate the source of the redistribution.
Of course, there are also companies that provide video content management, but I understand that you want to do it yourself. Real-time watermarking will be very resource intensive, especially when scaling. I would like to make some type of predicative watermark.
source share