音视频开发

Android 音视频开发二 音视频基础(图像基础、YUV详解等

2023-02-22  本文已影响0人  Kael_Zhang的安卓笔记

视频是什么?

不知道大家小时候是否玩过一种动画小人书,连续翻动的时候,小人书的画面就会变成一个动画,类似现在的gif,由于人类眼睛的特殊结构,画面快速切换时,画面会有残留,感觉起来就是连贯的动作。所以,视频就是由一系列图片构成的!

像素、分辨率、位深、帧率、码率是什么?

颜色编码 RGB、YUV是什么?颜色空间YCrCb是什么?RGB\YUV相互如何转换?

什么是音视频编码?为什么音视频要编码?H264、AAC是什么?

在计算机的世界中,一切都是0和1组成的,音频和视频数据也不例外。由于音视频的数据量庞大,如果按照裸流数据存储的话,那将需要耗费非常大的存储空间,也不利于传送。而音视频中,其实包含了大量0和1的重复数据,因此可以通过一定的算法来压缩这些0和1的数据,这个压缩过程就是编码!因此,编码可以大大减小音视频数据的大小,让音视频更容易存储和传送。
那么假设一个视频,分辨率是 1080P、帧率25fps、时长 2 小时,yuv420的格式的话一个像素为1.5字节,这个视频的大小是 1920 x 1080 x 1.5 x 25 x 3600 x 2 = 521.4G,太大了怎么保存?传输的话那岂不是更难!这就是为什么要编码!
H264是视频编码格式,还有H265......
AAC是音频编码格式

什么是音视频封装格式?MKV、MP4是什么?

音视频的时长怎么获取,音视频的封面怎么获取,音视频的格式怎么获取呢?这些信息都以特定格式存储在文件开头或者结尾,称为多媒体信息或者多媒体元数据。通用的封装格式由:文件标识头+多媒体信息+音视频(字幕)轨+视频帧索引块组成,如果是纯音频,后面可能还有歌词。音视频的封装格式就是通过解析文件标识头进行判断的,然后解析多媒体信息从而获取时长,再解析视频帧索引块,最后根据索引块去获取对应时间戳的视频帧
MKV、MP4就是常用的视频封装格式

上一篇 下一篇

猜你喜欢

热点阅读