LoginSignup
11
10

More than 5 years have passed since last update.

AVAssetResourceLoaderでHLSの再生検証

Posted at

こんにちは。セキュアAVFoundationマスターの@toshi0383 です。
調子乗りました、ここ数年の新参者です。
斬新なユーチューブプレイヤーアプリとか作って有名になりたいと思うこと、ありませんか?私は半年に1回くらいあります。

ユーチューブなら特にセキュアにすることもないんですけど、以下のような記事を見つけたので、興味本位でAVAssetResourceLoaderの挙動を検証してみました。

http://stackoverflow.com/questions/9000614/how-to-let-avplayer-retrieve-playlist-secured-by-ssl
http://qiita.com/satoshi0212/items/6e662dd05d1f64fcc2bc

こういうとき、普通はローカルプロキシ立ててループバックするところなのですが、AVAssetResourceLoaderでイケるというのです。ほんとにい?

コードはこちらです。Platforms State of the Union - WWDC 2016 の一番低いビットレートのプレイリストをサンプルとして使いました。
https://github.com/toshi0383/StreamPlaybackSampler

結論から言うと、AVAssetResourceLoaderを通した場合、HLSコンテンツの再生はできませんでした。
sss.png

m3u8と1つ目のtsは取れてきているし、特にエラーログも出ません。なぜ。。

2016-07-27 17:44:59.501 HLSTest[19147:1838663] -[ResourceLoaderController resourceLoader:shouldWaitForLoadingOfRequestedResource:]
2016-07-27 17:44:59.502 HLSTest[19147:1838663] URL:hello://devstreaming.apple.com/videos/wwdc/2016/102w0bsn0ge83qfv7za/102/0640/0640.m3u8
2016-07-27 17:44:59.502 HLSTest[19147:1838663] currentOffset:0
2016-07-27 17:44:59.503 HLSTest[19147:1838663] requestedOffset:0
2016-07-27 17:44:59.503 HLSTest[19147:1838663] requestedLength:9223372036854775807
2016-07-27 17:45:00.233 HLSTest[19147:1838722] data.length:15983
2016-07-27 17:45:00.234 HLSTest[19147:1838722] httpres.expectedContentLength:15983
2016-07-27 17:45:00.239 HLSTest[19147:1838663] -[ResourceLoaderController resourceLoader:shouldWaitForLoadingOfRequestedResource:]
2016-07-27 17:45:00.239 HLSTest[19147:1838663] URL:hello://devstreaming.apple.com/videos/wwdc/2016/102w0bsn0ge83qfv7za/102/0640/0640_00001.ts
2016-07-27 17:45:00.239 HLSTest[19147:1838663] currentOffset:0
2016-07-27 17:45:00.239 HLSTest[19147:1838663] requestedOffset:0
2016-07-27 17:45:00.239 HLSTest[19147:1838663] requestedLength:9223372036854775807
2016-07-27 17:45:00.528 HLSTest[19147:1838701] data.length:1639736

さらにググったところ、AVAssetResourceLoaderはtsファイルには対応していないとの情報を見つけました。なんじゃそれ。
http://stackoverflow.com/questions/29752028/unknown-error-12881-when-using-avassetresourceloader

結局よくわからないので、デベロッパフォーラムに投稿しました。
反応待ちの状態なのですが、誰か詳しい人いないかなーと思って公開しました。

以上になります。
進展あったらまた追記します。

11
10
6

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
10