写在前面
从18年12月接手在基于x86平台的边缘计算设备上进行取流解码的工作至今 , 已有数月 。笔者还记得当初对流媒体、视频、帧、图像等概念完全云里雾里,慢慢跟着项目一步步学习走过来,受益良多,以这篇文章励志作为后续继续学习的里程碑吧!
本文将介绍的是:
- 视频的基础知识 。包括:视频协议和格式、视频流 。
- 视频帧的基础知识 。包括:YUV帧格式、常见的帧名词(帧率fps、分辨率、码率)、“奇怪”的帧名词(1080p和1080i)、视频编解码而衍生的帧名词(GOP、IBP?。?。
2019年4月8日首次完成该文章,内容包括:
- 视频协议、格式、播放原理等基础内容;
- YUV格式、fps、分辨率、GOP和I/B/P帧等视频帧相关的基础知识;
- 提到了H264等视频压缩技术 。
- 第一章节增加视频流介绍,删除了播放原理介绍;
- 第二章增加了YUV采样和存储格式的示意图 , 场、1080p和1080i的介绍;删除了YUV的颜色值域(Color Range)介绍;
- 删除了原第三章的内容,这块会在后续中出专文介绍 。
相信所有人对视频一定不陌生,平时也一定经常在各大视频网站(如腾讯视频、哔哩哔哩)浏览,甚至偶尔也会把视频缓存到本地,保存成.mkv,.avi文件之类啦 。前者是我们常说的『网络流媒体』,后者是『本地视频文件』 。提到这里,两个问题来了:
- 本地视频文件常见有MP4、MKV、AVI等,这些都是什么?有什么区别?
- 在腾讯视频、哔哩哔哩网上看的视频,与本地播放的MP4、MKV、AVI文件,有什么区别?
视频格式
问题1:本地视频文件常见有MP4、MKV、AVI等,这些都是什么?有什么区别?
首先,MP4、AVI、MKV都是本地视频文件的后缀,在windows系统下,用于提示操作系统应该采用哪个应用程序打开 。而在流媒体领域 , 这些都被称为『视频封装格式』,因为除了音视频流之外,它们还包含了一些辅助信息以及组织视音频的方式 。不同格式的视频在不同平台上用户体验不同 , 很大原因在于对视音频的组织方式带来的差异 。笔者以为百度百科上的解释蛮通俗易懂的(维基百科的说法不够直白):
视频格式是视频播放软件为了能够播放视频文件而赋予视频文件的一种识别符号 。简言之,视频格式规定了和播放器的通信协议 。
其次,笔者最近准备开始深入研究MP4、AVI、MKV等内部原理,主要是对视音频的组织方式,比如在播放视频的时候 , 我们可以选择国语、粤语、英语等各种语言 , 这就意味着这段视音频中包括了多个音频流 。【给自己留个坑吧 。】
最后,笔者推荐一篇非常棒的博客:视频文件格式知多少 , 汇总的非常全 。
问题1引申:对要做视音频处理的开发们来说 , 接触MP4、MKV、AVI等各种格式视音频文件时,有什么需要注意的吗?
视音频处理可以延展出很多领域,包括解码、编码、过滤、增强处理等等 。笔者目前只在解码领域探索 , 答案是:对于解码而言 , 没有区别 。其他领域暂不清楚 。
『视频封装格式』,是在编码的视音频基础上进行一次“包装”,添加与播放相关的协议数据(
- 陇洲娃 告密者
- 解放军总医院,解放军今天的最新消息
- 苏州河是上海的“生母”,黄浦江是上海的“养母”?
- 胡必亮:新时代中国推进经济全球化的5点建议
- 记叙文特点,绪武讲作文24—写事记叙文及其特点
- baby blues和baby blue差一个“s”,意思完全不同!你能分清吗?
- 白兔糖父嫁争议
- 手机通用,华米OV强强联手,手机快充通用,终于不用出门带N根线了
- 个人利益,「世界说」美媒:民众对政府信任度“极低”大多认为政治竞选是为“个人利益”