最復雜的IOS 推流代碼,視頻捕捉,軟編碼(faac,x264),硬編碼(aac,h264),美顏,flv編碼,rtmp協議,陸續更新代碼解析,你想學的知識這裡都有,情願懂直播技術的同窗快來看!!
源代碼:https://github.com/hardman/AWLive
引見最近在做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中。
文章列表 1小時學會:最復雜的IOS直播推流(一)項目引見 1小時學會:最復雜的iOS直播推流(二)代碼架構概述 1小時學會:最復雜的iOS直播推流(三)運用零碎接口捕捉音視頻 1小時學會:最復雜的iOS直播推流(四)如何運用GPUImage,如何美顏 1小時學會:最復雜的iOS直播推流(五)yuv、pcm數據的引見和獲取 1小時學會:最復雜的iOS直播推流(六)h264、aac、flv引見 1小時學會:最復雜的iOS直播推流(七)h264/aac 硬編碼 軟編碼 flv 編碼與音視頻時間戳同步 rtmp協議 sps/pps 與 AudioSpecificConfig libaw庫引見 (function(){('pre.prettyprint code').each(function () { var lines =【1小時學會:最復雜的iOS直播推流(一)引見】的相關資料介紹到這裡,希望對您有所幫助! 提示:不會對讀者因本文所帶來的任何損失負責。如果您支持就請把本站添加至收藏夾哦!