Coder Social home page Coder Social logo

lhp3851 / awlive Goto Github PK

View Code? Open in Web Editor NEW

This project forked from hardman/awlive

0.0 2.0 0.0 5.83 MB

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

License: Apache License 2.0

Objective-C 76.91% C 12.50% C++ 10.59%

awlive's Introduction

blog点这里

介绍

最近在做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中。

awlive's People

Contributors

hardman avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.