iOS 直播视频√∆«Wh«˚ - iOS - > ¬ 实用技术 ¬直播

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

2016-06-02  本文已影响737人  Chow_天才小熊猫

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

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

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

采集: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两种传输方式,支持弱网丢帧,动态切换码率,分辨率

上一篇 下一篇

猜你喜欢

热点阅读