iOS直播

VideoCore是一个开源的iOS平台音视频RTMP推流项目。支持实时滤镜效果和水印功能。在视频编码方面,iOS8以下使用AVAssetWriter进行编码:先把数据写入本地临时文件appendPixelBuffer,再读取文件数据fread. iOS8及以上采用了VideoToolBox的硬编码:VTCompressionSessionCreate创建session,当pushBuffer数据来时,调用VTCompressionSessionEncodeFrame压缩数据。

推流的初始化过程如下
https://github.com/leyleo/VideoCore/raw/master/docs/img/VCSimpleSession%E5%88%9D%E5%A7%8B%E5%8C%96%E6%8E%A8%E6%B5%81.jpg

预览界面的初始化过程如下
https://github.com/leyleo/VideoCore/raw/master/docs/img/VCSimpleSession%E5%88%9D%E5%A7%8B%E5%8C%96%E9%A2%84%E8%A7%88.jpg

水印和滤镜特效的初始化过程如下
https://raw.githubusercontent.com/leyleo/VideoCore/master/docs/img/VCSimpleSession%E5%88%9D%E5%A7%8B%E5%8C%96%E7%89%B9%E6%95%88.jpg

音视频的编码过程如下图所示,
https://raw.githubusercontent.com/leyleo/VideoCore/master/docs/img/%E9%9F%B3%E8%A7%86%E9%A2%91Buffer%E4%BC%A0%E9%80%92%E8%BF%87%E7%A8%8B.jpg

相关类的类图如下
https://github.com/leyleo/VideoCore/raw/master/docs/img/VideoCore%E7%B1%BB%E5%9B%BE2.jpg

播放

640-7.jpeg

推流

640-2-5.jpeg

编码

android 4.3 以上建议硬编码 以下软编码
ios 全硬编码

解码

640-8.jpeg

via :http://liuley.cn/%E6%8A%80%E6%9C%AF/2016/03/15/iOS-rtmp-live-stream

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • @synthesize和@dynamic分别有什么作用?@property有两个对应的词,一个是 @synthes...
    笔笔请求阅读 543评论 0 1
  • #直播总结 ##1.概述 关于直播的技术文章不少,成体系的不多。我们将用这篇文章,更系统化地介绍当下大热的视频直播...
    盖世英雄_ix4n04阅读 1,421评论 0 2
  • 猜想runloop内部是如何实现的?一般来讲,一个线程一次只能执行一个任务,执行完成后线程就会退出。如果我们需要一...
    笔笔请求阅读 446评论 0 0
  • 一.简述总体内容 1.直播流程介绍 2.Mac搭建nginx+rtmp服务器(模拟推流拉流) 3.简单的集成推流拉...
    IIronMan阅读 7,870评论 10 64
  • 昨晚乘公交车,遇到一个妈妈在教育孩子。原因是那个孩子想在路上吃东西,妈妈却以没洗手为由不让吃。孩子一直在那里轻声哭...
    克瑞斯提那阅读 170评论 0 0