首页 > 其他分享 >B站弹幕不遮挡人像实现

B站弹幕不遮挡人像实现

时间:2024-02-21 14:22:41浏览次数:26  
标签:人像 非农 阿富汗 遮挡 爱死 50% 丹佛 21321 弹幕

背景

在逛b站的时候,发现一些视频的弹幕都在视频后面,不会遮挡人像,这样看起来很舒服。于是就想着,能不能自己实现一下呢?于是就有了这篇博客。

探究源码

1、通过调试控制台发现每个video标签都覆盖了个弹幕的div,这个div有个mask-image属性。这个属相包含了一张扣出的图片。推测就是通过这个属性实现的。

推测实现

  • 用户上传视频
  • b站后台通过AI将每一帧都进行语义分割,将人像扣出来,然后生成一张图片。
  • 将这张图片设置为mask-image属性,这样就可以实现弹幕不遮挡人像了。

实现

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
  <div class="test">
      <div class="video">
          <image src="./img_1.png"></image>
      </div>
      <div class="bpx-player-row-dm-wrap">
          <p>丹佛爱死非农i阿富汗i哦21321死非农i阿富汗i哦2死非农i阿富汗i哦2死非农i阿富汗i哦2死非农i阿富汗i哦2</p>
          <p>丹佛爱死非农i阿富汗i哦21321死非农i阿富汗i哦2死非农i阿富汗i哦2死非农i阿富汗i哦2死非农i阿富汗i哦2</p>
          <p>丹佛爱死非农i阿富汗i哦21321死非农i阿富汗i哦2死非农i阿富汗i哦2死非农i阿富汗i哦2死非农i阿富汗i哦2</p>
          <p>丹佛爱死非农i阿富汗i哦21321死非农i阿富汗i哦2死非农i阿富汗i哦2死非农i阿富汗i哦2死非农i阿富汗i哦2</p>
          <p>丹佛爱死非农i阿富汗i哦21321死非农i阿富汗i哦2死非农i阿富汗i哦2死非农i阿富汗i哦2死非农i阿富汗i哦2</p>
          <p>丹佛爱死非农i阿富汗i哦21321死非农i阿富汗i哦2死非农i阿富汗i哦2死非农i阿富汗i哦2死非农i阿富汗i哦2</p>
          <p>丹佛爱死非农i阿富汗i哦21321死非农i阿富汗i哦2死非农i阿富汗i哦2死非农i阿富汗i哦2死非农i阿富汗i哦2</p>
          <p>丹佛爱死非农i阿富汗i哦21321死非农i阿富汗i哦2死非农i阿富汗i哦2死非农i阿富汗i哦2死非农i阿富汗i哦2</p>
          <p>丹佛爱死非农i阿富汗i哦21321死非农i阿富汗i哦2死非农i阿富汗i哦2死非农i阿富汗i哦2死非农i阿富汗i哦2</p>

      </div>

  </div>
</body>
<style>
    .test{
        width: 100%;
        height: 100vh;
        position: relative;
    }
    .video{
        position: absolute;
        width: 670px;
        height: 374px;
        left: 50%;
        top: 50%;
        transform: translate(-50%,-50%);
    }
    .bpx-player-row-dm-wrap{
        position: absolute;
        width: 670px;
        height: 374px;
        left: 50%;
        top: 50%;
        transform: translate(-50%,-50%);
        mask-image: url('./img_2.svg');
        mask-size: cover;
    }
</style>
</html>

效果图:
原图:

遮罩图:

效果图:

标签:人像,非农,阿富汗,遮挡,爱死,50%,丹佛,21321,弹幕
From: https://www.cnblogs.com/never404/p/18025105

