iOS音视频基础
音频
在直播项目中,一般从麦克风(手机、电脑话筒)采集音频,从编程接口获取PCM Buffer,这块内存里,存放的就是音频数据。音频领域一些格式:pcm、aac、g711
- g711 - 打电话,只需要听到清楚的声音的压缩格式(音频采样格式率为8000)
- acc - CD级别的音质
音频容器:MP3、wma、m4a
PCM(Pulse Code Modulation)也被称为脉冲编码调制。PCM音频数据是未经压缩的音频采样数据裸流,它是由模拟信号经过采样、量化、编码转换成的标准的数字音频数据。
视频
在现实世界中,画面中,每秒刷新超过24(帧 fps)张图片,就可以骗过人眼观测的范围,看起来就相当的连续
- 分辨率 - 单帧画面大小,例如1920X1080 1280X720
- 码率 - 单张图片数据流的大小。原始的RAW码率比较大。
视频采集
从摄像头,sensor,感光元件,拍摄画面,把它编码存储为图片
- RGB
- YUV
H.264算法进行压缩
什么是H.264?H.264是一种高性能的视频编解码技术。目前国际上制定视频编解码技术的组织有两个,一个是“国际电联”,它制定的标准有H.261、H.263、H.263+等,另一个是“国际标准化组织(ISO)”它制定的标准有MPEG-1、MPEG-2、MPEG-4等。而H.264则是由两个组织联合组建的联合视频组(JVT)共同制定的新数字视频编码标准,所以它既是ITU-T的H.264,又是ISO/IEC的MPEG-4高级视频编码,而且它将成为MPEG-4标准的第10部分。因此,不论是MPEG-4 AVC、MPEG-4 Part 10,还是ISO/IEC 14496-10,都是指H.264。
ijkplayer
Bilibili/ijkplayer,是Android/iOS视频播放器,基于FFmpeg n3.4
在iOS中集成ijkplayer
,可参考官网,打包成framework,可参考iOS中集成ijkplayer视频直播框架
可能会出现的问题:
1.提示C compiler test failed
错误
解决方法,切回到ijkplayer-ios
目录下,执行
sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer/
然后再执行:
cd ios
./compile-ffmpeg.sh clean
./compile-ffmpeg.sh all