视频相关学习笔记

YUV

和rgb一样是一种表示色彩的格式,Y表示亮度,UV表示色度(U是蓝色投影,V是红色投影),只有Y就是黑白的,所以这个格式的视频图片可以兼容黑白电视,所以彩色电视使用的都是YUV

存储方式

planar
先存储Y之后是U最后存V
packed
YUV依次存放

采样方式

4:4:4
8+8+8 = 24bits = 3bytes
4:2:2 (两个Y用一个UV)
8+4+4 = 16bits = 2bytes
4:2:0 (UV交替采样)
8+2+2 = 12bits = 1.5bytes

采样介绍

网上找到一张图,这个就很清楚的解释了什么是采样,如何采样。
这里也能看出YUV相对于RGB的优势,RGB属于4:4:4一个像素3字节,而YUV可以压缩到1.5字节
在这里插入图片描述

参考:
对YUV4:2:0认识理解
YUV图像基础知识

H264

一种视频编码格式

帧类别

介绍不同帧之前首先要知道不是所有的帧都是完整的,毕竟如果每一帧都是关键帧,一个1920 * 1080的YUV4:2:0的图片就要1920 * 1080 * 15bytes的大小,有3MB左右,这个量级看一个300帧一个G就快没有了,如果按1s30帧来看,只需10s你就会花费一个G的流量,想也知道不太现实,所以不是每一帧都是关键的,因此分出了IPB三种帧。
GOP
既然知道有三种帧,那么肯定需要按一定规律放置,按一组一组分开,那么这个组就是GOP。这个GOP是按I帧分开的,所以每个GOP中只有一个I帧
I帧
关键帧,最大,最完整的一帧
P帧
需要根据前一个I帧或P帧计算所得,数据并不完整,数据量比I帧少,视频中大多数都是P帧。
B帧
需要根据前一个和后一个I帧或P帧计算所得,数据最不完整,是最小的帧。

图像运动越快GOP越短,运动越慢GOP越大

应用

直播环境
直播环境下,为了避免首次打开直播花屏的情况,一般采用缓存I帧的办法(但是缓存设置过大会导致延迟高的情况)
直播流禁止B帧,因为B帧需要前后的帧才能推算出来

ESM(Media Source Extensions)

使用前端的video和audio标签进行播放,

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

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

相关文章

使用 DDPO 在 TRL 中微调 Stable Diffusion 模型

引言 扩散模型 (如 DALL-E 2、Stable Diffusion) 是一类文生图模型,在生成图像 (尤其是有照片级真实感的图像) 方面取得了广泛成功。然而,这些模型生成的图像可能并不总是符合人类偏好或人类意图。因此出现了对齐问题,即如何确保模型的输出与…

卡尔曼滤波(Kalman Filter)原理及Python实现

Kalman-Filter-Example 项目地址 https://github.com/zhengjie9510/kalman-filter-example 理论公式 详细理论可参考DR_CAN关于卡尔曼滤波器的视频讲解。https://www.bilibili.com/video/BV1dV411B7ME 卡尔曼滤波公式分为预测和更新两部分。 预测公式为: x_hat…

CVE-2022-32991靶场复现

靶场环境: 题目提示了该CMS的welcome.php中存在SQL注入攻击。 CVE官方给出的提示: welcome.php页面存在SQL注入,并且这个参数是eid 打开靶场环境: 页面是一个登陆注册的界面 用户注册: 1 010.com 123456 123456 点击Re…

国家数据局正式揭牌,数据专业融合型人才迎来发展良机

文章目录 每日一句正能量摘要《数据要素安全流通》《Python数据挖掘:入门、进阶与实用案例分析》《数据保护:工作负载的可恢复性 》《Data Mesh权威指南》《分布式统一大数据虚拟文件系统 Alluxio原理、技术与实践》《云原生数据中台:架构、方…

计算机网络之数据链路层(全)

[复习提示] 王道:本章是历年考试中考查的重点。要求在了解数据链路层基本概念和功能的基础上,重点掌握滑动窗口机制、三种可靠传输协议、各种MAC协议、HDLC协议和PPP协议,特别是CSMA/CD协议和以太网帧格式,以及局域网的争用期和最…

Oracle(6) Control File

一、oracle控制文件介绍 1、ORACLE控制文件概念 Oracle控制文件是Oracle数据库的一个重要元素,用于记录数据库的结构信息和元数据。控制文件包含了数据库的物理结构信息、数据字典信息、表空间和数据文件的信息等。在Oracle数据库启动时,控制文件会被读…

