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

音视频小白系统入门课-3

本系列笔记为博主学习李超老师课程的课堂笔记,仅供参阅

往期课程笔记传送门:

  • 音视频小白系统入门笔记-0
  • 音视频小白系统入门笔记-1
  • 音视频小白系统入门笔记-2

视频:

  • 由一组图像组成:像素、分辨率、RGB 8888(24位) 、RGBA(32位)
  • 为了占用更小空间而被压缩
  • 显示设备上经过驱动程序 展示(未被压缩)

BMP格式使用 BGR格式,导致显示的颜色不对

屏幕指标:

  • PPI(pixels per inch),每英寸像素点数目
  • DPI(Dots pen inch),每英寸点数,一般情况下PPI = DPI

PPI > 300就属于视网膜级别

分辨率(Resolution)

  • 定义:图像的像素数量,通常表示为 宽度 × 高度(如 1920×1080)。
  • 作用:决定图像的精细程度(像素越多越清晰)。
  • 示例:
    • 1920×1080(全高清):横向1920像素,纵向1080像素。
    • 3840×2160(4K):横向3840像素,纵向2160像素。

SAR(Sample Aspect Ratio,采样宽高比)

  • 定义:单个像素的 宽高比例(即像素本身的形状)。
  • 作用:描述像素是否为方形(Square Pixel)或非方形(如矩形像素)。
  • 常见值:
    • 1:1(方形像素):大多数现代数字视频(如MP4、H.264)。
    • 非1:1(如 10:11):某些标清格式(如DVD的PAL制式)。
  • 公式:SAR=像素宽度 / 像素高度
  • 示例:若像素宽度是高度的1.5倍,则 SAR = 1.5:1
  1. DAR(Display Aspect Ratio,显示宽高比)
  • 定义:图像最终在屏幕上显示的 宽高比例(如 16:94:3)。
  • 作用:决定观众看到的画面形状(宽屏或方屏)。
  • 常见值:
    • 16:9(现代电视、流媒体)。
    • 4:3(传统电视、老式显示器)。
  • 公式:

DAR=图像宽度×SAR / 图像高度

帧率:每秒采集/播放图像的个数 15帧/s(直播) 25(动画) 30(录制) 60(电影)

码流:一秒的比特数

H264的压缩比一般能达到100:1左右,H265的压缩比平均是H264的2倍

平台推荐方案解码/处理层渲染层
WindowsFFmpeg (NVDEC) + D3D11/VulkanFFmpeg调用NVDEC硬解D3D11Vulkan渲染纹理
macOSFFmpeg (Video Toolbox) + MetalFFmpeg调用Video ToolboxMetal渲染CVPixelBuffer
AndroidMediaCodec + OpenGL ES/VulkanMediaCodec硬解OpenGL ESVulkan渲染
iOSAVFoundation + MetalKitAVFoundation硬解MetalKit直接渲染

YUV(也称YCbCr):Y表示明亮度,UV的作用是描述影像色彩及饱和度

YUV4:2:0(通用) YUV4:2:2 YUV4:4:4

RGB:用于屏幕图像的展示

YUV:用于采集和编码

YUV = Y * 1.5 = RGB / 2

存储格式:

平面planar:

  • I420:先存储Y,再存储U,再存储V
  • YV12(IOS):先存储Y,再存储V,再存储U

打包packed:

  • NV12:先Y, UVUVUV
  • NV21(Andriod ):先Y,VUVUVU

在这里插入图片描述

http://www.xdnf.cn/news/1068.html

相关文章:

  • 媒体发稿攻略,解锁新闻发稿成长新高度
  • 双指针-11.盛水最多的容器-力扣(LeetCode)
  • vue作业-周报管理系统
  • python 执行顺序
  • 程序员学商务英文之Terms of Payment Packing
  • 日志文件太大,如何分卷压缩便于传输
  • pwm驱动呼吸灯
  • 【NCCL】transport建立(一)
  • Express项目实战大事件后台 API 项目(五)——文章管理
  • java集合框架day1————集合体系介绍
  • 服务器监控软件推荐
  • Python Cookbook-6.7 有命名子项的元组
  • RAG vs 微调:大模型定制化技术选型全解析
  • 10、Context:跨维度传音术——React 19 状态共享
  • 【Java核心技术卷Ⅰ-第11版学习-第3章-Java的基本程序设计结构】
  • 每日一题(9) 垃圾箱分布
  • 基于SpinrgBoot+Vue的智慧农业管理平台-031
  • 远程医疗系统如何有效防护CC攻击
  • 智慧教室电子班牌-智能管理系统源码,‌后端‌基于Spring Boot框架,前端‌使用Vue.js框架进行组件化开发
  • 在python中装饰器的使用
  • File工具总结
  • 悟空黑桃A邀请码(31187835)
  • VSCode远程图形化GDB
  • 算法 | 鲸鱼优化算法(WOA)与强化学习的结合研究
  • Dify-web开发思路
  • Pikachu靶场-SQL注入
  • STM32——相关软件安装
  • 【Linux】:HTTPS协议
  • 相机标定(输出相机内参和畸变参数)
  • ASP.NET 中防止用户多次登录的方法