Below is the context,

Right now i'm developing an android application, which will allow the user to upload the video and image to the server. I want to allow the users(his friends) to download the video/image with a watermark on the video/image. So I would like to know what are the advantages of doing watermark on server end and what are the advantages of doing on client end (app). What is the technically correct option either to pick from server end or client's end.

  • 1
    A little context would be helpful. – Martin Maat May 31 '18 at 5:06

There are two considerations here:

  1. Adding a watermark takes quite a bit of processing power, especially for videos. It might be possible that a phone is capable of adding the watermark, but it will definitely degrade the user experience. The server typically has more processing power, and there the operation can be performed in the background while users are not yet waiting for it.

  2. In a client-server system, the server can not trust the client to perform important operations. If it is important that the video is always shown with a watermark, then that watermark must be added by the server, because you can have the possibility that someone else creates another client app that doesn't do the watermarking.

  • But, don't we have to keep a duplicate watermark video on the server, along with the original one to achieve this functionality ? – Jitendar May 31 '18 at 7:53
  • Compared with the effort of streaming and decompressing video packets, adding a static logo alpha blended over the top is likely to be trivial to the client. But I agree about not trusting the client to do what you ask it to. – Simon B May 31 '18 at 10:40
  • @SimonB that implies that you control the displaying of decoded frames, rather than delegating to a (platform provided?) library – Caleth May 31 '18 at 12:39
  • @Caleth or have the decoder library render to an off screen buffer and write a trivial little bit of gsgl shader language to add the watermark? But yea, this should probably really be server side and done offline. – Dan Mills Jun 3 '18 at 19:02

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.