相关文章

  • 【iOS ARKit】人形遮挡
    人形遮挡简介    在AR系统中,计算机通过对设备摄像头采集的图像进行视觉处理和组织,建立起实景空间,然后将生成的虚拟对象依据几何一致性原理嵌入到实景空间中,形成虚实融合的增强现实环境,再输出到显示系统中呈现给使用者。   正确实现虚拟物体与真实环境的遮挡关系,需......
  • 滚动弹幕出现位置算法
    title:滚动弹幕出现位置算法date:2024-01-25categories:编程tags:-弹幕-算法-C#效果显示大量弹幕、允许重叠、弹幕字号允许不同约定为了更好地进行讨论,我们先声明一些共识:弹幕会从屏幕右边缘发射,并向左滚动弹幕出现位置应该尽量靠上几条弹幕之间应该尽......
  • 请使用scss写一个util,用于方便创建毛玻璃特效的背景图片,支持文字在图片上显示,不被遮挡
    下面是一个使用SCSS编写的util,用于创建毛玻璃特效的背景图片,并确保文字不被遮挡。该util使用::before伪元素来创建毛玻璃效果,同时在伪元素上添加文字,以确保文字显示在图片上方。@mixinglassBackground($imageUrl,$textColor:#fff,$blurAmount:10px){position:re......
  • uniapp的video组件在层级太高,无法遮挡的问题
    uniapp-vue项目中需要播放视频,uniapp的video组件在层级太高,无法遮挡,所以使用原生dom的video标签在APP中播放视频,可以被其他元素进行覆盖、遮挡,页面具有更高的定制性<!--eslint-disable--><template><viewv-html="videoHtml"id="dom-video"class="dom-video......
  • 一键抠图1:Python实现人像抠图 (Portrait Matting)
    一键抠图1:Python实现人像抠图(PortraitMatting)目录一键抠图1:Python实现人像抠图(PortraitMatting)1.项目介绍2.抠图算法3.Matting数据集4.MODNet模型 (1)项目安装 (2)数据集说明 (3)MODNet模型5. Demo测试效果 6.源码下载(Python)7.人像抠图C++版本8.人像抠图And......
  • 一键抠图2:C/C++实现人像抠图 (Portrait Matting)OpenCV库使用opencv-4.3.0版本,opencv_
    一键抠图2:C/C++实现人像抠图(PortraitMatting)目录一键抠图2:C/C++实现人像抠图(PortraitMatting)1.前言2.抠图算法3.人像抠图算法MODNet(1)模型训练(2)将Pytorch模型转换ONNX模型(3)将ONNX模型转换为TNN模型4.模型C++部署(1)项目结构(2)配置开发环境(OpenCV+OpenCL+base-utils+TNN)(3)......
  • 记录--js小练习(弹幕、 电梯导航、 倒计时、 随机点名、 购物放大镜)
    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助DOM小练习弹幕电梯导航倒计时随机点名购物放大镜1.弹幕效果预览功能:输入弹幕内容,按下回车显示一条弹幕(弹幕颜色、字体随机生成)思路:设置按钮抬起事件,在事件中判断如果按下的是回车键则将输入框中替换掉......
  • 基于PyQt和websocket,制作一个简单的BiliBili弹幕机(大体思路)
    前言从B站上获取直播弹幕的方式大体有两种,一种是通过调用下面这个接口,通过轮询获取importrequestsroom_id=123456#示例url='https://api.live.bilibili.com/xlive/web-room/v1/dM/gethistory'headers={'User-Agent':'Mozilla/5.0(WindowsNT10.0;Win64......
  • PS扣人像
    1、点击【选择】-【主体】-【选择并遮住】2、设置输出到【图层蒙版】【文章推荐】PS修图插件,一键美颜,你知道吗?https://mp.weixin.qq.com/s/tVNDBPUtKrUtfGmPKJ0Tdw......
  • Unity DOTS《群体战斗弹幕游戏》核心技术分析之3D角色动画 鲨鱼辣椒 鲨鱼辣椒
    最近DOTS发布了正式的版本,我们来分享现在流行基于群体战斗的弹幕类游戏,实现的核心原理。今天给大家介绍大规模战斗群体3D角色的动画如何来实现。DOTS对角色动画支持的局限性截止到UnityDOTS发布的版本1.0.16,目前还是无法很好的支持3D角色动画。在DOTS的baker过程种,不支持......