• 为什么弹幕可以不挡人物?怎么实现的?Python带你来实现。


    导读

           为什么突然想实现这个?应该是我昨天刷某站的视频,发现一个有趣的现象,因为我是一个比较喜欢边看视频边看弹幕的。所以昨天发现一个现象,他那个弹幕可以自动识别人物从而不遮挡观众的观看效果,我是觉得搞得特别棒的。

     类似于这样的效果吧,所以今天咱就来研究一下他是怎么实现的

    正文

           

    高端的效果,往往只需要采用最朴素的实现方式,忙碌了两个小时,陈师傅打开了 F12,豁然开朗。一张图片 + 一个属性,直接搞定。

     

     

    为了印证我的想法,我决定自己写一个 demo。

    1. <!DOCTYPE html>
    2. <html lang="en">
    3. <head>
    4. <meta charset="UTF-8">
    5. <title>Title</title>
    6. <style>
    7. .video {
    8. width: 668px;
    9. height: 376px;
    10. position: relative;
    11. -webkit-mask-image: url("mask.svg");
    12. -webkit-mask-size: 668px 376px;
    13. }
    14. .bullet {
    15. position: absolute;
    16. font-size: 20px;
    17. }
    18. </style>
    19. </head>
    20. <body>
    21. <div class="video">
    22. <div class="bullet" style="left: 100px; top: 0;">元芳,你怎么看</div>
    23. <div class="bullet" style="left: 200px; top: 20px;">你难道就是传说中的奶灵</div>
    24. <div class="bullet" style="left: 300px; top: 40px;">你好,我是胖灵</div>
    25. <div class="bullet" style="left: 400px; top: 60px;">这是第一集,还没有舔灵</div>
    26. </div>
    27. </body>
    28. </html>

    效果是这样的:

     

    加一个红背景,看得更清楚一些:

     

    至此,我们就实现了 B 站同款的不遮挡人物的弹幕。

    至于这张图片是怎么来的,肯定是 AI 识别出来然后生成的,一张图片也就一两 K,一次加载很多张也不会造成很大的负担。

    这是一个实验中的功能,此功能某些浏览器尚在开发中,在不同的浏览器中适合使用的前缀也不一样。

    在开发需求的时候可以把它当成一个亮点使用,但是不能强依赖于这个属性做需求。

    这里还有一系列的属性,有兴趣的话可以挨个试一下。

     

    需要完整代码↓公众号获取!

  • 相关阅读:
    linux中的vim工具
    go并发操作且限制数量
    2022年7月小结
    Arduino程序设计(二) 按键控制LED灯
    PyTorch 深度学习之用PyTorch实现线性回归Linear Regression with PyTorch(四)
    vue介绍,引入及使用,优缺点,基本指令,双向绑定数据,类名灵活操作,设计模式(MVVM和MVC)
    Transformer架构
    前端面试宝典React篇19 React-Router 的实现原理及工作方式分别是什么?
    AntDB数据并行加载工具的实现
    《调试九法》阅读笔记
  • 原文地址:https://blog.csdn.net/weixin_43881394/article/details/127859715