c语言推流,1小时学会:最简单的iOS直播推流(一)介绍
最简单的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小时学会:最简单的iOS直播推流(七)h264/aac 硬编码
最简单的iOS 推流代码,视频捕获,软编码(faac,x264),硬编码(aac,h264),美颜,flv编码,rtmp协议,陆续更新代码解析,你想学的知识这里都有,愿意懂直播技术的同学快来看!! 源 ...
- 1小时学会:最简单的iOS直播推流(一)介绍
最简单的iOS 推流代码,视频捕获,软编码(faac,x264),硬编码(aac,h264),美颜,flv编码,rtmp协议,陆续更新代码解析,你想学的知识这里都有,愿意懂直播技术的同学快来看!! 源 ...
- 1小时学会:最简单的iOS直播推流(十一)spspps和AudioSpecificConfig介绍(完结)
最简单的iOS 推流代码,视频捕获,软编码(faac,x264),硬编码(aac,h264),美颜,flv编码,rtmp协议,陆续更新代码解析,你想学的知识这里都有,愿意懂直播技术的同学快来看!! 源 ...
- 1小时学会:最简单的iOS直播推流(十)librtmp使用介绍
最简单的iOS 推流代码,视频捕获,软编码(faac,x264),硬编码(aac,h264),美颜,flv编码,rtmp协议,陆续更新代码解析,你想学的知识这里都有,愿意懂直播技术的同学快来看!! 源 ...
- 1小时学会:最简单的iOS直播推流(八)h264/aac 软编码
最简单的iOS 推流代码,视频捕获,软编码(faac,x264),硬编码(aac,h264),美颜,flv编码,rtmp协议,陆续更新代码解析,你想学的知识这里都有,愿意懂直播技术的同学快来看!! 源 ...
- 1小时学会:最简单的iOS直播推流(六)h264、aac、flv介绍
最简单的iOS 推流代码,视频捕获,软编码(faac,x264),硬编码(aac,h264),美颜,flv编码,rtmp协议,陆续更新代码解析,你想学的知识这里都有,愿意懂直播技术的同学快来看!! 源 ...
- 1小时学会:最简单的iOS直播推流(五)yuv、pcm数据的介绍和获取
最简单的iOS 推流代码,视频捕获,软编码(faac,x264),硬编码(aac,h264),美颜,flv编码,rtmp协议,陆续更新代码解析,你想学的知识这里都有,愿意懂直播技术的同学快来看!! 源 ...
- 1小时学会:最简单的iOS直播推流(四)如何使用GPUImage,如何美颜
最简单的iOS 推流代码,视频捕获,软编码(faac,x264),硬编码(aac,h264),美颜,flv编码,rtmp协议,陆续更新代码解析,你想学的知识这里都有,愿意懂直播技术的同学快来看!! 源 ...
- 1小时学会:最简单的iOS直播推流(三)使用系统接口捕获音视频数据
最简单的iOS 推流代码,视频捕获,软编码(faac,x264),硬编码(aac,h264),美颜,flv编码,rtmp协议,陆续更新代码解析,你想学的知识这里都有,愿意懂直播技术的同学快来看!! 源 ...
- 1小时学会:最简单的iOS直播推流(二)代码架构概述
最简单的iOS 推流代码,视频捕获,软编码(faac,x264),硬编码(aac,h264),美颜,flv编码,rtmp协议,陆续更新代码解析,你想学的知识这里都有,愿意懂直播技术的同学快来看!! 源 ...
最新文章
- 信息记录拉取失败_天猫入驻为什么失败?猫店侠做详细解读
- 【MySQL】(图解)快速理解内连接、外连接、左连接、右连接
- python网站开发linux_使用Python编写Linux系统守护进程实例
- ITK:二进制XOR两个图像
- 将jOOQ与Spring结合使用:代码生成
- HashSet源码分析:JDK源码系列
- 系统架构设计师-软件水平考试(高级)-理论-操作系统
- Centos7 安装maven
- 回溯算法解迷宫问题(java版)
- 计算机组成原理分部实验,《计算机组成原理》课程建设的一点思考参考.pdf
- 【IoT】 产品设计之结构设计:材料工艺选择及特点(PP、PVC、PE、PS、ABS、PC)
- Java DOM4J解析String类型XML,Document对象转String
- Pascal与C的指针
- unity学习路线参考——转载自csdn
- linux sed命令使用详解
- 凡客五轮融资史 ,3年融资总额达2亿美元
- 用json实现深拷贝
- 新颖的手机软件,钢琴键盘模拟器APP
- JS案例:前端Iframe及Worker通信解决思路
- JavaWeb三层架构的理解/三层架构的优缺点/三层架构与MVC的区别
热门文章
- Feign详解4-Contract 源码
- 汽车网络安全风险评估方法
- 最近学习数学的一些感受(一家之言,仅供一笑)。
- bitmina mysql root密码_sysbench压测自装MySQL数据库
- python中else的作用_享学课堂谈python中else的用途
- Windows下安装MySQL卡在Starting Server..的解决办法
- 设备异常状态检测相关内容(一)
- [翻译] 使用 TensorFlow 进行分布式训练
- 求解矩阵方程耗时比较(直接求逆,Qr分解,LU分解)
- gin 无法获取ajax数据,新鸟入gin的坑,求问如何对post的json数据进行绑定?