最简单的iOS 推流代码,视频捕获,软编码(faac,x264),硬编码(aac,h264),美颜,flv编码,rtmp协议,陆续更新代码解析,你想学的知识这里都有,愿意懂直播技术的同学快来看!!

介绍

最近在做iOS直播,研究了相关直播技术,主要包含两方面:推流,播放。

因为之前使用cocos2dx做过一个视频游戏(恋爱公寓),用ffmpeg+sdl+cocos2dx实现过视频播放器。

游戏中的视频是hevc(h265)+aac合成mp4文件,使用aes加密。视频播放的时候,需要使用ffmpeg中的crypt模块进行aes解密后播放视频,解析出来的yuv图片数据直接送给OpenGL显示。

所以这次主要研究推流技术。并将代码开源。

其实直播技术中不论播放还是推流,更多的应该算是技术整合,就是将前人做好的协议和实现,整合成我们自己想要的功能。

而这次做这个项目也并不是做了什么技术创新,github里面已经有着很多直播源代码,可能比我写的更好更完整。而我的代码,特点就是简单直接,直奔主题。

我会在我的博客里做一些简单的解析,目的是希望让更多的人了解直播技术,能够了解直播内部的一些简单的原理,不再知其然不知其所以然。

功能范围

视频捕获:系统方法捕获,GPUImage捕获,CMSampleRef解析

美颜滤镜:GPUImage,

视频变换:libyuv

软编码:faac,x264

硬编码:VideoToolbox(aac/h264)

libaw:C语言函数库

flv协议及编码

推流协议:librtmp,rtmp重连,rtmp各种状态回调

代码使用及注意

代码使用方法见Demo。后续会根据上述功能的每一点对源代码进行解析。

如果有什么疑问或者问题,请评论指出。希望能够给愿意了解直播技术的人抛出一块好砖。

注1:项目中所有相关的文件名,类名,全局变量,全局方法都会加AW/aw作为前缀。

注2:项目中关键代码都使用c语言编写,理论上可以很容易地移植到android中。

文章列表

c语言推流,1小时学会:最简单的iOS直播推流(一)介绍相关推荐

  1. 1小时学会:最简单的iOS直播推流(七)h264/aac 硬编码

    最简单的iOS 推流代码,视频捕获,软编码(faac,x264),硬编码(aac,h264),美颜,flv编码,rtmp协议,陆续更新代码解析,你想学的知识这里都有,愿意懂直播技术的同学快来看!! 源 ...

  2. 1小时学会:最简单的iOS直播推流(一)介绍

    最简单的iOS 推流代码,视频捕获,软编码(faac,x264),硬编码(aac,h264),美颜,flv编码,rtmp协议,陆续更新代码解析,你想学的知识这里都有,愿意懂直播技术的同学快来看!! 源 ...

  3. 1小时学会:最简单的iOS直播推流(十一)spspps和AudioSpecificConfig介绍(完结)

    最简单的iOS 推流代码,视频捕获,软编码(faac,x264),硬编码(aac,h264),美颜,flv编码,rtmp协议,陆续更新代码解析,你想学的知识这里都有,愿意懂直播技术的同学快来看!! 源 ...

  4. 1小时学会:最简单的iOS直播推流(十)librtmp使用介绍

    最简单的iOS 推流代码,视频捕获,软编码(faac,x264),硬编码(aac,h264),美颜,flv编码,rtmp协议,陆续更新代码解析,你想学的知识这里都有,愿意懂直播技术的同学快来看!! 源 ...

  5. 1小时学会:最简单的iOS直播推流(八)h264/aac 软编码

    最简单的iOS 推流代码,视频捕获,软编码(faac,x264),硬编码(aac,h264),美颜,flv编码,rtmp协议,陆续更新代码解析,你想学的知识这里都有,愿意懂直播技术的同学快来看!! 源 ...

  6. 1小时学会:最简单的iOS直播推流(六)h264、aac、flv介绍

    最简单的iOS 推流代码,视频捕获,软编码(faac,x264),硬编码(aac,h264),美颜,flv编码,rtmp协议,陆续更新代码解析,你想学的知识这里都有,愿意懂直播技术的同学快来看!! 源 ...

  7. 1小时学会:最简单的iOS直播推流(五)yuv、pcm数据的介绍和获取

    最简单的iOS 推流代码,视频捕获,软编码(faac,x264),硬编码(aac,h264),美颜,flv编码,rtmp协议,陆续更新代码解析,你想学的知识这里都有,愿意懂直播技术的同学快来看!! 源 ...

  8. 1小时学会:最简单的iOS直播推流(四)如何使用GPUImage,如何美颜

    最简单的iOS 推流代码,视频捕获,软编码(faac,x264),硬编码(aac,h264),美颜,flv编码,rtmp协议,陆续更新代码解析,你想学的知识这里都有,愿意懂直播技术的同学快来看!! 源 ...

  9. 1小时学会:最简单的iOS直播推流(三)使用系统接口捕获音视频数据

    最简单的iOS 推流代码,视频捕获,软编码(faac,x264),硬编码(aac,h264),美颜,flv编码,rtmp协议,陆续更新代码解析,你想学的知识这里都有,愿意懂直播技术的同学快来看!! 源 ...

  10. 1小时学会:最简单的iOS直播推流(二)代码架构概述

    最简单的iOS 推流代码,视频捕获,软编码(faac,x264),硬编码(aac,h264),美颜,flv编码,rtmp协议,陆续更新代码解析,你想学的知识这里都有,愿意懂直播技术的同学快来看!! 源 ...

最新文章

  1. 信息记录拉取失败_天猫入驻为什么失败?猫店侠做详细解读
  2. 【MySQL】(图解)快速理解内连接、外连接、左连接、右连接
  3. python网站开发linux_使用Python编写Linux系统守护进程实例
  4. ITK:二进制XOR两个图像
  5. 将jOOQ与Spring结合使用:代码生成
  6. HashSet源码分析:JDK源码系列
  7. 系统架构设计师-软件水平考试(高级)-理论-操作系统
  8. Centos7 安装maven
  9. 回溯算法解迷宫问题(java版)
  10. 计算机组成原理分部实验,《计算机组成原理》课程建设的一点思考参考.pdf
  11. 【IoT】 产品设计之结构设计:材料工艺选择及特点(PP、PVC、PE、PS、ABS、PC)
  12. Java DOM4J解析String类型XML,Document对象转String
  13. Pascal与C的指针
  14. unity学习路线参考——转载自csdn
  15. linux sed命令使用详解
  16. 凡客五轮融资史 ,3年融资总额达2亿美元
  17. 用json实现深拷贝
  18. 新颖的手机软件,钢琴键盘模拟器APP
  19. JS案例:前端Iframe及Worker通信解决思路
  20. JavaWeb三层架构的理解/三层架构的优缺点/三层架构与MVC的区别

热门文章

  1. Feign详解4-Contract 源码
  2. 汽车网络安全风险评估方法
  3. 最近学习数学的一些感受(一家之言,仅供一笑)。
  4. bitmina mysql root密码_sysbench压测自装MySQL数据库
  5. python中else的作用_享学课堂谈python中else的用途
  6. Windows下安装MySQL卡在Starting Server..的解决办法
  7. 设备异常状态检测相关内容(一)
  8. [翻译] 使用 TensorFlow 进行分布式训练
  9. 求解矩阵方程耗时比较(直接求逆,Qr分解,LU分解)
  10. gin 无法获取ajax数据,新鸟入gin的坑,求问如何对post的json数据进行绑定?