iOS HLS測試之本地服務器搭建和HLS推拉流測試
Nginx服務器搭建
Nginx安裝
- 在終端執行以下命令,來安裝Nginx服務
```
抓取最新安裝路徑
brew tap denji/homebrew-nginx brew install nginx-full --with-rtmp-module ```
- 在終端執行nginx,啟動Nginx服務
nginx
接下來在瀏覽器中輸入http://localhost:8080/
,出現以下信息即表示服務器啟動成功
Nginx服務器配置
接下來,需要配置Nginx來支持HLS和RTMP推流
前往文件夾/usr/local/etc/nginx/nginx.conf
,使用文本編輯器打開,在文件的末尾處添加以下配置。
rtmp {
server {
listen 1935;#端口號
application live1 {#live1 隨便起,後面的拉流的時候保持一致即可
live on;
record off;
}
application hls {
live on;
hls on;
hls_path /usr/local/var/www/hls;#視頻流存放地址,在推流過程中產生的ts和m3u8文件都會在此路徑中生成
hls_fragment 5s; #設置HLS分片的長度的。默認是5秒
}
}
}
關於rtmp模塊的更多配置和屬性,可以查看官方文檔 http://github.com/arut/nginx-rtmp-module/wiki/Directives
配置完成後,在終端執行以下命令:
```
保存文件後,重新加載nginx的配置文件
nginx -s reload ```
服務端推流實現
這裏需要使用ffmpeg來進行推流,首先安裝ffmepg
brew install ffmpeg
接下來就可以準備推流,在終端執行以下命令:
ffmpeg -re -i /Users/tongxing/Movies/wwdc2022-10128_sd.mp4 -vcodec copy -f flv rtmp://localhost:1935/hls/room
這裏rtmp://localhost:1935/hls/room
中的hls就是上面配置的application
後面的路徑名稱,後面的room可以隨便寫
可以看到,終端已經在開始對mp4文件進行分片處理
這個時候打開/usr/local/var/www/hls
路徑就可以看到,文件夾裏面的ts片段和m3u8文件是在實時更新的。
這個時候就可以拿到 rtmp://localhost:1935/hls/room
這個鏈接來進行播放了。
客户端拉流實現
Mac上進行拉流播放
為了判斷是否真的推流成功,下載一個 VLC 工具,進行拉流地址的播放。
雙擊播放地址,即可看到,視頻正在播放,同時m3u8文件一直在更新。
視頻:
暫時無法在飛書文檔外展示此內容
Gif圖:
iPhone 設備上進行拉流播放
這裏使用的是ijkplayer播放器來進行播放的。文章末尾附上Demo。
修改demo中的某個m3u8播放地址。我這裏修改的是:IJKDemoSampleViewController
示例中的播放地址:
這裏播放播放地址,需要將localhost
換成你的 Mac機器的網絡IP地址: x.x.x.x:1935
可以看到雙端是可以在同時進行內容同步播放。
視頻:
暫時無法在飛書文檔外展示此內容
gif圖:
附件:
暫時無法在飛書文檔外展示此內容