直播基础

来源:互联网 发布:matlab 二维矩阵画图 编辑:程序博客网 时间:2024/04/29 07:03

学习直播的内容 需要知道的是直播的过程
如果是主播端,需要获取摄像头的图像 不断转换为H.264的格式
音频需要 转换为aac 的格式,这个过程被称作编码的过程

如果是用户观看的客户端,需要从网络中获取 H.264的文件,通过
OPGL渲染图像到view视图上,从网络中获取aac文件,把aac文件
转换为可播放的音频格式 再做音视频的同步播放处理。
这个过程被称作解码的过程

参考文章

这篇基础的文集之前就看过,没有详细的看,看完会有各种概念很混乱的
感觉。但把文集中的代码下载下来,一步一步的自己尝试一遍,才能够体会
整个过程是怎样的。

文章采用的是videotoolbox这样的硬编码解码的框架,是苹果系统在iOS8以后
提供的视频编解码的方案,整个过程的使用感觉并没有涉及到编解码的真正过程
,苹果做了很好的封装,只要按照固定的格式进行调用就可以实现编解码的过程了
。这里要说的是,需要跟着敲一遍代码,才能领悟中间的过程。

具体是指:
编码:
摄像头获取的视频编码转换成H264的格式,以及麦克风获取的音频能够转换为AAC的
的格式文件,拖出来能在VLC播放器上播放,证明编码成功。

解码:
再把生成的H.264的文件 和aac的音频在项目中读取。
视频通过OPENGL绘制在UIVIEW上,aac的音频通过音频播放服务来播放。
就能够证明解码成功。

如果没有跟着敲一遍,很难体会到这个中间的过程,以及后续应该做哪些工作。

现在实现了这些东西,后续应该考虑的是模拟真实的直播环境下,编码上传视频 和

下载解码播放视频的过程,然后是后面对一些视频美颜,聊天,弹幕。礼物使用

以及视频各种动效的掌握。

编码上传视频就是一个推流的过程。可以使用开源框架 LFLiveKit

让电脑和手机处于同一个网络,然后手机推视频,电脑用自带的浏览器

就可以播放当前的推流了

然后是拉流

拉流是用的第三方的开源框架ijkplayer 最好下载一个可以用的版本

下载下来是可以直接使用的,但是 有种什么都学不到的感觉

再自己尝试一些别的方法

拿到H264的文件 然后进行解码播放 和从硬件拿到 H264的流 有什么不同? 答案是没有什么不同,因为H264的文件 也是拆成一帧一帧去解析的。流也是这样。解码成功就把数据传输给view,view 就会渲染到上面,在看具体的内容的时候,发现很多解码的细节 变了,这里需要理解每一个解码的信息是什么意思,所以会一行一行的分析。

原创粉丝点击