iOS M3U8格式視訊的下載以及播放
最近的專案中有用到.m3u8檔案的視訊,然後去了解了一下。這裡有篇文章可以感覺寫的很好。
張雲龍 :www.jianshu.com/p/b0db841ed6d3 。裡面有作者寫的Demo。
我這裡說下我是用的過程中遇到的一些問題,希望對初學者來說會有幫助。有不對的地方希望大神能夠指出,不勝感激.
1.u3m8地址 : 在ViewController類createPlayer方法中,self.playerUrl是m3u8檔案的地址,正確的地址在Safari中可以直接觀看視訊,Chrome瀏覽器中會下載一個.m3u8的檔案.如果Safari檔案中不能播放,那麼就是檔案出問題了。就不要問為什麼檔案下載下來了但是不能播放,換個m3u8的地址試下.
2.解析: ZYLM3U8Handler類praseUrl方法中,model.locationUrl是解析出來的.ts片段, 可以在這裡打個斷點,然後用 Chrome等瀏覽器開啟,下載你的.m3u8檔案。看裡面是不是對應的,我對.m3u8檔案中的各種欄位意思也不是很瞭解,如果擷取的是xxxx.ts的那一段,基本就是對的.如果不是,就要手動調整了.
3.下載: 解析出來的model.locationUrl段,可能是全部的下載地址,也可能是其中末尾的一部分需要自己拼接,這個很容易看出來,如果是拼接的話,一般就是用model.locationUrlu 中的那一段替換3m8地址中xxx.m3u8(如果後面還有欄位,全部不要, 這個不一定準確,如果有加密什麼的話,要自己去試驗)的這段. 在ZYLVideoDownLoader類startDownloadVideo方法中SegmentDownloader 初始化的時候,會傳入downloadUrl這裡的url是下載的路徑,所以必須要填完整的,如果已經是完整的路徑這裡要做出修改。每個完整的.ts 地址,可以在 Safari中播放相對應的視訊,其中可能會出現有的.ts檔案能夠下載成功,有的下載失敗的情況.可以在(真機除錯)Xcode ->Window ->Devices 選取 Installed Apps下面的APP(回看),然後點選下面的齒輪圖示 選擇 DownLoad Container 下載你專案中的檔案.然後檢視檔案是否齊全或者中間有沒有斷層。
4.打包/播放: 下載後會根據下載的內容重新建立一個自定義名字的.m3u8檔案。裡面的.ts檔案會和你下載的.ts 檔案一一對應,如果開始的不存在(比如沒有id0.ts)那麼不回播放。如果有缺失(比如id3.ts不存在)那麼只會播放前面的幾個檔案,後面的不回繼續播放.ViewController中的self.playerItem 的url 127.0.0.1 是本地路經,埠號使用你本地伺服器中的埠號就行,後面的檔案如果伺服器建立成功,檔案裡面也有資料- - 那麼很可能是你拼接的欄位出錯了。
5.如果只是單純的想下載.m3u8檔案而不會使用到直播,那麼ZYLDecodeTool類中的openDecodeTimer迴圈解碼的定時器可以關掉,同時ZYLVideoDownLoader類中的segmentDownloadFinished方法裡面self.sIndex >3改成self.sIndex > self.playList.segmentArray.count; 直接一次下載解析全部的.ts檔案.
最好是先把張雲龍大神的demo給看完了在看這個,不然根本不知道我寫的什麼鬼。
相關文章
- 使用python 下載m3u8格式視訊,併合成Python
- vue使用video.js解決m3u8視訊播放格式VueIDEJS
- Chrome無法播放m3u8格式的直播視訊流的問題解決Chrome
- Vue+Video.js播放m3u8視訊流VueIDEJS
- hls協議視訊(.m3u8)在瀏覽器播放協議瀏覽器
- iOS開發系列--音訊播放、錄音、視訊播放、拍照、視訊錄製(轉)iOS音訊
- IOS 整合 Bilibili IJKPlayer播放器,播放rtmp視訊流iOS播放器
- iOS開發 webview禁止視訊全屏播放iOSWebView
- iOS整合FFmpeg及視訊格式轉碼iOS
- iOS開發 iOS整合FFmpeg及視訊格式轉碼iOS
- C#開發可播放攝像頭及任意格式視訊的播放器C#播放器
- MPV 播放器:Linux 下的極簡視訊播放器播放器Linux
- Allavsoft Video Downloader Converter for Mac(視訊下載和格式轉換)IDEMac
- 電腦倍速播放視訊不變調的軟體下載 | 手機倍速播放視訊最好的軟體(不變調且可以記憶倍速播放效果)
- iOS--React Native視訊播放器外掛iOSReact Native播放器
- JS播放m3u8JS
- iOS AVAudioPlayer(音訊播放)iOS音訊
- 使用flv.js實現flv格式的監控視訊流播放JS
- Downie 4視訊下載軟體 Mac最好用的視訊下載軟體Mac
- WPF播放視訊
- Swift 開發視訊 iOS 開發視訊教程完整版下載 (共四季)SwiftiOS
- iOS 圖解一個功能很全的視訊播放器的使用iOS圖解播放器
- Android開發 海康威視 多路視訊播放(同時播放視訊)Android
- Android 視訊教程下載Android
- VidiCable 視訊下載工具
- 視訊下載終極利器!簡單粗暴,支援全網視訊下載!
- 視訊播放學習
- unity中播放視訊Unity
- 視訊播放用例
- 基於M3u8的影片加密及播放加密
- 一鍵下載你的youtube視訊
- iOS下WebRTC音視訊通話(一)iOSWeb
- 邊下載邊播放的播放器Android邊下邊播播放器Android
- Java獲取m3u8視訊時長Java
- 如何下載知乎視訊
- 騰訊視訊播放下載自動化測試 - 熊玉輝
- 抖音視訊批量下載,手把手教你下載抖音無水印視訊
- 如何使用 iOS 15 和 macOS Monterey 將視訊隔空播放到 MaciOSMac
- YouTube-dl 命令下載 YouTube 的視訊