如何開發出一款仿映客直播APP專案實踐篇 -【伺服器搭建+推流】

發表於2016-12-09

【目錄】

前言:有了伺服器的構建 ,就可以將手機端採集視訊傳輸到伺服器 ,可以在從伺服器拉流,實現直播,延遲大約3-4秒!

效果圖

如何開發出一款仿映客直播APP專案實踐篇 -【伺服器搭建+推流】

推流

Mac搭建nginx+rtmp伺服器

參考推酷:Mac搭建nginx+rtmp伺服器
步驟:
開啟終端, 檢視是否已經安裝了Homebrew (Mac上好用的第三方安裝管理工具), 直接終端輸入命令

如果Mac已經安裝了, 會顯示一些命令的幫助資訊. 此時輸入Q退出即可, 直接進入第二步.反之, 如果沒有安裝,執行命令(命令列已更到最新 )

如果安裝後, 想要解除安裝

一、【安裝nginx+rtmp伺服器】


先clone nginx專案到本地

執行安裝:

此時, nginx和rtmp模組就安裝好了輸入命令:

在瀏覽器裡開啟http://localhost:8080如果出現下圖, 則表示安裝成功

121929699-8b028b1cc1dac818

安裝成功

注意: 如果終端上提示

nginx: [emerg] bind() to 0.0.0.0:8080 failed (48: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:8080 failed (48: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:8080 failed (48: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:8080 failed (48: Address already in use)
…..

則表示8080埠被佔用了, 檢視埠PID

根據埠PID, kill掉(這兒的9603 換成你自己8080埠的PID)

然後重新執行
nginx

最後開啟http://localhost:8080驗證

3.配置nginx和ramp首先我們檢視nginx安裝到哪了

如圖, 找到nginx.conf檔案所在位置

131929699-4e89cc8119032c48

nginx.conf

通過vim或者點選Finder->前往->前往資料夾->輸入/usr/local/etc/nginx/nginx.conf->用Xcode開啟 nginx.conf 直接滾到最後一行, 在最後一個}(即最後的空白處, 沒有任何{}) 後面新增
在http節點後面加上rtmp配置:

然後重啟nginx(其中的1.10.1要換成你自己安裝的nginx版本號, 檢視版本號用nginx -v命令即可)

到此,安裝完成!
注意:(如果你命令執行成功, 重啟成功了, 沒有沒有任何異常, 請直接跳轉到下一步)執行命令的時候, 報異常

rtmp成了未知指令.
檢視你的命令是否敲錯 建議直接複製. 如果安裝不成功,不妨多試幾次!
解決方案:解除安裝nginx

再次安裝nginx

二、【實現推流】


主要有兩種封裝庫來實現推流(基於RTMP協議):

  • FFmpeg推流
  • LFLiveKit推流(採集篇說過)
    簡介:FFmoeg整合工程中比較麻煩,但是在終端上執行卻很方便 所以在2.1中只做本地視訊推流測試有了解的可以參考:iOS下使用FFMPEG的一些總結,相對來說LFLiveKit在工程中整合就方便,而且包含採集、美顏、推流與一身所以推薦
2.1 安裝ffmpeg,實現本地視訊推流
  1. 執行命令

    安裝ffmpeg時間就要長一點了. 如果速度過慢, 建議搬梯子. 不過也才50多M的東西, 耐心一點就好.
  2. 等待的時間裡, 再下載一個支援rtmp協議的 VLC 視訊播放器ffmpeg推流以我桌面的一個loginmovie.mp4
    (自己準備一個視訊檔案)為例, 執行推流命令

    注意: 更換你的視訊地址
    將視訊推流到伺服器後,開啟VLC,然後File->open network->輸入:
    rtmp://localhost:1935/rtmplive/room

效果如圖

如何開發出一款仿映客直播APP專案實踐篇 -【伺服器搭建+推流】

推流
2.2 使用LFLiveKit,實現直播推流

將程式執行在真機上只有真機上才能採集到音訊 (程式碼在底部)

採集端用的LFLive庫 只需要在此加入伺服器推流地址url即可

#import "CaputuereLiveViewController.h"
#import

注意:
由於搭建是本地伺服器(實現外網須穿牆)
1.執行伺服器的電腦和手機保證在同一WiFi下
2.在執行在真機的程式碼中必須把地址換成你自己的電腦IP(192.168.0.2 )(不能再用local 本地了)

151929699-c581a4c35e8ccb13

1.開始手機上執行直播程式

2.然後開啟 VLC 中 的 file — Open Network, 直接輸入程式碼中的 url:

161929699-fd8ed02f7d39595a

有些延遲 耐心等待 :

如何開發出一款仿映客直播APP專案實踐篇 -【伺服器搭建+推流】

效果圖.轉.gif

總結 :到此所有的直播主要大致結束 ,當然一個直播還有許多功能: 禮物聊天彈幕連麥等後續整理出來,待完善!喜歡我的朋友可以進行關注!

gitHub程式碼地址:

Object-C版 : https://github.com/one-tea/ZKKLiveDemo
Swift版 : https://github.com/one-tea/ZKKLiveAPP_Swift3.0

相關文章