1.在维护旧的项目的同时,开始进入新的项目。需要涉及到一些新的知识体系。这里记录一下所掌握的基本知识。
FFMPEG:
1.ffmpeg是所有的视频编解码以及优化都应用的框架,大部分主流的音视频框架都是基于ffmpeg的再次封装优化。
基于FFmpeg的处理比较复杂,我没有细看。
最简单的基于FFmpeg的移动端例子:IOS HelloWorld
这篇文章是一个音视频基础的系列,但是看起来还是会比较晦涩的,建议放在后面理解很多专有词汇再看。
VLC:
2.vlc也是基于ffmpeg做的开源库,同时支持ios平台的,vlc的强大在于支持编解码很多种格式的视频文件,同时又是一个播放器,还支持直播功能的实现,因此是一个多功能的集合。VLC集成难度比较大,但是MobileVLCKit,vlc提供的部分功能的静态库集成难度是不大的 相关尝试
iOS中VLC的集成与简单使用
基于MobileVLCKit的一款播放器
参考这篇文章可以实现vlc播放器播放香港HKS的直播视频。
ijkplayer:
这是哔哩哔哩开源的一个基于ffmpeg做的开源库,也被多人使用的。这个目前我还没用过
官方的github
iOS中集成ijkplayer视频直播框架
H.264:
H264是一个视频传输的协议的标准。
喵播高仿:
喵播高仿是一个直播项目,已经开源,可以看到一些直播技术点以及细节的部分。
iOS视频直播初窥:高仿<喵播APP>
RTMP推拉流:
推流:一台设备推实时图像等数据流到服务器
拉流:一台设备从服务器把数据流实时拉下来
快速集成iOS基于RTMP的视频推流
推流需要搭建本地服务器
Mac搭建nginx+rtmp服务器
参考这两篇文章可以实现,把mac上的本地视频推送到mac本地服务器,然后再同一wifi网段下,用手机观看拉流。
直播的文集:
直播Live
主要看里面H.264的部分,以及videoToolBox的部分,
使用VideoToolbox硬编码H.264 这篇开始看起,前后三篇,会比较晦涩
苹果提供的videotoolBox代码已经删掉了,这里面作者
提供了demo。