音视频研发分享:关键帧截图+wasm快照--我又做了一件有益于社会的事情

音视频研发分享:关键帧截图+wasm快照--我又做了一件有益于社会的事情

  • 简单的一个视频设备快照功能到底有多费事多费电?
    • 新的方法
      • 有方法!
    • 省了多少电?

简单的一个视频设备快照功能到底有多费事多费电?

以前,我做多路视频设备接入的时候,为了能更好地展示设备当前的画面状态,我们经常是每隔3分钟、5分钟去设备取一次视频流,不管是GB28181设备通过SIP调阅,还是RTSP设备通过拉流调阅,亦或是SDK设备取流的过程,都是先取流,然后呢,通过像播放视频一样的过程,调用ffmpeg、avfilter、avcodec,从视频流中截取一张jpg图,保存在视频服务的目录里面,然后再以接口的形式发布给客户端,例如:
传统快照模式

这些图,都是平台费劲地从设备取过来的,然后就为了这么展示一下,废了多事?GB28181-》PS-》ES-》ffmpeg-》JPG,实际这些图片的展示率有多少?
可能一晚上机器都在不停的取流-》解码-》转码成图片,但是一晚上都没有一个人在看的,浪费了多少电?

新的方法

有什么方法可以解决这些浪费资源的事情呢?我们拆解了一下这个事情:

  1. 取流过程大多数情况下需要设备协议支持,比如让设备推送一个快照过来、比如让GB28181设备发一个关键帧过来,但是这个不通用,所以,还是得走老路,直接通过各种协议把流取过来;
  2. 数据流取过来之后,就是各种解封装,直到解成ES,这一步资源消耗很少,无所谓;
  3. 耗费资源的来了,ES-》JPG这个过程涉及了一次解码和一次编码,整个过程可以说是仅次于GPU视频分析的资源消耗,我们能不能把这部分省去?

有方法!

我们可以这样,我整个快照过程ES取流就到此为止,我们只需要根据需求,取到ES的IDR帧数据,然后将整个"sps+pps+I"存储下来,当做一个raw的快照保存就可以了,raw帧数据放到前端Web Assembly去解码,有人看就解码,没人看就不解码,这样就能省去很多事情

wasm前端解码
wasm快照解码
用视频分析工具看这就是一帧

省了多少电?

  1. 服务器不用再无时无刻解码、转图片了;
  2. 编码逻辑更简单了,关键帧就可以当图用,不要再费开发时间转图片;
  3. 充分利用客户端前端资源,看的时候解码一下RAW数据,比如1000路设备接入,快照间隔是5分钟(300s),也就是常规情况下,机器每秒要快照3张图片,而且是没日没夜的运行,现在不需要了,周末没人看视频,就不会产生任何编解码消耗!
    前端解码
    如果大家都采用这种方式,我们每年会给整个社会省多少电费?所以,做程序开发也是一个可以为社会做贡献的事情!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/86296.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

leetcode24. 两两交换链表中的节点

题目:leetcode24. 两两交换链表中的节点 描述: 给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。 思路&…

MapReduce基础原理、MR与MPP区别

MapReduce概述 MapReduce(MR)本质上是一种用于数据处理的编程模型;MapReduce用于海量数据的计算,HDFS用于海量数据的存储(Hadoop Distributed File System,Hadoop分布式文件系统)。Hadoop MapR…

【力扣每日一题】2023.8.12 合并K个升序链表

目录 题目: 示例: 分析: 代码: 题目: 示例: 分析: 题目给我们一个链表数组,数组里的链表都是升序的,让我们合并这些链表,要求合并之后还是升序的。 最简…

【C语言】数据在内存中的存储详解

文章目录 一、什么是数据类型二、类型的基本归类三、 整型在内存中的存储1.原码、反码、补码2.大小端(1)什么是大小端(2)为什么会有大小端 四、浮点型在内存中的存储1. 浮点数存储规则 五、练习1.2.3.4.5.6.7. 一、什么是数据类型 我们可以把数据类型想象为一个矩形盒子&#x…

JVM—内存管理(运行时数据区)、垃圾回收

背景介绍 当JVM类加载器加载完字节码文件之后,会交给执行引擎执行,在执行的过程中会有一块JVM内存区域来存放程序运行过程中的数据,也就是我们图中放的运行时数据区,那这一块运行时数据区究竟帮我们做了哪些工作?我们…

阿里巴巴面试题---考察对底层源代码的熟悉程度

题目如图所示: 很多人可能会觉得两个输出都会是false,因为我们都会觉得""比较的是引用类型的地址,虽然放入的值都一样但是重新创造了新对象,地址不一样,所以结果都是false. 然而,当我们运行程序会发现结果都是false. 下面,我们来分析为什么是这样的结果. 我们知道…

