前言
从进入这家往互联网转型的公司,谨慎是第一点,项目对主流的东西没有太多的涉及,当下又是直播的热潮,有些知识点还是可以记录一下的。
音视频知识点
1、采集音频与视频编码的框架:
AVFoundation:AVFoundation框架用于播放以及创建视听等媒体数据,提供了OC接口操作数据流,例如编辑旋转重新编码。
- CCD图像传感器:用于图像采集和处理的过程,把图像转换成电信号。
- 拾音器:声音传感器: 用于声音采集和处理的过程,把声音转换成电信号。
- 音频采样数据:一般是PCM格式
- 视频采样数据::一般是YUV,或RGB格式,采集到的原始音视频的体积是非常大的,需要经过压缩技术处理来提高传输效率
3、视频美化的一些框架
- GPUImage: GPUImage是一个基于OpenGL ES的一个图像/视频处理框架,封装好了各种滤镜效果,同时也可以自定义滤镜效果,本身内置了多达120多种常见的滤镜。
- OpenGL:OpenGL(全写Open Graphics Library)是个定义了一个跨编程语言、跨平台的编程接口的规格,蛀主要用于三维图像。OpenGL是个专业的图形程序接口,是一个功能强大,调用方便的底层图形库。
- OpenGL ES:OpenGL ES (OpenGL for Embedded Systems) 是 OpenGL三维图形 API 的子集,针对手机、PDA和游戏主机等嵌入式设备而设计。
4、视频的编码解码框架
- FFMPEG :一个跨平台的开源视频框架,能实现诸如视频编码,解码,转码,串流,播放等丰富的功能。其支持的视频格式以及播放协议非常丰富,几乎包含了所有音视频编解码、封装格式以及播放协议。
- Libswresample:可以对音频进行重采样,rematrixing 以及转换采样格式等操 作。
- Libavcodec:提供了一个通用的编解码框架,包含了许多视频,音频,字幕流 等编码/解码器。
- Libavformat:用于对视频进行封装/解封装。
- Libavutil:包含一些共用的函数,如随机数生成,数据结构,数学运算等。
- Libpostproc:用于进行视频的一些后期处理。
- Libswscale:用于视频图像缩放,颜色空间转换等。
- Libavfilter:提供滤镜功能。
- X264:把视频原数据YUV编码压缩成H.264格式
- VideoToolbox :苹果自带的视频硬解码和硬编码API,但是在iOS8之后才开放。
- AudioToolbox :苹果自带的音频硬解码和硬编码API
5、视频编码技术流
视频压缩编码技术:对视频进行压缩(编码)或者解压缩(解码)的技术,例如MPEG,H.264。这些都是将视频像素数据压缩成视频码流,从而降低视频的数据量(视频不经过压缩编码,可能一部电影就要上百个G)
其他
为了简化收藏的文件夹,该文还是借鉴的直播app的原理&version=12020810&nettype=WIFI&fontScale=100&pass_ticket=V%2F2ACUFZOD8xQ1suU3oQ%2BP9kb4jxgdOSI%2BMkQ%2FH4vxycgXrnuH3BzoCCuVZ1BeeL)