Upgrade to Pro — share decks privately, control downloads, hide ads and more …

ニコニコ動画iPhoneアプリの作り方

D2f212ce418f3daa29c23914c9b6892b?s=47 kenmaz
October 12, 2011

 ニコニコ動画iPhoneアプリの作り方

2011/10/12に開催された「スマートフォン2011春」での講演資料です。
http://expo.nikkeibp.co.jp/sma/spring/

D2f212ce418f3daa29c23914c9b6892b?s=128

kenmaz

October 12, 2011
Tweet

Transcript

  1. χίχίಈը iPhoneΞϓϦͷ࡞Γํ dwango দલ݈ଠ࿠

  2. ࣗݾ঺հ • দલ݈ଠ࿠ (id: kenmaz) • υϫϯΰ χίχίࣄۀຊ෦ اը։ൃ෦ χίχίiPhone

    ։ൃϦʔμʔ • 2010/06 த్ೖࣾ • લ৬͸େखϝʔΧʔܥSIerͰݚڀ։ൃ
  3. ͜Μͳਓ޲͚ʹ࿩͠·͢ • ಈըɾԻ੠ͳͲϚϧνϝσΟΞίϯςϯ πΛѻ͏iPhoneΞϓϦΛ։ൃ͠Α͏ͱߟ ͍͑ͯΔਓ • PC޲͚ͷwebαʔϏεΛiPhone/εϚʔτ ϑΥϯ޲͚ʹఏڙ͠Α͏ͱߟ͍͑ͯΔਓ • χίಈͷཪଆ͕ؾʹͳΔਓ

  4. Agenda 1. χίχίಈըɾχίχίੜ์ૹͱ͸ 2. χίχίಈը iPhoneΞϓϦ 3. χίχίੜ์ૹ iPhoneΞϓϦ 4.

    Appleͷن໿ 5. HTTP Live Streamingৄࡉ 6. ࣮੷ͱࠓޙ
  5. Agenda 1. χίχίಈըɾχίχίੜ์ૹͱ͸ 2. χίχίಈը iPhoneΞϓϦ 3. χίχίੜ์ૹ iPhoneΞϓϦ 4.

    Appleͷن໿ 5. HTTP Live Streamingৄࡉ 6. ࣮੷ͱࠓޙ
  6. None
  7. (ג)χϫϯΰ͕ӡӦ͢Δಈըڞ༗αʔϏε

  8. ࠷େͷಛ௃ɿίϝϯτ

  9. • ΈΜͳͰΘ͍Θ͍ίϝϯτ͠ͳ͕Βಈ ըΛݟָͯ͠Ή • “ඇಉظܕίϛχϡέʔγϣϯ”

  10. ಈը࠶ੜॲཧ • ಈը࠶ੜϓϨΠϠʔ͸FlashͰ։ൃ • ಈը࠶ੜϨΠϠʔ • ίϝϯτඳըϨΠϠʔ • UIϨΠϠʔ

  11. ΘΖͨɹɹɹɹɹɹɹɹɹɹɹ WWWW ɹɹɹɹɹɹɹɹɹ͜Ε͸ͻͲ͍ Ωλʔʔʔʔʔʔʔʔʔɹɹɹɹɹɹɹ ΧΦε͆͆͆ wwwwwwwɹɹɹɹɹɹɹɹɹɹɹͺͶ͐ ɹɹɹɹɹ࡞ऀ͸ωਃ ಈը࠶ੜॲཧ

  12. ΘΖͨɹɹɹɹɹɹɹɹɹɹɹ WWWW ɹɹɹɹɹɹɹɹɹ͜Ε͸ͻͲ͍ Ωλʔʔʔʔʔʔʔʔʔɹɹɹɹɹɹɹ ΧΦε͆͆͆ wwwwwwwɹɹɹɹɹɹɹɹɹɹɹͺͶ͐ ɹɹɹɹɹ࡞ऀ͸ωਃ ಈը࠶ੜॲཧ

  13. None
  14. (ג)χϫϯΰ͕ӡӦ͢Δ ಈըϥΠϒετϦʔϛϯάαʔϏε

  15. ެࣜੜ์ૹ • ӡӦ͕൪૊੍࡞ɾ഑৴͢Δੜ์ૹ • ͓স͍ɺԻָɺΞχϝɺήʔϜɺ੓࣏ɺ౼࿦ɺใಓɺ etc... • ຖ݄400ʙ500൪૊์ૹ͍ͯ͠Δ

  16. Ϣʔβੜ์ૹ • ҰൠͷϢʔβ͕ੜ์ૹΛ഑৴ • ์ૹ͢Δਓʹʮੜओʯ • ຖ೔਺ສ൪૊͕์ૹ͞Ε͍ͯΔ

  17. ΋ͪΖΜίϝϯτ΋ • χίಈͱಉ͘͡ɺίϝϯτʹΑΔί ϛχϡέʔγϣϯ͕Մೳ • χίੜ͸ಉظܕίϛχϡέʔγϣϯ ʢχίಈ͸ඇಉظܕʣ

  18. ϏδωεϞσϧ • ϓϨϛΞϜձһऩೖ • ֹ݄525ԁ • ઌ೔ϓϨϛΞϜձһ120ສਓಥഁ • ༗ྉ൪૊ɾ༗ྉੜ์ૹ •

    ޿ࠂ • etc..
  19. ϞόΠϧରԠ • χίχίಈըϞόΠϧʢχίϞόʣ • υίϞɾιϑτόϯΫɾAU • ΩϟϦΞ՝ۚʹରԠ • ϓϨϛΞϜձһͷ൒਺͕ΩϟϦΞ՝ۚ iPhone/Andorid͸ɾɾʁ

  20. χίχίಈը ͱ iPhone • ͋ΒΏΔσόΠεͰχίಈΛָ͠ΊΔΑ ͏ʹ͍ͨ͠ • iPhoneͰ΋χίಈΛݟ͍ͨʂ • χίಈɺχίੜͱ΋ʹɺಈը࠶ੜʹ͸

    FlashΛ࢖͍ͬͯΔ • →iPhoneͰ͸χίಈΛࢹௌͰ͖ͳ͍ʂ
  21. χίχίಈը ͱ iPhone • ͱ͍͏͜ͱͰઐ༻ΞϓϦΛ։ൃ • 2009/4 χίχίಈըiPhoneΞϓϦ • 2010/5

    χίχίੜ์ૹiPhoneΞϓϦ
  22. Agenda 1. χίχίಈըɾχίχίੜ์ૹͱ͸ 2. χίχίಈը iPhoneΞϓϦ 3. χίχίੜ์ૹ iPhoneΞϓϦ 4.

    Appleͷن໿ 5. HTTP Live Streamingৄࡉ 6. ࣮੷ͱࠓޙ
  23. χίχίಈըiPhoneΞϓϦ

  24. None
  25. ओͳػೳ • ಈը࠶ੜ • ίϝϯτදࣔɾ౤ߘ • ϥϯΩϯάදࣔ • ϚΠϦετදࣔɾฤू •

    ݕࡧ
  26. ಈը࠶ੜ • ̎छྨͷ࠶ੜϞʔυ͕͋Δ • ௿ը࣭Ϟʔυ • ߴը࣭Ϟʔυ ϓϨϛΞϜձһ +WiFi઀ଓͷΈ

  27. None
  28. ௿ը࣭Ϟʔυ • χίχίಈըϞόΠϧͷಈը഑৴γε ςϜΛ࢖ͬͯಈըΛ࠶ੜ͢ΔϞʔυ • ಈըσʔλ͸osecܗࣜ

  29. osecܗࣜʁ • Ψϥέʔͷಈը࠶ੜॲཧʹ͸͍Ζ͍Ζ੍ݶ͕͋Δ • ΨϥέʔͰ΋Flash͸࠶ੜͰ͖Δ͕ಈըͷ্ʹί ϝϯτΛॏͶͯඳըͰ͖ͳ͍ • σʔλ௨৴ྔ੍͕ݶ͞Ε͍ͯΔ • χίϞόಠࣗͷಈըϑΥʔϚοτ͕ඞཁ

    → osecܗࣜΛಠࣗ։ൃ ͓ͤͪ
  30. • ύϥύϥອըͷΑ͏ʹJPEGΛ̍ίϚͣͭ࠶ੜͯ͠ಈ ըͬΆ͘ݟͤΔ • ө૾ = JPEGɺԻ੠ = ADPCM •

    ಈըσʔλΛ̍ඵ (One-Sec)͝ͱʹ෼ׂɾύέοτ Խ ը૾ ը૾ ը૾ ը૾ ը૾ Ի੠ ̍ඵ෼ ը૾ ը૾ ը૾ Ի੠ ̍ඵ෼ ૾ ը૾ ը૾ ը૾ Ի੠ ̍ඵ෼ osecܗࣜʁ ͓ͤͪ
  31. ௿ը࣭Ϟʔυ χίಈ ಈըετϨʔδ χίϞό ഑৴αʔόʔ osecܗࣜม׵ 1.ಈըσίʔυ 2.ϑϨʔϜը૾औΓग़͠ɾॖখɾJPEGѹॖ 3.Ի੠ADPCMม׵ 4.ύέοτԽ

    mp4/flv mp4/flv osec over http osec over http
  32. ௿ը࣭Ϟʔυ • χίϞόͷΠϯϑϥΛྲྀ༻͢Δ͜ͱͰɺ ௿ίετͰiPhoneʹରԠͰ͖ͨ... • ͔͠͠ಈըͱͯ͠ͷ඼࣭͸˚ • ϞʔγϣϯJPEGͰ͸΍͸ΓͭΒ͍

  33. ߴը࣭Ϟʔυ • mp4/H.264/AACͷಈըΛͦͷ··iPhone Ͱ࠶ੜ͢ΔϞʔυ • χίಈͷಈըετϨʔδ͔ΒಈըΛ௚ ઀औಘɾ࠶ੜ • PCͱಉ౳ͷը࣭ͰಈըΛָ͠ΊΔ

  34. • mp4/H.264/AACͷಈըΛͦͷ··iPhone Ͱ࠶ੜ͢ΔϞʔυ • χίಈͷಈըετϨʔδ͔ΒಈըΛ௚઀ औಘɾ࠶ੜ • PCͱಉ౳ͷը࣭ͰಈըΛָ͠ΊΔ ߴը࣭Ϟʔυ

  35. دΓಓɿ̍෼Ͱ෼͔Δಈը ܗࣜ • mp4 : ίϯςφϑΥʔϚοτ • H.264 : ϏσΦίʔσοΫ

    • AAC : ΦʔσΟΦίʔσοΫ mp4 H.264 ϏσΦ AAC ΦʔσΟΦ
  36. دΓಓɿ̍෼Ͱ෼͔Δಈը ܗࣜ ίϯςφ ϑΥʔϚοτ mp4, m4v, flv, f4v, swf, avi,

    mov, 3gpp, webm ϏσΦ ίʔσοΫ H.264 (MPEG4-AVC), H.263, On2 VP6, VP8, Theora, MPEG-1/2, WMV ΦʔσΟΦ ίʔσοΫ AAC, MP3, ADPCM, Nellymoser, Speex, Apple Lossless, Vorbis, WMA
  37. • mp4/H.264/AACͷಈըΛͦͷ··iPhone Ͱ࠶ੜ͢ΔϞʔυ • χίಈͷಈըετϨʔδ͔ΒಈըΛ௚઀ औಘɾ࠶ੜ • PCͱಉ౳ͷը࣭ͰಈըΛָ͠ΊΔ ߴը࣭Ϟʔυ

  38. ߴը࣭Ϟʔυ χίಈ ಈըετϨʔδ ͍͔ͭ͘ͷ࣮૷্ͷ໰୊ mp4 mp4/flv

  39. ໰୊̍. ࠶ੜՄೳͳಈըܗ ࣜ • iPhoneͰ࠶ੜՄೳͳܗࣜ • ಈըίʔσοΫɿH.264 • Ի੠ίʔσοΫɿmp3/AAC •

    Ϣʔβ͔Β౤ߘ͞ΕΔಈըܗࣜ͸ଟछଟ༷ (flv/mp4/ DivX/MPEG1,2/WMV..) • iPhoneͰ࠶ੜͰ͖ͳ͍Մೳੑ͕͋Δ ౤ߘ͞Εͨಈը͸αʔόαΠυͰશͯH.264/ AACͰ࠶Τϯίʔυ͢Δ͜ͱʹͨ͠
  40. ໰୊̎ɿMPMoviePlayerͷ࢓༷ • ҰճͷಈըऔಘͰෳ਺ճͷHTTPϦΫΤετ (RangeϦΫΤετ)͕ൃੜ͢Δ • ಈըετϨʔδͷαʔόʔෛՙ૿େ • CookieΛࣗ༝ʹ੍ޚͰ͖ͳ͍ • χίಈͷಈըετϨʔδ͸CookieʹΑΔ

    ೝূΛߦ͍ͬͯΔ • ೝূʹࣦഊͯ͠ಈը͕औಘͰ͖ͳ͍ ※MPMoviePlayer: iOS͕ఏڙ͢Δಈը࠶ੜ༻Ϋϥε
  41. ΞϓϦ಺෦ʹϩʔΧϧϓϩΩγΛ࣮૷ ໰୊̎ɿMPMoviePlayerͷ࢓༷ MPMoviePlayer ϩʔΧϧϓϩΩγ χίಈ ಈըετϨʔδ ಈըऔಘ ಈըऔಘ ಈըऔಘ ಈըऔಘ

    ಈըऔಘ ಈըσʔλฦ৴ ೝূ
  42. ߴը࣭Ϟʔυ • χίχίಈը͸H.264Λੵۃతʹαϙʔ τ • χίχίiPhone΋ࠓޙ͸ߴը࣭ϞʔυΛ த৺ͱ͢Δ • ௿ը࣭Ϟʔυʢosecܗࣜʣ͸ঃʑʹഇࢭ ͍ͯ͘͠༧ఆ

  43. ओͳػೳ • ಈը࠶ੜ • ίϝϯτදࣔɾ౤ߘ • ϥϯΩϯάදࣔ • ϚΠϦετදࣔɾฤू •

    ݕࡧ
  44. ίϝϯτදࣔ • ಈը্ʹίϝϯτΛॏͶͯදࣔ • ίϝϯτʹχίಈͷΩϞ • PC൛ΑΓ׈Β͔ͳදࣔʂ • PC൛ɿҰఆִؒͰίϝϯτදࣔҐஔΛͣΒͯ͠ඳ ը

    • iPhone൛ɿCoreAnimation FrameworkΛ࢖ͬͯίϝ ϯτඳըΛGPUʹ͓·͔ͤ • σϞ wwwwww wwwwwwww ͜Ε͸ͻͲ͍w Ωλʔʔʔʔʔʔ
  45. CoreAnimationͰίϝϯτඳըΛψϧψϧ [comment posX:480.0]; [UIView beginAnimations:@"comment" context:NULL]; [UIView setAnimationDuration:4.0f]; [UIView setAnimationCurve:

    UIViewAnimationCurveLinear]; [comment posX: -comment.width]; [UIView commitAnimations]; wwwww 480px wwwww 480.0 0.0 120px -120.0 600.0 ̐ඵ
  46. ओͳػೳ • ಈը࠶ੜ • ίϝϯτදࣔɾ౤ߘ • ϥϯΩϯάදࣔ • ϚΠϦετදࣔɾฤू •

    ݕࡧ
  47. WebAPIʹΑΔαʔϏεؒ࿈ ܞ • ϚΠϦετɺݕࡧɺϥϯΩϯά • χίχίಈըͷ಺෦WebAPIΛ༻͍࣮ͯ ૷͍ͯ͠Δ • χίχίಈըʹؔ࿈͢ΔαʔϏεؒͷ࿈ ܞ͸جຊWebAPI

    • →ૄ݁߹ͳઃܭ
  48. χίχίiPhone APIαʔόʔ χίχίಈը ڞ௨ೝূAPI χίχίಈը API χίϞό API WebAPIʹΑΔαʔϏεؒ࿈ ܞ

    χίχί νϟϯωϧAPI
  49. Agenda 1. χίχίಈըɾχίχίੜ์ૹͱ͸ 2. χίχίಈը iPhoneΞϓϦ 3. χίχίੜ์ૹ iPhoneΞϓϦ 4.

    Appleͷن໿ 5. HTTP Live Streamingৄࡉ 6. ࣮੷ͱࠓޙ
  50. χίχίੜ์ૹiPhoneΞϓϦ

  51. • ࢹௌػೳ • ௿ը࣭Ϟʔυ • ߴը࣭Ϟʔυ • ์ૹػೳ • iPhone͔Βੜ์ૹΛ഑৴

    ओͳػೳ ϓϨϛΞϜձһ +WiFi઀ଓ࣌ͷΈ ϓϨϛΞϜձһ ͷΈ
  52. • ࢹௌػೳ • ௿ը࣭Ϟʔυ • ߴը࣭Ϟʔυ • ์ૹػೳ • iPhone͔Βੜ์ૹΛ഑৴

    ओͳػೳ
  53. ࢹௌػೳɿ௿ը࣭Ϟʔυ • χίϞόͷΠϯϑϥΛ࢖ͬͯੜ์ૹΛ ࢹௌ͢Δػೳ • ಈըΞϓϦͱಉ༷osecܗࣜ • ө૾඼࣭͸͋·Γྑ͘ͳ͍

  54. ࢹௌػೳɿ௿ը࣭Ϟʔυ χίੜ ഑৴αʔόʔ χίϞόੜ ഑৴αʔόʔ RTMP→osecม׵ RTMP RTMP ocec over

    HTTP ocec over HTTP Flash Media Server
  55. RTMP (Real Time Messaging Protocol) • ಈըɾԻ੠ͷϥΠϒετϦʔϛϯάͷͨΊͷ ϓϩτίϧ • Adobe͕࢓༷Λࡦఆ

    • FlashϓϨΠϠʔ౳Ͱ࠾༻͞Ε͍ͯΔ • χίੜ(PC)͸શ໘తʹRTMPΛ࠾༻ • iPhoneɾΨϥέʔ͸RTMPͷ௚઀࠶ੜ͸ෆՄ
  56. • ࢹௌػೳ • ௿ը࣭Ϟʔυ • ߴը࣭Ϟʔυ • ์ૹػೳ • iPhone͔Βੜ์ૹΛ഑৴

    ओͳػೳ
  57. ࢹௌػೳɿߴը࣭Ϟʔυ • H.264Ͱ഑৴͞Ε͍ͯΔੜ์ૹΛ௚઀ iPhoneͰࢹௌ͢ΔϞʔυ • PCͱಉ౳ͷը࣭Ͱੜ์ૹΛࢹௌͰ͖Δ • ์ૹݩͰ໌ࣔతʹH.264Ͱ഑৴͢Δඞཁ͕͋ΔʢσϑΥϧτͷίʔσο Ϋ͸VP6ʣɻ •

    χίಈΞϓϦͷߴը࣭ϞʔυͰ͸͢΂ͯͷಈըΛ࠶ม׵͠H.264Խͯ͠ ͍͕ͨɺੜ์ૹͰ͸ίετֻ͕Γա͗ΔͨΊɺݱࡏ͸H.264ͷΈରԠɻ
  58. ࢹௌػೳɿߴը࣭Ϟʔυ χίੜ ഑৴αʔόʔ Wowza Media Server RTMP→HLSม׵ RTMP RTMP HLS

    Flash Media Server
  59. HLS (HTTP Live Streaming) • HTTP͚ͩͰٖࣅతʹϥΠϒετϦʔϛ ϯάΛ࣮ݱ͢Δϓϩτίϧ • iPhoneͰ͸ಈըϥΠϒετϦʔϛϯάʹ HLSͷ࢖༻Λਪ঑͍ͯ͠Δ

  60. Wowza Media Server • Wowza Media Systems͕ࣾ։ൃ͢Δ঎༻ ͷετϦʔϛϯάαʔόʔ੡඼ • Flash

    Media ServerͷΫϩʔϯ • RTMP → HLSม׵ػೳ
  61. • ࢹௌػೳ • ௿ը࣭Ϟʔυ • ߴը࣭Ϟʔυ • ์ૹػೳ • iPhone͔Βੜ์ૹΛ഑৴

    ओͳػೳ
  62. ์ૹػೳ • iPhone͔Βੜ์ૹ͢Δػೳ • PCΧϝϥ㱻iPhoneΧϝϥ੾Γସ͑ػೳ • લ໘ɾഎ໘Χϝϥ੾Γସ͑

  63. None
  64. ์ૹػೳ • Ͳ͏΍࣮ͬͯ૷͢Δ͔ʁ

  65. PC ์ૹػೳͷ࢓૊Έ χίੜ(PC൛)Ͱ͸... WebΧϝϥͷ ө૾ΛΩϟϓνϟ ϑϨʔϜը૾ χίੜ ഑৴αʔόʔ RTMP Flash

    Media Server RTMP ಈըσʔλ ಈըѹॖ (Τϯίʔυ)
  66. iPhone iPhone൛ϓϩτλΠϓ̍ ΫϥΠΞϯταΠυѹॖํࣜ iPhoneΧϝϥͷ ө૾ΛΩϟϓνϟ ϑϨʔϜը૾ χίੜ ഑৴αʔόʔ RTMP Flash

    Media Server RTMP ಈըσʔλ ಈըѹॖ (Τϯίʔυ)
  67. தܧαʔόʔ iPhone iPhone൛ϓϩτλΠϓ̎ αʔόʔαΠυѹॖํࣜ iPhoneΧϝϥͷ ө૾ΛΩϟϓνϟ ϑϨʔϜը૾ χίੜ ഑৴αʔόʔ RTMP

    Flash Media Server RTMP ಈըσʔλ ಈըѹॖ (Τϯίʔυ) HTTP
  68. ̎ํࣜͷൺֱ • ΫϥΠΞϯταΠυѹॖํࣜ • ௕ॴɿதܧαʔόʔ͕ෆཁ • ୹ॴɿiPhone಺Ͱѹॖ͢ΔͷͰCPUෛՙߴ • αʔόʔαΠυѹॖํࣜ •

    ௕ॴɿiPhone͸Χϝϥө૾ΛΩϟϓνϟ͠ૹ ৴͢Δ͚ͩͳͷͰCPUෛՙ௿ • ୹ॴɿதܧαʔόʔ͕ඞཁ
  69. αʔόʔαΠυѹॖํࣜΛ࠾༻ • ΫϥΠΞϯταΠυѹॖํࣜ • ௕ॴɿதܧαʔόʔ͕ෆཁ • ୹ॴɿiPhone಺Ͱѹॖ͢ΔͷͰCPUෛՙߴ • αʔόʔαΠυѹॖํࣜ •

    ௕ॴɿiPhone͸Χϝϥө૾ΛΩϟϓνϟ͠ૹ ৴͢Δ͚ͩͳͷͰCPUෛՙ௿ • ୹ॴɿதܧαʔόʔ͕ඞཁ iPhone3GS΍iPod TouchͳͲ CPUੑೳͷ௿͍୺຤Ͱ΋ ࢖͑ΔΑ͏ʹ͍ͨ͠ʂ
  70. Agenda 1. χίχίಈըɾχίχίੜ์ૹͱ͸ 2. χίχίಈը iPhoneΞϓϦ 3. χίχίੜ์ૹ iPhoneΞϓϦ 4.

    Appleͷن໿ 5. HTTP Live Streamingৄࡉ 6. ࣮੷ͱࠓޙ
  71. Appleͷن໿ • iOSΞϓϦΛ։ൃ͢Δ্ͰAppleͷن໿ ΛकΔ͜ͱ͸ඞਢ • App Store Review Guidelines (※1)

    • HTTP Live Streaming Overview (※2) ※1 ) http://developer.apple.com/appstore/resources/approval/guidelines.html ※2 ) http://developer.apple.com/library/ios/#documentation/NetworkingInternet/ Conceptual/StreamingMediaGuide/Introduction/Introduction.html
  72. Appleͷن໿ʢൈਮʣ • 3Gճઢ؀ڥԼͰɺ10෼Ҏ্·ͨ͸5෼Ͱ5MBΛ ௒͑ΔಈըΛετϦʔϛϯά࠶ੜ͢Δ৔߹͸ɺ HTTP Live StreamingΛ࢖༻͠ͳ͚Ε͹ͳΒͳ ͍ɻͦͷ৔߹ʹ͸࠷௿64kbpsͷԻ੠ͷΈετ ϦʔϜΛඞؚͣΊΔඞཁ͕͋Δɻ

  73. Ξοϓϧͷن໿͕༩͑ΔӨڹ • 3Gճઢ؀ڥԼͰɺ10෼Ҏ্·ͨ͸5෼Ͱ5MBΛ ௒͑ΔಈըΛετϦʔϛϯά࠶ੜ͢Δ৔߹͸ɺ HTTP Live StreamingΛ࢖༻͠ͳ͚Ε͹ͳΒͳ ͍ɻͦͷ৔߹ʹ͸࠷௿64kbpsͷԻ੠ͷΈετ ϦʔϜΛඞؚͣΊΔඞཁ͕͋Δɻ 3Gճઢ؀ڥԼͰ͸ࣄ্࣮HLSରԠ͕ඞਢ

    WiFi௨৴࣌͸HLSͰͳͯ͘΋Α͍
  74. Ξοϓϧͷن໿͕༩͑ΔӨڹ • 3Gճઢ؀ڥԼͰɺ10෼Ҏ্·ͨ͸5෼Ͱ5MBΛ ௒͑ΔಈըΛετϦʔϛϯά࠶ੜ͢Δ৔߹͸ɺ HTTP Live StreamingΛ࢖༻͠ͳ͚Ε͹ͳΒͳ ͍ɻͦͷ৔߹ʹ͸࠷௿64kbpsͷԻ੠ͷΈετ ϦʔϜΛඞؚͣΊΔඞཁ͕͋Δɻ HLSʹରԠ͢Δࡍ͸ɺ64kbpsͷԻ੠ετϦʔϜΛ

    ผ్ੜ੒͢Δඞཁ͕͋Δ → Πϯϑϥίετ૿
  75. Ξοϓϧͷن໿͕༩͑ΔӨڹ HLSʹ׬શʹରԠ͠Α͏ͱ͢Δͱίετߴ ↓ 3GճઢͰ͸ಈը࠶ੜΛҰ෦੍ݶ͍ͯ͠Δ ࠓޙରԠ༧ఆ

  76. Agenda 1. χίχίಈըɾχίχίੜ์ૹͱ͸ 2. χίχίಈը iPhoneΞϓϦ 3. χίχίੜ์ૹ iPhoneΞϓϦ 4.

    Appleͷن໿ 5. HTTP Live Streamingৄࡉ 6. ࣮੷ͱࠓޙ
  77. HTTP Live Streaming ৄࡉ • HTTP͚ͩͰٖࣅతʹϥΠϒετϦʔϛϯά Λ࣮ݱ͢Δϓϩτίϧ • Apple͕࢓༷Λࡦఆ •

    IETFͷΠϯλʔωοτυϥϑτͱͯ͠ఏग़ • iPhone,QuickTimeͳͲͰ࠾༻ • Adobe FMS͕HLSΛαϙʔτ͢Δ༧ఆ(!)
  78. HTTPαʔόʔ (ApacheͳͲ) HTTP Live Streaming ͷ࢓૊Έ H.264 ಈըϑΝΠϧ sample_0001.ts sample_0002.ts

    sample_0003.ts ಈըϑΝΠϧΛ 10ඵ͝ͱʹ෼ׂ #EXTM3U #EXT-X-TARGETDURATION:10 #EXTINF:10, sample_0001.ts #EXTINF:10, sample_0002.ts #EXTINF:10, sample_0003.ts ϓϨΠϦετ(m3u8) Λੜ੒ ϓϨΠϦετͲ͓Γʹ ࿈ଓ࠶ੜ
  79. HTTPαʔόʔ (ApacheͳͲ) HTTP Live Streaming ͷ࢓૊Έ sample_0001.ts sample_0002.ts sample_0003.ts ө૾σʔλΛ

    10ඵ͝ͱʹ෼ׂ #EXTM3U #EXT-X-TARGETDURATION:10 #EXT-X-MEDIA-SEQUENCE: 0 #EXTINF:10, sample_0001.ts #EXTINF:10, sample_0002.ts #EXTINF:10, sample_0003.ts ϓϨΠϦετ(m3u8) ͕ಈతʹߋ৽͞ΕΔ ϓϨΠϦετͲ͓Γʹ ࿈ଓ࠶ੜ
  80. HLSͷಛ௃ • ௕࣌ؒͷಈըͰ͋ͬͯ΋Ұ౓ͷ௨৴Ͱ औಘ͢Δͷ͸10ඵ෼ͷಈըσʔλ͚ͩ • ଳҬΛѹഭ͠ͳ͍ • Πϯϑϥ΍௨৴ΩϟϦΞʹ͸༏͍͠

  81. HLSͷಛ௃ • ಈըσʔλ͸HTTPͰసૹ • ApacheͷΑ͏ͳී௨ͷwebαʔόʔͩ ͚ͰಈըετϦʔϛϯά͕࣮ݱͰ͖Δɻ Adobe FMSͳͲͷߴՁͳαʔόʔ͸ෆཁ • HTTPͳͷͰଟ͘ͷ؀ڥͰ࢖༻Ͱ͖Δ

    ʢHTTPҎ֎ͷ௨৴ΛϒϩοΫ͍ͯ͠Δ ؀ڥ΋ଟ͍ʣ
  82. HLSͷಛ௃ • ଳҬ෯ʹԠͨ͡ը࣭ࣗಈ੾Γସ͑ • ଳҬ͕ࡉͯ͘΋շదʹಈըΛࢹௌͰ͖Δ ௿ը࣭ಈը sample_0001.ts sample_0002.ts sample_0003.ts ߴը࣭ಈը

    sample_0001.ts sample_0002.ts sample_0003.ts ௨৴ঢ়گ͕ ྑ͍࣌ ௨৴ঢ়گ͕ ѱ͍࣌ ଳҬ෯ʹԠͯࣗ͡ಈ੾׵͑
  83. Agenda 1. χίχίಈըɾχίχίੜ์ૹͱ͸ 2. χίχίಈը iPhoneΞϓϦ 3. χίχίੜ์ૹ iPhoneΞϓϦ 4.

    Appleͷن໿ 5. HTTP Live Streamingৄࡉ 6. ࣮੷ͱࠓޙ
  84. ࣮੷

  85. ΞϓϦDL਺ • ྦྷܭ100ສDLҎ্

  86. ϢχʔΫϢʔβ਺ • 4~5ສUU/day ਒ࡂ࣌NHK αΠϚϧ์ૹ

  87. iPhone͔Βੜ์ૹ഑৴ • 600൪૊/day

  88. ࠓޙ

  89. ৹ࠪίετͷ௿ݮ • ը໘ϨΠΞ΢τΛগ͠มߋ͢Δ͚ͩͰ৹͕ࠪඞ ཁͳͷͰίετ͕͔͔Δ • ΞϓϦͷചΓ্͛ͷ30%ΛΞοϓϧʹऔΒΕΔɻ άʔάϧ΋௥ैͷྲྀΕ • ΞϓϦ͸৭ʑͭΒ͍ʂ •

    WebͰͰ͖Δ͜ͱ͸Web΁ • HTML5 !
  90. HTML5ରԠ • HTML5ͷvideoλάʹΑΔಈը࠶ੜ • Safari͚ͩͰχίಈΛࢹௌͰ͖Δ • iPadͰ͸ରԠࡁΈ • ΞϓϦ͕ෆཁʂ •

    ৹ࠪ΋ෆཁʂ
  91. HTML5ରԠ • ͨͩ͠iPhoneͰ͸ • Safariͷ࢓༷ʹΑΓಈըͷ্ʹίϝϯ τΛॏͶΔ͜ͱ͕ෆՄೳͳͨΊɺݱ ঢ়Ͱ͸࣮ݱෆՄೳ • ͦ͜Ͱɾɾɾ

  92. ΞϓϦUIͷwebԽ • ಈը࠶ੜॲཧҎ֎Λweb(HTML/CSS/JS)Ͱ։ൃ • iPhoneΞϓϦ૊ΈࠐΈͷUIWebViewͰදࣔ • ಈը࠶ੜϘλϯΛԡͨ͠ΒΞϓϦωΠςΟϒ ͷػೳΛݺͼग़ͯ͠ಈը࠶ੜ

  93. ΞϓϦUIͷwebԽ

  94. ΞϓϦUIͷwebԽ HTML/CSS/JavaScript Ͱ࣮૷

  95. ΞϓϦUIͷwebԽ <a href=”nicovideo://play/sm9”> [UIWebView stringByEvaluatingJavaScriptFromString: @"videoList.show();"];

  96. AndroidରԠ • UI͸web • ಈը࠶ੜ͸Flash

  97. ·ͱΊ • χίಈ / χίੜiPhoneΞϓϦΛࢧ͑Δٕज़ʹ͍ͭͯ঺ հ • ಈը΍ԻָͳͲϝσΟΞίϯςϯπΛѻ͏ΞϓϦΛ։ ൃ͢Δ৔߹͸ɺΞοϓϧͷن໿ʹ஫ҙ͢Δඞཁ͕͋Δ •

    iPhoneΞϓϦͷ৹ࠪίετΛճආ͢Δʹ͸෦෼తʹ webԽ͢Δͷ͕༗ޮ • χίχίಈըͰ΋εϚʔτϑΥϯͷॏཁੑ͸࣮֬ʹߴ ·͖͍ͬͯͯΔ
  98. One more thing...

  99. υϫϯΰΤϯδχΞืू த • υϫϯΰͰ͸ҎԼͷΑ͏ͳΤϯδχΞΛืू ͍ͯ͠·͢ • χίχίಈըͷ։ൃʹؔΘΓ͍ͨʂ • εϚʔτϑΥϯΞϓϦ։ൃʹڵຯ͕͋Δʂ •

    େن໛webΞϓϦέʔγϣϯΛ։ൃ͍ͨ͠ʂ • ͳͲͳͲ
  100. ͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