DolphinScheduler集群搭建详细笔记

1.DolphinScheduler Cluster部署 1.1 集群部署规划 集群模式下,可配置多个Master及多个Worker。通常可配置2~3个Master,若干个Worker。由于集群资源有限,此处配置一个Master,三个Worker,集群规划如下。 主机名ip服务…

sklearn机器学习库(一)sklearn中的决策树

sklearn机器学习库(一)sklearn中的决策树 sklearn中决策树的类都在”tree“这个模块之下。 tree.DecisionTreeClassifier分类树tree.DecisionTreeRegressor回归树tree.export_graphviz将生成的决策树导出为DOT格式,画图专用tree.export_text以文字形式输出树tree.…

【论文阅读】DEPCOMM:用于攻击调查的系统审核日志的图摘要(SP-2022)

Xu Z, Fang P, Liu C, et al. Depcomm: Graph summarization on system audit logs for attack investigation[C]//2022 IEEE Symposium on Security and Privacy (SP). IEEE, 2022: 540-557. 1 摘要 ​ 提出了 DEPCOMM,这是一种图摘要方法,通过将大图划…

axios请求

参考:https://www.axios-http.cn/docs/instance

windows安装docker 异常解决

Docker for Windows 安装Docker for Windows报错信息:Docker Desktop requires Windows 10 Pro/Enterprise/Home (18363). 解决方式 1.更新 Windows 系统版本Windows10Upgrade9252.exe 下载地址下载完运行 Windows10Upgrade9252.exe更新完,安装 Docke…

【Hilog】鸿蒙系统日志源码分析

【Hilog】鸿蒙系统日志源码分析 Hilog采用C/S结构,Hilogd作为服务端提供日志功能。Client端通过API调用(最终通过socket通讯)与HiLogd打交道。简易Block图如下。 这里主要分析一下。Hilog的读、写、压缩落盘,以及higlog与android…

python异步IO完全指南

原地址:https://flyingbyte.cc/post/async_io/ python异步IO完全指南 做为一种并行编程的範式,异步IO在Python中非常受重视,从Python3.4到3.7快速演进。 我们已经有多线程,多进程,并发(concurrency&#x…

第R3周 - 天气预测

🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊 我的环境: 语言环境:Python3.10.7编译器:VScode深度学习环境:TensorFlow 2.13.0 数据集: 一、前期…

健启星|医学营养的市场先行者

随着《“健康中国2030”规划纲要》、《国民营养计划(2017-2030年)》等政策的陆续发布,标志着以传统药物治疗为中心的医疗模式时代正式转型到以预防和康复为中心的新的医学营养时代。在此背景下,符合时代需求的特医食品成为“医学营…

UML箭头汇总

参考:http://www.cnblogs.com/damsoft/archive/2016/10/24/5993602.html 1.UML简介 Unified Modeling Language (UML)又称统一建模语言或标准建模语言。 简单说就是以图形方式表现模型,根据不同模型进行分类,在UML 2.0中有13种图&#xff…

Spring Boot | 使用mkcert本地生成SSL证书配置后端接口为HTTPS协议

Tips:本篇博客是 Windows 版本的使用教程,cmd 中执行的命令前缀是下载的软件名称,需要改成自己下载软件的名称! 下载软件 首先去 GitHub 仓库中下载软件,下载完成后将文件保存在英文路径下的文件夹,之后以…

Zookeeper 面试题

一、ZooKeeper 基础题 1.1、Zookeeper 的典型应用场景 Zookeeper 是一个典型的发布/订阅模式的分布式数据管理与协调框架,开发人员可以使用它来进行分布式数据的发布和订阅。 通过对 Zookeeper 中丰富的数据节点进行交叉使用,配合 Watcher 事件通知机…

搭建了个腾讯滑块服务,直接取ticket的,仅供测试.

最近闲着没事搭建了个TX滑块验证码服务,C#写的. 接口是rest接口 提交任务POST http://47.104.132.20:19090/task/addTask 提交数据: { "url": "https://ssl.captcha.qq.com/template/wireless_mqq_captcha.html?stylesimple&aid16&uin3557247785…

2023年中国负极石墨用坩埚市场规模现状及前景分析:负极材料为行业增长助推器[图]

负极石墨用坩埚分为再生坩埚和石墨匣钵,其中,再生坩埚主要应用于艾奇逊炉工艺的石墨化工序,石墨匣钵主要应用于预碳化和碳化工序。 负极石墨用坩埚分类 资料来源:共研产业咨询(共研网) 得益于动力电池的旺…