[英]iOS 10 download encrypted HLS stream
我目前正在嘗試將加密的 HLS 流下載到 iOS 設備。 iOS 10 似乎支持開箱即用(請參閱https://developer.apple.com/videos/play/wwdc2016/504 ),但我無法讓它工作。 我基本上使用AssetPersistenceManager
從蘋果的示例代碼( https://developer.apple.com/library/content/samplecode/HLSCatalog/Introduction/Intro.html ),其中要求makeAssetDownloadTask
的AVAssetDownloadURLSession
。 它在在線模式下工作正常,但從存儲的文件播放資產時播放失敗。
現在 WWDC 視頻表明您應該使用AVAssetResourceLoaderDelegate
來提供離線加密密鑰。 由於AVAssetResourceLoader
似乎不支持 http 和 https(參見例如AVAssetResourceLoaderDelegate 方法在設備上不起作用),我嘗試對密鑰 URI 使用自定義方案,並在shouldWaitForLoadingOfRequestedResource
的AVAssetResourceLoaderDelegate
提供本地 aes 密鑰。 這里它也適用於在線流式傳輸,但無論我是使用遠程密鑰 URL 還是使用本地密鑰覆蓋它,AVPlayer 總是無法離線播放 AVAsset。
有沒有人有下載加密 HLS 的經驗,或者有關於如何提供加密密鑰以離線播放本地加密 AVURLAsset 的工作示例?
我正在使用的示例 HSL 文件在這里: http : //demo.unified-streaming.com/video/tears-of-steel/tears-of-steel-aes.ism/.m3u8
首先,您需要下載密鑰並保存。
其次,下載完 HLS 后,您將獲得一個文件夾名稱,如“XXXXXX.movpkg”。 在文件夾中,有兩個文件需要修改。
在兩個文件里面,有一行
#EXT-X-KEY:METHOD=AES-128,URI="XXXXXX",IV=XXXXXXXXX
將 URI 替換為您的本地密鑰位置 URL
就是這樣! 現在您可以從本地獲取密鑰並正常播放。
也許它會幫助某人,
要離線下載和播放 HLS 視頻,您需要按照以下步驟操作,
我在一個工作應用程序中使用它,所以你可以使用這種方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.