当前位置:网站首页>水印只显示一半?帮你还原直播水印

水印只显示一半?帮你还原直播水印

2020-12-07 19:20:57 clairehou

前言

大家在刷抖音或者B站视频时,视频都带有抖音和B站的标示。在腾讯视频、芒果TV等视频网站里观看视频时同样可以找到他们独特的标示。最近有客户在做直播之前,自定义了水印模版,也想将具有代表性的图示展现在视频的右上角。结果直播过程中发现水印被截断只显示了一半。客户坚持模版设置没有问题,是水印自己飘移了,还是视频飘移了?

下面以腾讯云直播为例,来分析一下具体原因。

问题描述

我们先来分析下客户问题。客户直播之前使用API设置了水印模版,并绑定到了推流域名。直播过程中发现右上角的水印只显示了一部分。其中,直播流分辨率为:1152 * 720,通过调用API AddLiveWatermark接口添加的自定义水印模版信息为:

水印宽高为:1920* 1080,

水印配置Height为100%。如下:

看起来好像挺正常的,到底是哪里出问题了呢?

来看下Height的含义,官网链接https://cloud.tencent.com/document/product/267/30154有介绍:

哦,明白了,这里参数的含义是水印高度按照直播流高度的100%设置,水印的宽度等比例缩放。Height设置为100%即水印高度取720,宽度则按比例缩放为1920*720/1080=1280,1280大于直播流宽度1152,因此水印会部分超出画面,可以结合下图理解。

好吧,真相终于大白,模版参数设置的不合适,导致水印位置超出画面,自然也就被截断啦。

原因分析及解决方案

原因找到了,那如何解决呢?

如果继续使用API AddLiveWatermark接口添加的自定义水印模版的话,可以使用XPosition和YPosition这两个参数,分别对应X轴和Y轴的偏移,单位是百分比,需要根据水印图片和视频的分辨率,计算水印可以正常显示在画布中的百分比。如果推流的分辨率发生改变,又需要重新计算百分比,使用起来不是很方便呐,有没有更简单的方法?

当然有,通过控制台新增自定义水印模版,鼠标拖拽即可选定水印在画布中的位置。以柯南为水印来看个例子。 将水印拖到右上角,可以看到系统自动计算了X轴的百分比为80%,这里统计的是水印图片左边框线以左的宽度占整个视频窗口宽度的百分比,即剩下的宽度20%为柯南水印的宽度百分比,如下:

如果这里XPosition设置为90%,则柯南水印就只能显示一半宽度啦,被截断的效果跟上面一样。

同理,YPosition为水印图片上方框线以上的高度占整个视频窗口高度的百分比,从下面例子中可得出,水印的高度占窗口总高度的35%,如果YPosition设置的值高于65%,则水印图片高度就会出现截断。

OK,到这里就设置完成了。等一等,什么,你嫌水印太大了?好吧,例子中的水印高度超过视频的三分之一,确实有点喧宾夺主。没关系,可以鼠标选中水印后缩放,改变水印大小,对应的XPosition和YPosition也会动态调整。

怎么样,水印模版设置的方法掌握了吧?是不是觉得控制台简单很多,因为系统会自动给你折算好,你只需要调整水印的摆放位置即可。

小结

上面根据客户自定义水印模版使用过程中,出现直播水印被截断的问题,定位到问题的原因并给出了水印参数的设置建议。当然还是推荐通过控制台自定义水印模版,省去计算水印位置参数的麻烦,也避免因为计算错误产生水印位置偏移的问题。相信在看完这篇文章后,你可以很熟练地掌握水印模版设置的方法。

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

版权声明
本文为[clairehou]所创,转载请带上原文链接,感谢
https://cloud.tencent.com/developer/article/1748339