前言:就像Richy研究新技術(shù)一樣,由于技術(shù)發(fā)展迅速,通過各大搜索引擎搜出的可供參考的資料也是五花八門,有的還比較陳舊。這些外在的因素,無疑也滯后了Richy和大家前進的速度。經(jīng)過不懈努力,歷經(jīng)坎坷,Richy現(xiàn)將成果再次記錄且與大家分享,以達到共同進步的目的?!窘o予大于索取】
PS:本文的主要目的在于:加以個人理解,對研究新技術(shù)的記錄。如果文中有出入的地方,還請見諒,且請各位大蝦指正,不勝感激,已內(nèi)牛滿面...
閑話不多說,正題coming...

實現(xiàn)總述:
通過ffmpeg將本地的xxx.mp4進行切片處理,生成m3u8播放列表(索引文件)和N多個 .ts文件,并將其(m3u8、N個ts)放置在本地搭建好的webServer服務(wù)器的指定目錄下,我就可以得到一個可實時播放的URL(類似于:http://localhost/xxx/xxx.m3u8),最終將該URL運用于之前簡易封裝的AVPlayer和VLC播放器中測試播放,得到了如上圖的結(jié)果。
主要步驟:
1、安裝Homebrew;2、安裝ffmpeg;3、mp4->m3u8切片處理;4、WebServer提供m3u8播放索引;5、播放測試。
1、打開終端,輸入命令,安裝Homebrew
1.1 先檢查是否安裝了Homebrew,在終端輸入命令:brew help。如圖說明安裝了,并且你也可以查看它的其他常用命令:

1.2 如果未安裝,則在終端輸入安裝命令:
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
2、安裝FFmpeg(音視頻流化處理且可跨平臺)工具
在終端輸入命令:
brew install ffmpeg
下圖可清晰看到ffmpeg共47M(要耐心等待哦~),以及安裝在本地的路徑(usr/local/Cellar/ffmpeg/3.0.2)。

3、mp4->m3u8切片處理
通過剛剛安裝的ffmpeg,在終端輸入命令(靈活變化):
ffmpeg -i XXX.mp4 -c:v libx264 -c:a copy -f hls XXX.m3u8
其中,XXX.mp4為本地視頻文件,XXX.m3u8為最終生成的播放索引列表,與此同時還有N多個ts文件。
4、WebServer提供m3u8播放索引?
首先在本地啟用Apache搭建好WebServer(這里不做介紹了),然后將<步驟3>中的 XXX.m3u8 放置于該服務(wù)器下的共享目錄下,由此可得到m3u8的播放URL(http://localhost/richyleo/m3u8/war3.m3u8),Richy的真實切片命令共大家參考替換:
ffmpeg -i /Users/richyleo/Downloads/warcraft.mp4 -c:v libx264 -c:a copy -f hls /Library/WebServer/Documents/RichyLeo/m3u8/war3.m3u8
5、播放測試
打開Safari瀏覽器,或者在App中載入播放視頻功能,傳入播放地址即可完成。
最后
歡迎大家關(guān)注我們團隊微信公眾號,以及博客地址,在這里我們會實時與大家分享優(yōu)質(zhì)的技術(shù)文章。大家也可以加入我們的技術(shù)交流群(QQ群:343640780),共同探討,共同進步。
團隊博客地址:http://www.52learn.wang
團隊GitHub:https://github.com/wu2LearnTeam