絕對首創---關於直播(推流-拉流-服務器搭建)

1.公司有風聲要作直播,趕好這段有時間,本身研究了一下.其實走過的彎路比較多,後來在拉流/推流/服務器搭建都完成以後,思路變得很清晰.linux

2.首先從服務器搭建提及,關於三種主流的HLS/RTMP/FLV,這裏我使用的是RTMP,關於其中的切換,咱們須要看一下ngnix的配置文件的相關參數文檔.
nginx

   我使用的是ngnix+rtmp,也就是本地搭建ngnix服務器,另外在ngnix服務器上添加了rtmp的模塊.閉門造車容易猝死,我參考的是簡書上的,請移步:http://www.jianshu.com/p/5ee84e403ea8
服務器

   參照上邊連接中幾個注意點:
框架

        1):當你對於linux的命令行熟練運用的時候,homebrew確實好用.ide

        2):編碼

         

            這一步驟有可能會一直提示失敗,可是多嘗試幾回,就會成功.spa

        3):命令行

          

            注意本身安裝的ngnix版本,進行查看視頻

       4):當你完成了nginx配置rtmp以後,上邊連接後續的部分能夠忽略.
homebrew

3.推流,推流我使用的是LFLiveKit開源框架,使用極其簡單,而且功能比較完善

    截取最主要的代碼:

   

    1):LFLiveSession是核心類,能夠重點研究其屬性與方法,使用方式簡單.

    2):整個的推流過程爲:(分析源代碼得到)

      創建RTMPConnection(LFStreamRTMPSocket),

      將採集到的視頻數據進行H.264編碼,音頻數據進行ACC編碼,

      封包上推到服務器.

      其中編碼能夠經過ffmpeg或者videocore實現,上推的過程能夠經過ffmpeg或者rtmplib實現.(LFLiveKit是經過videocore進行編碼,rtmplib進行上推)

4.拉流,拉流我使用的是IJKMediaFramework,使用及其簡單,而且功能完善

   截取最主要的代碼:

   

   1):IJKFFMoviePlayerController是核心類,使用簡單.

5.程序截圖

  1.推流端:

  

  2.拉流端:

  

6.感謝

   感謝簡書做者 滿山李子 的mac上搭建直播服務器nginx這麼好的文章

   感謝LFLivePlayer以及IJKMediaFramework的做者,以及對開源社區作出貢獻的IT碼農.

7.附言

   Demo請email     sunny_1v@163.com

相關文章
相關標籤/搜索