ios视频直播系列开坑(一)

作者: Chow_天才小熊猫 | 来源:发表于2016-06-02 14:34 被阅读737次

      视频直播最近很火,也来跳坑,开更!

      先简单说一下直播的大致流程,好有个理解。整个过程分为三个部分,采集端--服务器--播放端,重点也就是采集端和播放端。

    先说采集端,一般流程:采集--编码--打包--推流。

    采集:1、创建AVCaptureSession,

            2、输入对象AVCaptureDeviceInput 

            3、输出对象AVCaptureVideoDataOutput

           4、输出代理方法 captureOutput(_:didOutputSampleBuffer:fromConnection:)

          这里输出SampleBuffer其中pixelBuffer就是未编码的帧数据流,接下来就是对编码

    pixelBuffer:未编码前存放数据结构,详细可以参考这一篇iOS8系统H264视频硬件编解码说明 - 简书

    编码:编码一般分硬编码和软编码,现在说硬编码,流行!

    提问:为什么要编码?

    解答:【我的理解(待完善)】

    视频H.264帧太大,编码主要获取视频流的SPS(序列参数集) 和 PPS(图像参数集)。

    可以参考牛人的意见iOS 系统中,H.264 视频流可以硬件解码吗? 具体如何实现? - 信息技术(IT) - 知乎

    outputPixelBuffer存放编码后数据帧。

    打包: 一般都是打包成flv格式,格式简单,网络传输比较快,

      打包这个真不会(待完善)

    推流:目前很多sdk都是基于librtmp的RTMP传输协议,

    【待完善】

    有一个牛人写的demo,可以参考理解。GitHub - chenliming777/LMLiveStreaming: IOS直播开源,音频AAC视频H264硬件编码,支持美颜,支持flv rtmp两种传输方式,支持弱网丢帧,动态切换码率,分辨率

    相关文章

      网友评论

        本文标题:ios视频直播系列开坑(一)

        本文链接:https://www.haomeiwen.com/subject/gsxkdttx.html