Many of our customers ask for guidance on how to place a watermark image into a video. This feature is provided in the Encoding.com API and here we will show how to quickly and easily create a watermark. Please note that the source and output frame sizes need to match. If they do not match, the logo will be distorted.
Creating a source image
Here are two sample images, both created in Photoshop as RGB, then saved in PNG format using an 8-bit color palette. We will show the “best case” design using a gray logo with a black background, and a “worst case” design using a bright red logo. Bright color edges are generally harder to blend into most encoded video, and particularly with red you will see more visual artifacts. (aka “jaggies”)
“Best case” image with a gray logo and black background, defined in web hex color code as #000000. | “Worst case” image with a bright red logo and gray background, defined in web hex color code as #808080. |
Sample API tags for black background in blend mode
Code used for the “best case” image, setting a background threshold of #000000 to make the black a transparent mask. <logo_mode> chosen for this demonstration is “0” for blend mode, but you also could use “1” to have an opaque logo.
<?xml version="1.0"?> <query> <format> <output>mp4</output> <size>864x360</size> <!-- output resolution, important for logo placement --> <bitrate>1600k</bitrate> <!-- higher bitrates get better results --> <profile>high</profile> <!-- high profile better than main profile, but longer encode time --> <two_pass>yes</two_pass> <!-- much better quality than single pass --> <logo> <logo_source>http://www.encoding.com/images/KB/prolab200pix.png</logo_source> <logo_x>630</logo_x> <!-- horizontal logo offset from top left --> <logo_y>230</logo_y> <!-- vertical logo offset from top left --> <logo_mode>0</logo_mode> <!-- zero value for "blend" translucent mode, one for opaque --> <logo_threshold>000000</logo_threshold> <!-- sets color black to transparent mask --> </logo> </format> </query>
Sample API tags for gray background in blend mode
Code used for the “worst case” image, setting a background threshold of #808080 to make the gray a transparent mask. Note the much rougher edges of the red logo.
<?xml version="1.0"?> <query> <format> <output>mp4</output> <size>864x360</size> <!-- output resolution, important for logo placement --> <bitrate>1600k</bitrate> <!-- higher bitrates get better results --> <profile>high</profile> <!-- high profile better than main profile, but longer encode time --> <two_pass>yes</two_pass> <!-- much better quality than single pass --> <logo> <logo_source>http://www.encoding.com/images/KB/pleasebuy120pix.png</logo_source> <logo_x>620</logo_x> <!-- horizontal logo offset from top left --> <logo_y>210</logo_y> <!-- vertical logo offset from top left --> <logo_mode>0</logo_mode> <!-- zero value for "blend" translucent mode, one for opaque --> <logo_threshold>808080</logo_threshold> <!-- sets color gray to transparent mask --> </logo> </format> </query>