音视频基础知识点

视频相关概念

流媒体协议

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

容器

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

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

编码格式

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

// 查看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录制音频

// 查找设备麦克风名字
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

原文链接:https://juejin.cn/post/7334623638116401163 作者:用户名未被占用

(0)
上一篇 2024年2月15日 下午4:06
下一篇 2024年2月15日 下午4:17

相关推荐

发表回复

登录后才能评论