Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
HTTP Live Streaming in iOS 2017/03/11 Battle Conference U30 Ryo Aoyama / ra1028 CyberAgent, Inc
Slide 2
Slide 2 text
No content
Slide 3
Slide 3 text
FRESH! ϩάΠϯෆཁɾߴը࣭Ͱੜ์ૹ͕ݟ์
Slide 4
Slide 4 text
Contents ̋ ͬ͘͟ΓHLSʹ͍ͭͯ ̋ ͬͱͬ͘͟ΓAVFoundationʹ͍ͭͯ ̋ σϞ
Slide 5
Slide 5 text
HLS
Slide 6
Slide 6 text
AppleۘͷετϦʔϛϯάಈը৴ϓϩτίϧ HTTP Live Streaming Live or VOD(Video On Demand) HLS ηάϝϯτϑΝΠϧ ʴ ϓϨΠϦετ
Slide 7
Slide 7 text
ಈըϑΝΠϧΛ͋ΔҰఆ࣌ؒͷࡉ͔͍MPEG2-TS ηάϝϯτϑΝΠϧʹׂͨ͠ͷ ηάϝϯτϑΝΠϧ .ts
Slide 8
Slide 8 text
ηάϝϯτϑΝΠϧͷҐஔɺ࠶ੜ࣌ؒɺߋ৽සͳͲͷ ใ͕هࡌ͞ΕͨϝλσʔλϑΝΠϧ ϓϨΠϦετ .m3u8
Slide 9
Slide 9 text
ΦϦδφϧͷಈըϑΝΠϧ ηάϝϯτϑΝΠϧ܈ʹׂ
Slide 10
Slide 10 text
ߋ৽සใΛͬͯ ఆظతʹϓϨΠϦετͷߋ৽Λࢹ
Slide 11
Slide 11 text
ߋ৽͕͋Ε࠷৽ͷ tsϑΝΠϧΛऔಘ͢Δ
Slide 12
Slide 12 text
ߋ৽͕ͳ͚Εࢹ͠ͳ͕Β ࣍ͷߋ৽·Ͱͭ ͜ͷ͕࣌ؒൃੜ͠ͳ͍Α͏ͷʹߋ৽සͱ TSϑΝΠϧ࠶ੜ࣌ؒௐ͢Δɻ
Slide 13
Slide 13 text
͜ͷλά͕͋Δ͜ͱͰϓϨΠϦετ ऴྃ͢Δࣄ͕Ͱ͖ΔͨΊɺVODͱ Έͳ͢͜ͱ͕Ͱ͖Δɻ
Slide 14
Slide 14 text
جຊతʹɺ ಈըΛMPEG2-TSϑΝΠϧʹׂɺϓϨΠϦετΛߋ৽ ΫϥΠΞϯτଆͰϓϨΠϦετΛࢹɺߋ৽͞ΕͨΒ࠷৽ ͷ.tsϑΝΠϧΛ࠶ੜ ͜Ε͚ͩͰ݁͢Δγϯϓϧͳϓϩτίϧɻ HLS·ͱΊ
Slide 15
Slide 15 text
iOSͰHLS͔ΒಈըΛ࠶ੜ͢Δʹ AVFoundation
Slide 16
Slide 16 text
ࣸਅɺԻָɺಈըͷAPIΛఏڙ͢ΔɺiOS, macOS, tvOS ͚ͷFrameworkɻ HLSAppleͷͨΊެࣜͰڧྗʹαϙʔτ͞Ε͍ͯΔɻ ͨͩ͠ɺཧղ͍͠APIͱ҉ͷ༷͕͖ͭ·ͱ͏… AVFoundation
Slide 17
Slide 17 text
AVAsset ಈըࣗମͷϝσΟΞσʔλϝλσʔλΛϩʔυ͠ɺอ࣋ ͢ΔΫϥεɻ ͜ͷΫϥεΛҾͱͯ͠ ͷΠϯελϯεΛ࡞ Δɻ AVPlayerItem
Slide 18
Slide 18 text
AVPlayerItem ಈըͷ࠶ੜεςʔλελΠϜυϝλσʔλͳͲΛऔಘ͢ ΔΫϥεɻ ഔհͱͯ͠AVAssetͷใΛऔಘ͢Δ͜ͱ͕Ͱ͖Δɻ ͜ͷΫϥεΛҾͱͯ͠ ͷΠϯελϯεΛ࡞Δɻ AVPlayer
Slide 19
Slide 19 text
AVPlayer ಈըͷ࠶ੜɺఀࢭͳͲΛཧ͢ΔίϯτϩʔϥΫϥεɻ Իɺ࠶ੜϨʔτͷઃఆγʔΫͳͲ͜ͷΫϥεΛհ͠ ͯߦ͏ɻ ͜ͷΫϥεΛ ʹઃఆ͢Δ͜ͱͰಈըΛඳը ͢Δ͜ͱ͕Ͱ͖Δɻ AVPlayerLayer
Slide 20
Slide 20 text
AVPlayerLayer AVPlayer͔ΒͷใΛͬͯಈըΛඳը͢ΔUIΛఏڙ͢Δ Ϋϥεɻ CALayerͷαϒΫϥεͳͷͰUIViewͷlayerClassΛ overrideͯ͠༻͢Δ͜ͱ͕ଟ͍ɻ
Slide 21
Slide 21 text
AVPlayerItem AVAsset AVPlayer ಈըใͷऔಘྃ(࠶ੜՄೳ) AVPlayerLayer UIView ΠϯελϯεΛੜ (ϝΠϯεϨουʂ) දࣔ४උྃ UIʹಈըใΛ༩͑ɺ ඳըͤ͞Δ
Slide 22
Slide 22 text
AVPlayerItem AVAsset AVPlayer AVPlayerLayer UIView ಈըΛมߋ͢Δ߹͜Ε Βͷάϧʔϓશͯഁغ͢Δ ಛʹͷ̎ͭಉҰεϨου Ͱಉ࣌ʹഁغ
Slide 23
Slide 23 text
ࡉ͔ͳ੍ޚΛߦΘͳ͍࠶ੜ·Ͱɺ͔ͳΓ؆қతʹHLSΛ ѻ͏ࣄ͕Ͱ͖Δɻ νϡʔχϯάͷͨΊʹϚϧνεϨουͰѻ͏ʹҙ͕ඞ ཁɻ AVFoundation·ͱΊ
Slide 24
Slide 24 text
Demo
Slide 25
Slide 25 text
৴αʔόʔͱͯ͠ΧϝϥͰࡱͬ ͨಈը͔ΒHLSΛ৴͢Δɻ Demo αʔόʔiPhoneʹΞΫηεͯ͠ AVFoundationͰ࠶ੜ͢Δɻ
Slide 26
Slide 26 text
Demo GitHub Repository: https://github.com/ra1028/LiveStreamingApp
Slide 27
Slide 27 text
iOSͷAVFoundationɺAndroidͷExoPlayerͳͲʹΑͬͯ ωΠςΟϒͰڧྗʹαϙʔτ͞Ε͍ͯΔɻ iPhoneαʔόʔͰ৴Ͱ͖ͯ͠·͏΄Ͳγϯϓϧͳಈ ը৴ϓϩτίϧɻ Adaptive bitrate streamingͰճઢʹΑΓө૾࣭ ΛΓସ͑ͯɺ҆ఆͨ͠࠶ੜΛ୲อͰ͖Δɻ ·ͱΊ