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

音视频入门知识(一):基本概念篇

一、基本概念篇

编码(encode)

通过特定的压缩技术,将某个视频的视频流格式转换成另一种视频格式的视频流方式。

输入:一串连续的图片帧;输出:连续的二进制字节流

编码的本质:压缩 -> 减少占用空间

YUV420/422可通过ffmpeg/opencv库直接编码成H264编码格式

PCM可编码成AAC编码格式

解码(decode)

通过特定的解压缩技术,将某个视频格式的视频流转换成另一种视频格式的视频流方式。

输入:连续二进制流、网络流、文件流 ;输出:一张张图片

H264解码成YUV、AAC解码成PCM

转码(transcode)

视频转码技术将视频信号从一种格式转换成另一种格式

很多时候由需求决定 (如:rtsp -> rtmp)

改变视频/音频的格式(如分辨率、帧率等参数)

封装(mux)

复用,按一定格式组织原音视频流

为什么要进行封装?

编码(codec),比如视频编码h264,h265,音频编码aac,mp3,它存在的目的主要是压缩原始数据的体积封装格式(container),比如mp4,mkv,用来存储/传输编码数据,并按一定规则把音视频、字幕等数据组织起来,里面都会有一些信息,比如当前流中包含哪些编码类型,时间戳等,播放器可以按照这些信息来匹配解码器、同步音视频。

解封装(demux)

解复用,按一定格式解析出原始音视频流


http://www.kler.cn/a/453496.html

相关文章:

  • Docker部署GitLab服务器
  • C# 读取多种CAN报文文件转换成统一格式数据,工具类:CanMsgRead
  • WebXR
  • [代码随想录23回溯]回溯的组合问题+分割子串
  • 【VScode】第三方GPT编程工具-CodeMoss安装教程
  • 论文阅读 - 《Large Language Models Are Zero-Shot Time Series Forecasters》
  • Golang 为什么没有注解?
  • [青少年CTF练习平台]Lihua‘s for
  • Unity 战斗系统中角色UI血条设计
  • 微服务分布式(一、项目初始化)
  • JVM实战—2.JVM内存设置与对象分配流转
  • git clone 和 conda 换源
  • 智慧城管综合执法系统源码,移动端+PC端的“两端”应用模式
  • 无人机图传模块原理及作用
  • USB3.0到底是什么?如何辨别?
  • html+css+js网页设计 美食 桂林美食4个页面
  • Coroutine 基础二 —— 结构化并发(一)
  • 鸿蒙Next状态管理V2 - @Param装饰器总结
  • Linux系统升级OpenSSH 9.8流程
  • CUDA与Microsoft Visual Studio不兼容问题
  • 深入解析 Pytest 钩子函数及二次开发过程
  • 【MySQL】索引 面试题
  • PostgreSQL自带的一个命令行工具pg_waldump
  • 免杀0到1之ShellCode与加载器
  • adb无法连接到安卓设备【解决方案】报错:adb server version (40) doesn‘t match this client (41);
  • 【形式化验证latency】2.AADL项目结构及语法(一)