音视频基础知识点

视频相关概念

流媒体协议

流媒体协议是指将一连串的媒体数据压缩后,以流的方式在网络中分段传送,实现在网络上实时传输影音以供观赏的一种技术。例如HTTP, RTMP, HLS等。

容器

一般吧MP4, flv, mov等称之为容器,也就是在这些常用格式中,可以存放多路音视频文件。例如在MP4中,就可以存放一路视频流,多路音频流和多路字幕流。

js 复制代码
// 使用ffmpeg查看其支持的容器格式
ffmpeg -formats
// 使用ffmpeg查看是否支持某个格式(例如FLV)
ffmpeg -codecs | grep FLV

编码格式

音视频文件需要经过编码压缩,才能保存为文件。不同的编码格式有不同的压缩率,导致不同的清晰度和文件大小。常见的视频编码格式有h264, h265, MPEG-4等。常见的音频编码格式有mp3, aac等。

js 复制代码
// 查看ffmpeg支持的音视频编码格式
ffmpeg -codecs

视频解码流程

解协议 的作用,就是将流媒体协议的数据,解析为标准的相应的封装格式数据。流媒体协议主要包括RTMP,HLS以及HTTP等。比如一个HTTP的视频链接,http://111.229.14.189/file/1.mp4, 经过解协议之后,会得到1.mp4封装格式的视频

解封装:解封装就是将音频码流和视频码流从1.mp4文件中分离出来。1.MP4文件经过解封装后,会得到编码格式为h264的视频压缩数据和编码格式为aac的音频压缩数据。

音视频解码 :将压缩的音视频数据转化原始的数据,视频的原始数据就是一帧帧的图像,音频的原始数据就是YUM数据。

视音频同步的作用,就是根据解封装模块处理过程中获取到的参数信息,同步解码出来的视频和音频数据,并将视频音频数据送至系统的显卡和声卡播放出来。

音频相关

音频数据量化指标

音频原始数据格式PCM(纯音频数据),WAV(存在音频格式头,基本也是原始数据)

  1. 采样大小: 一个采样用多少bit存放,通常是16bit
  2. 采样率: 每秒采样的频率, 一般有8k, 16k, 32, 44.1k, 48k(接近原声)
  3. 声道数: 单声道,双声道,立体声(多声道)

原始音频数据的大小 = 采样大小 * 采样率 * 声道数 * 时间

原始音频数据非常大,需要进行压缩

音频压缩

  1. 有损压缩(去除冗余信息,例如人听不到的频率或者被遮蔽的声音)
  2. 无损压缩(无损加解码,例如哈夫曼编码)

ffmpeg录制音频

js 复制代码
// 查找设备麦克风名字
ffmpeg -list_devices true -f dshow -i dummy
// 录制音频 ctrlc结束
ffmpeg -f dshow -i audio="audio_name" -acodec aac desktop.aac
  • -f: 使用的插件库,windows下使用dshow
  • -i: 表示输入设备,"audio_name"使用本机的麦克风名称
  • -acodec: 音频格式

视频相关

像素

每个像素是包括三个发光二极管,由三个二极管不同的亮度展示各种颜色

常用像素的色值有rgb(24位),rgba(32位)

PPI: 屏幕每英寸(等于2.54厘米)的像素点数,PPI > 300时达到视网膜级别

视频数据量化指标

帧率(fps): 每秒采集或播放图像的个数 (浏览器fps正常为60)

屏幕分辨率: 屏幕分辨率表示显示器或整个屏幕中有多少像素(例如1920 * 1080标识横向1920个像素点,纵向1080个像素点。常见的横纵像素比例是16 / 9 或者4 / 3)

未编码的视频数据(码流) = fps * 色值位长(rgb为3B, rgba为4B) * 屏幕分辨率

原始音频数据非常大,例如正常屏幕和帧率的rgb码流: 1920 * 1080 * 3 * 30 = 186624000B = 186.6M

相关推荐
集智飞行4 小时前
解决mavros2 ros2版本cpu占用高的问题
java·服务器·前端
HSunR5 小时前
ruoyi 若依 自定义注解 参数校验
java·前端·数据库
拆房老料6 小时前
ONLYOFFICE也能像Microsoft Word和WPS一样分别设置中西文字体
前端·html·word·开源软件·wps
Solis程序员6 小时前
Stripe 幂等表:把「不确定的重试」变成「查表返回」
前端·安全·bootstrap·php·agent
李纲明6 小时前
WordPress 站点变慢:按 TTFB → 缓存 → 查询 → 前端 分层排查(含配置注意)
前端·缓存·性能优化·wordpress·后端开发
程序人生8886 小时前
PDF 转 Word 版式错乱、表格丢失?DocConverter Web 格式互转引擎的保真实践
前端·人工智能·opencv·机器学习·pdf·word
粥里有勺糖7 小时前
安利一下最近用的桌面“Agent” | T3 Code
前端·github·ai编程
xy34537 小时前
Axure 9.0 动态面板基本操作
前端·ui·html·axure·原型·产品设计
不停喝水8 小时前
【前端转全栈java速通课】 项目实战④7-11节 操作数据库-登录-注册-修改密码-注销-mubatis-plus简化crud-
java·前端·数据库
一水鉴天8 小时前
统一对象拓扑(UOT)设计全链定稿:从三件事分离到三继承 之1 20261010(豆包“查看聊天内容”继续)
前端·css