当前位置: 首页 > news >正文

视频相关学习笔记

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.lryc.cn/news/208201.html

相关文章:

  • 神经网络中epoch、batch、batchsize区别
  • 如何将Mysql数据库的表导出并导入到另外的架构
  • 【tio-websocket】9、服务配置与维护—TioConfig
  • 数据结构—线性表(下)
  • apisix之插件开发,包含java和lua两种方式
  • 【面试经典150 | 链表】合并两个有序链表
  • 【linux】麒麟v10安装Redis主从集群(ARM架构)
  • 解决k8s删除名称空间无法强制删除的问题
  • 华为---DHCP中继代理简介及示例配置
  • 五、W5100S/W5500+RP2040树莓派Pico<UDP Client数据回环测试>
  • 死锁Deadlock
  • 【spark客户端】Spark SQL CLI详解:怎么执行sql文件、注释怎么写,支持的文件路径协议、交互式模式使用细节
  • 虹科干货 | HK-TrueNAS版本大揭秘!一文教您如何选择合适的TrueNAS软件
  • 前端html+css+js实现的2048小游戏,很完善。
  • 学习通签到
  • target采退、测评养号购物下单操作教程
  • SEACALL海外呼叫中心系统的优势包括
  • Painter:使用视觉提示来引导网络推理
  • Fedora Linux 38 安装数学动画制作工具manimgl工具包
  • 行业追踪,2023-10-26
  • Android 和 iOS APP 测试的那些区别
  • 利用nicegui开发ai工具示例
  • HarmonyOS鸿蒙原生应用开发设计- 流转图标
  • postgresql14管理(六)-备份恢复
  • 配置Sentinel 控制台
  • 【漏洞复现】酒店宽带运营系统RCE
  • Autojs 利用OpenCV识别棋子之天天象棋你马没了
  • 好数组——尺取法
  • 【Linux】Ubuntu升级nodejs版本
  • 二维码智慧门牌管理系统升级解决方案:一级属性 二级属性