华为机试题:HJ6 质数因子

目录 第一章、算法题1.1)题目描述1.2)文的盲的解题思路与答案1.3)牛客链接 友情提醒: 先看文章目录,大致了解文章知识点结构,点击文章目录可直接跳转到文章指定位置。 第一章、算法题 1.1)题目描述 题目…

虚拟机安装openEuler系统

openEuler操作系统简介: openEuler是一款开源操作系统。当前openEuler内核源于Linux,支持鲲鹏及其他多种处理器,能够充分释放计算芯片的潜能,是由全球开源贡献者构建的高效、稳定、安全的开源操作系统,适用于数据库、大…

机架式服务器介绍

大家都知道服务器分为机架式服务器、刀片式服务器、塔式服务器三类,今天小编就分别讲一讲这三种服务器,第一篇先来讲一讲机架式服务器的介绍。 机架式服务器定义:机架式服务器是安装在标准机柜中的服务器,一般采用19英寸的标准尺寸…

【Java】电子病历编辑器源码(云端SaaS服务)

电子病历编辑器极具灵活性,它既可嵌入到医院HIS系统中,作为内置编辑工具供多个模块使用,也可以独立拿出来,与第三方业务厂商展开合作,为他们提供病历书写功能,充分发挥编辑器的功能。 电子病历基于云端SaaS…

Java API访问HDFS

一、下载IDEA 下载地址:https://www.jetbrains.com/idea/download/?sectionwindows#sectionwindows 拉到下面使用免费的IC版本即可。 运行下载下来的exe文件,注意安装路径最好不要安装到C盘,可以改成其他盘,其他选项按需勾选即可…

多测师肖sir_高级金牌讲师__接口测试之练习题(6.1)

常见的接口面试题目: 1.postman接口测试,它有一个功能可以设置参数化,你有用过吗? 用过 (1)新建一个csv.文件 填写user、pwd 新建一个全局变量 user、pwd 点击bodyform-data 填写user、pwd 点击run 导入csv.件 查看结果 &#x…

git log 命令详解

测试仓库 asdf 常用参数 查询指定目录 git -C /Users/yanlp/workspace/asdf log 限制显示提交数量 git log -n 3 限制提交人|邮箱 git log --authorEdwin Kofler | git log --authoredwinkofler.dev 限制一个月内的提交git log --since1.month.ago | git log --since2023-0…

Istio 自动注入 sidecar 失败导致无法访问webhook服务

最近工作中在部署Istio环境的过程中发现官方示例启动的pod不能访问不到Istio的webhook,这个问题也是困扰了我一天,特此记录,便于日后查阅。 我把他归类到sidecar注入失败的情况,报错如下: 1、第一种可能(我…

美摄AR人像美颜,全新视觉体验

企业越来越重视通过视觉媒体来提升品牌形象和吸引客户。然而,传统的摄影技术往往无法满足企业对于高质量、个性化视觉内容的需求。这时,美摄AR人像美颜解决方案应运而生,它以其独特的技术和优势,为企业带来了全新的视觉体验。 美…

高效管理文件夹名称:如何批量修改指定多样化的文件夹名称

在文件管理工作中,文件夹名称的管理对于整体的文件管理体系有着至关重要的作用。然而,往往我们会在文件夹名称的管理上遇到一些难题,如:需要修改的文件夹名称多样化,无法一次性满足所有需求。为了解决这个问题&#xf…

解决Visual studio 未能正确加载...包问题

问题 解决: 菜单: Visual Studio 2019 -> 输入"devenv /resetsettings " 将之前的设置恢复到原始状态。且可以正常使用。理论应该可以使用到其它版本中……

NineData:高效、安全、可靠的DB2数据管理平台

Db2 是老牌厂商 IBM 研发和维护的关系型数据库管理系统。作为一个拥有悠久历史的数据库系统,Db2 凭借它的高可靠、可扩展和高安全性等诸多优点,在如今的数据库市场依然占据相当大的份额。 对于诸多金融行业的企业而言, Db2 作为承载其核心业务…

编曲宿主软件哪个更好用?

音乐编曲软件的出现使得音乐创作者能够克服时间和空间的限制,随时随地进行创作。随着信息时代的发展,使用编曲软件已成为音乐创作领域的主流。那么编曲软件哪个好用呢?我推荐这三款。 在业内,常用的音乐编曲软件包括Cubase、Logi…

使用 jdbc 技术升级水果库存系统(后端最终版本,不包含前端)

1、配置依赖 <dependencies><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.18.10</version></dependency><dependency><groupId>junit</groupId><…