Home
Explore
Submit Search
Upload
Login
Signup
Advertisement
Check these out next
[CEDEC2014] 消滅都市のつくりかた 半年で素敵なゲームをリリースするには -
gree_tech
FFRKを支えるWebアプリケーションフレームワークの技術
dena_study
Cocos2d-xを用いた "LINE タワーライジング" の開発事例
gree_tech
「電車でGO!!」アーケード大型3画面筐体で実在の街並みを表現するUE4開発事例
エピック・ゲームズ・ジャパン Epic Games Japan
[CEDEC2018] UE4アニメーションシステム総おさらい
エピック・ゲームズ・ジャパン Epic Games Japan
第11回 cocos2d-x勉強会 「cocos2dxでLWFを利用する」
Naoki Yokota
Unreal Engine 4.27 ノンゲーム向け新機能まとめ
エピック・ゲームズ・ジャパン Epic Games Japan
Red5とFlexで作るmixiアプリ「ビデオチャット」事例紹介
Shinichiro Yoshida
1
of
130
Top clipped slide
ニコニコ動画iOSアプリの UX・マネタイズ・技術の話
May. 25, 2012
•
0 likes
63 likes
×
Be the first to like this
Show More
•
19,348 views
views
×
Total views
0
On Slideshare
0
From embeds
0
Number of embeds
0
Download Now
Download to read offline
Report
Technology
Kentaro Matsumae
Follow
Software Engineer at mercari
Advertisement
Advertisement
Advertisement
Recommended
ニコニコ動画iPhoneアプリの作り方@スマートフォン2011講演資料
Kentaro Matsumae
4K views
•
100 slides
GREE-Fsite
technicaldesign
35.1K views
•
56 slides
AndApp開発における全て #denatechcon
DeNA
2.7K views
•
37 slides
グリーにおけるスマホアプリ開発~HTML5編
Mitsuhiro Tanda
4.8K views
•
39 slides
UE4における大規模レベル実装ワークフローとブループリント活用事例
エピック・ゲームズ・ジャパン Epic Games Japan
20.8K views
•
196 slides
Effective web performance tuning for smartphone
dena_study
64.8K views
•
85 slides
More Related Content
Slideshows for you
(19)
[CEDEC2014] 消滅都市のつくりかた 半年で素敵なゲームをリリースするには -
gree_tech
•
22.3K views
FFRKを支えるWebアプリケーションフレームワークの技術
dena_study
•
12.2K views
Cocos2d-xを用いた "LINE タワーライジング" の開発事例
gree_tech
•
8.3K views
「電車でGO!!」アーケード大型3画面筐体で実在の街並みを表現するUE4開発事例
エピック・ゲームズ・ジャパン Epic Games Japan
•
12.3K views
[CEDEC2018] UE4アニメーションシステム総おさらい
エピック・ゲームズ・ジャパン Epic Games Japan
•
19.4K views
第11回 cocos2d-x勉強会 「cocos2dxでLWFを利用する」
Naoki Yokota
•
4.5K views
Unreal Engine 4.27 ノンゲーム向け新機能まとめ
エピック・ゲームズ・ジャパン Epic Games Japan
•
3.3K views
Red5とFlexで作るmixiアプリ「ビデオチャット」事例紹介
Shinichiro Yoshida
•
3.4K views
Clarity 2019 で デザインシステムの課題は人なんだと痛感した話
Yusuke Goto
•
3.4K views
Voicepic@FukuiMASeminar
Manabu Shimobe
•
1.4K views
ハイブリットソーシャルゲームの現場
Shota Suzuki
•
1.3K views
ゲームエンジンの中の話
Masayoshi Kamai
•
39K views
UE4モバイルブートキャンプ
エピック・ゲームズ・ジャパン Epic Games Japan
•
9.7K views
FFRK cocos2d xレイヤーの最適化
dena_study
•
19.7K views
猫でも分かる Control Rig UE4.25 版
エピック・ゲームズ・ジャパン Epic Games Japan
•
26.2K views
ABEMA の視聴品質向上戦術
Yusuke Goto
•
1.7K views
[CEDEC2018] UE4で多数のキャラクターを生かすためのテクニック
エピック・ゲームズ・ジャパン Epic Games Japan
•
25K views
Game Creators Conference 2019 Keiji Kikuchi
Keiji Kikuchi
•
5.1K views
iOSで利用できるデバイスファームのメリット・デメリットの紹介
Shunsuke Maeda
•
4.8K views
Similar to ニコニコ動画iOSアプリの UX・マネタイズ・技術の話
(20)
20120413 nestakabaneworkshop
Yoichiro Sakurai
•
681 views
こだわりのkintone
Yusuke Amano
•
16.5K views
HTML5ハイブリッド アプリ開発実践編
Monaca
•
20.1K views
20120316 designerworkshoppublished
Yoichiro Sakurai
•
697 views
WebIntentsにより拓かれる次のWeb
Kensaku Komatsu
•
7.3K views
Opera Mobile for AndroidのカメラサポートをつかってWebコンテンツにカメラ機能をつけてみたお話
Akira Ouchi
•
732 views
Sharoid Service Menu
sharoid
•
384 views
最低限のコードでWebサイトを作成しよう(ADC MEETUP 08)
壽子 大倉
•
3.1K views
iOSアプリ開発のCI環境 - Jenkins編 -
Toshiyuki Hirata
•
3.1K views
「ぶっちぎりのファッションアプリにするために」 iQONエンジニアセミナー by VASILY (iOSチーム)
Keisuke Shoji
•
5.4K views
サーバーからiOSアプリを変更する
toyship
•
7.3K views
リモート・スマホ・レンタル(第2回 Androidテスト祭り)
NTT Resonant Technology Inc.
•
1.8K views
Unity5.3をさわってみた
Keizo Nagamine
•
13.1K views
ABC2012Spring 20120324
Tak Inamori
•
1.2K views
これからのNOTESモバイルアプリはこう作れ
Mitsuru Katoh
•
1.3K views
小さく早い改善がスマホのサービス開発を変える
Hiroto Igarashi
•
4.4K views
チラシルiOSでの広告枠開発
Satoshi Takano
•
3.6K views
Chrome 拡張のご紹介
Tetsunosuke Saito
•
715 views
Angular でもっとAPIファースト・もっとモダンデザインなWebアプリケーションを作ろう!
CData Software Japan
•
2.2K views
うちではこうやっています UI構築のルールとPlaymakerを使った画面遷移
まべ☆てっく運営
•
38.3K views
Advertisement
Recently uploaded
(20)
SoftwareControl.pdf
ssusercd9928
•
7 views
DrupalをDockerで起動してみる
iPride Co., Ltd.
•
21 views
JSONEncoderで詰まった話
とん とんぼ
•
143 views
統計学の攻略_正規分布ファミリーの全体像.pdf
akipii Oga
•
222 views
Windows ChatGPT Bing AI.pptx
Atomu Hidaka
•
7 views
ChatGPT + LlamaIndex 0 .6 による チャットボット の実装
Takanari Tokuwa
•
56 views
統計学の攻略_統計的仮説検定の9パターン.pdf
akipii Oga
•
220 views
モバイル・クラウド・コンピューティング-データを如何に格納し、組み合わせ、情報として引き出すか
Masahiko Funaki
•
2 views
ネットワークパケットブローカー市場.pdf
HinaMiyazu
•
7 views
【DL輪読会】Egocentric Video Task Translation (CVPR 2023 Highlight)
Deep Learning JP
•
63 views
【DL輪読会】Poisoning Language Models During Instruction Tuning Instruction Tuning...
Deep Learning JP
•
85 views
OpenJDKのコミッタってどんなことしたらなったの?解決してきた技術課題の事例から見えてくる必要な知識と技術(JJUG CCC 2023 Spring)
NTT DATA Technology & Innovation
•
31 views
3Dプリンタって いいね
infinite_loop
•
57 views
ChatGPT触ってみた
infinite_loop
•
57 views
Kubernetes超入門
Takashi Suzuki
•
5 views
《杨百翰大学毕业证|学位证书校内仿真版本》
d520dasw12
•
2 views
AIEXPO_CDLE名古屋紹介
KotaMiyano
•
3 views
CDLEハッカソン2022参加報告.pdf
SHOIWA1
•
9 views
SoftwareControl.pdf
ssusercd9928
•
15 views
Voyager: An Open-Ended Embodied Agent with Large Language Models
harmonylab
•
0 views
ニコニコ動画iOSアプリの UX・マネタイズ・技術の話
ニコニコ動画iOSアプリの UX・マネタイズ・技術の話
株式会社ドワンゴ 松前健太郎 @kenmaz
自己紹介 • 松前健太郎 (@kenmaz) •
ドワンゴ ニコニコ事業本部 ニコニコiPhone 開発リーダー • 2009/06 中途入社 • 前職は大手メーカー系SIerで研究開発
アジェンダ • ニコ動・ニコ生iOSアプリの概要 • ニコ動アプリのUX •
マネタイズ • 技術的な話
アジェンダ • ニコ動・ニコ生iOSアプリの概要 • ニコ動アプリのUX •
マネタイズ • 技術的な話
ニコニコ動画 ニコニコ生放送 iOSアプリの概要
ニコニコ動画iOSアプリ • ニコニコ動画を視聴するためのアプリ • iPhone/iPadの両方に対応 •
2009年5月 リリース • 月間ログインUU:102万 (2012年4月)
ニコニコ生放送iOSアプリ • ニコニコ生放送を視聴・放送するアプリ • iPhoneに対応(近日iPad対応予定) •
2010年5月 リリース • 月間ログインUU:34.7万 (2012年4月)
アジェンダ • ニコ動・ニコ生iOSアプリの概要 • ニコ動アプリのUX •
マネタイズ • 技術的な話
ニコ動アプリのUX
ニコ動アプリの進化 • 2009年にリリース以来、30回以上アッ プデートを繰り返してきた •
まずはアプリの進化の歴史をちょっと 振り返り
ver1.0 •
まず“iPhoneでニコ動が見れる” • ガラケー向けに変換された動画を流用(低画質) • UITableViewを使ったシンプルなUI
ver2.0 •
画質の向上 • WiFi接続時のみ、mp4で高画質再生 • UIはver1.0から大きな変更なし
ver3.0 •
さらなる画質の向上 • WiFi/3G問わず、常にmp4で高画質再生 • UIをHTML/CSSで実装、デザインの見直し
ver4.0 •
UXの再設計 • ver3.0で基本は完成 • ver4.0でUXを再設計
UXの再設計 • UIの見直し • 新しい動画視聴スタイル •
デザインの刷新
UXのハニカム構造
The User Experience Honeycomb http://semanticstudios.com/publications/semantics/000029.php
UXの再設計 • UIの見直し • 新しい動画視聴スタイル •
デザインの刷新
UIの見直し • 使いやすい • 探しやすい •
迷わない
画面の向き •
現状 • 動画を探すとき:縦固定 • 動画を視聴するとき:横固定 • 問題点 • 頻繁に端末をクルクルと持ち替える必要がある • 快適な動画視聴の妨げ • 動画系のiPhoneアプリでは一般的なUI • ex) Youtube、Ustream、Hulu
画面の向き •
実際の利用シーン • 片手しか使えない状況(外出時など)→縦 • 両手が使える状況(自宅でまったり)→横 • フリック入力でコメントを入力したい→縦 • じっくり全画面で動画をみたい→横 • 状況ごとに最適な画面の向きがある • 縦横両方に対応して、より使いやすく
タブバーの廃止 • 従来 •
広告は表示したい • 画面領域は確保したい • 改善 • タブバーによるメニューは廃止 • 必要なときに”ひっぱり出す”メニュー
コンテンツ領域
コンテンツ領域
2ペインスタック構造 • 横向き画面を最大限を活かすUI • 横フリックで戻る、進むが可能 •
ビュー自体はUIWebView
UIWebView
UXの再設計 • UIの見直し • 新しい動画視聴スタイル •
デザインの刷新
新しい動画視聴スタイル •
従来 • 動画を一覧から選んで視聴、の繰り返し • もっと気軽に動画を見てほしい • ながら見 • 毎日アプリを起動してみたくなる仕掛け • ダラ見
ながら見 •
動画を見ながら、他の動画を探せる • ちょっと気になったらタップしてプレ ビュー再生 • 面白そうなら全画面で引き続き再生 • 興味がなければ別の動画にすぐ切り替え
ながら見
ながら見
ながら見
ながら見
ながら見
ながら見
ながら見 • 動画視聴までのハードルを下げる • 動画を見ながら次の動画を探す •
動画を見ながら他のことをする • テレビを見ているときと同じ感覚
ダラ見 • いつ、どういう状況でアプリが使われ ているか?
ダラ見 • 夕食後から寝るまでの間 • 自宅でダラダラしている時間
• といえば、テレビのダラ見 • テレビのような垂れ流し機能があればア プリを使ってくれるかも
あなたチャンネル機能 • あなたが興味のありそうな動画を リコメンドして連続再生
視聴履歴を元にしたリコメンド SNS上の友達のおすすめの動画 お気に入りうp主の新着動画
UXの再設計 • UIの見直し • 新しい動画視聴スタイル •
デザインの刷新
デザインの刷新 •
見た目はやはり重要 • 変わった感 • ユーザに飽きられるのを防ぐ • ニコ動で、先進的・クールな感じ・未来感 • といえば・・・
ニコファーレ
ニコファーレをモチーフにした デザイン(ボツ案)
ニコファーレをモチーフにした デザイン(ボツ案)
ニコファーレをモチーフにした デザイン(ボツ案)
最終的にこうなった
隠されたメニュー
ここを引っ張る 「ランキングどこにあるの・・・」
引っ張りたくなる タブのデザイン
デザインvsパフォーマンス デザイン案
実際のアプリ
デザインvsパフォーマンス デザイン案
実際のアプリ
デザインvsパフォーマンス
透過+ブラー 透過のみ • 実装可能だがレンダリングが激しく重くなった •→適度な落とし所を
リリース後の反応
• 狙っていた点については、ある程度の 評価を得た •
特にiPadのような大きな画面での利便性 が高まった • 一方で、想定していなかった観点から の指摘がいくつかあった
コメ数・視聴者数表示 •
動画一覧からコメント数・視聴者数の表示を削除 • 「コメント数や視聴者数で動画を探してたので不便」 • →UIを変更する際は、既存の文化を破壊しないように 注意
画面の向き •
加速度センサで画面の向きを変更 • 「ロック解除がめんどくさい」 • 「そもそもロック解除の方法が分からない」 • →明示的に設定できるようにした • iPhoneの標準のUIに従った • 標準のUIが最良とは限らない
UXの再設計 • UIの見直し • 新しい動画視聴スタイル •
デザインの刷新
アジェンダ • ニコ動・ニコ生iOSアプリの概要 • ニコ動アプリのUX •
マネタイズ • 技術的な話
マネタイズ
マネタイズ • ニコ動iPhoneアプリのマネタイズ手段 •
プレミアム会員の入会導線 • 広告収益
マネタイズ • ニコ動iPhoneアプリのマネタイズ手段 •
プレミアム会員の入会導線 • 広告収益
プレミアム会員 • 月額525円で以下のような特典 •
高速回線で快適に動画視聴 • 混雑時でも優先的に生放送を見れる • 生放送の配信ができる • などなど
iPhoneアプリでの導線 •
アプリ内の各所に導線を設置 • 動画再生前、生放送追い出し時 • リンクをタップするとSafariが起動して入会web ページに遷移( クレカ決済、携帯キャリア決済、 webマネー決済など) • プレミアム入会導線としてのアプリ • ニコ動アプリからは、毎月それなりの数の入会 がある
従来の入会導線
Safari起動 アプリ Safari Safari
2011年11月事件発生 •
ニコ生アプリがリジェクト • リジェクト理由 • 「プレミアム入会ページへリンクするためのボタン 等はアプリ内に設置してはいけない(審査ガイドラ イン11.13違反)」 • 「アプリ内課金(IAP)機能を使って決済してプレミア ム入会させるのはOK」 App Store Review Guidelineより 11.13 外部の課金メカニズムにリンクしているアプリはリジェクトされる。たとえば「購入」ボタン をタップすると、電子書籍の販売サイトが開くような仕組みをもつアプリなど。
どうしよう •
アプリ内から入会導線を消す? • アプリ経由の入会がまるごと消滅? • IAPを使って入会機能を実装? • Appleへの30%の手数料を受け入れるのか? • 今回はニコ生アプリがリジェクトされたが・・ • ニコ動アプリも次回審査時にリジェクトされ ることは間違いなし!
2つの選択肢 1. ニコ動アプリ開発を凍結、放置して入 会を維持 2.
素直にIAPを使ってプレミアム入会機能 を追加する(手数料30%を飲む)
2つの選択肢 1. ニコ動アプリ開発を凍結、放置して入 会を維持 2.
素直にIAPを使ってプレミアム入会機能 を追加する(手数料30%を飲む)
ニコ動アプリ開発を凍結、放置して入会を 維持 • 短期的に見れば正解かもしれないが・・・ • スマホ主流の昨今、これはありえない!
• とはいえ 藤は結構あった (~_~;)
2つの選択肢 1. ニコ動アプリ開発を凍結、放置して入 会を維持 2.
素直にIAPを使ってプレミアム入会機能 を追加する(手数料30%を飲む)
2つの選択肢 1. ニコ動アプリ開発を凍結、放置して入 会を維持 2.
素直にIAPを使ってプレミアム入会機能 を追加する(手数料30%を飲む) これしかない(消去法的に)
どのIAPプロダクトを選ぶか 1. 購読型(自動更新) •
自動引き落としの月額課金が可能 • 審査が厳しい(電子書籍・新聞など向け) 2. 購読型(非自動更新) • ユーザに継続手続きをしてもらう必要がある • 審査は比較的ゆるい
どのIAPプロダクトを選ぶか 1. 購読型(自動更新) •
自動引き落としの月額課金が可能 • 審査が厳しい(電子書籍・新聞など向け) 2. 購読型(非自動更新) • ユーザに継続手続きをしてもらう必要がある • 審査は比較的ゆるい
価格をいくらに設定するか •
たとえば • 月額課金:¥700/月 (取り分¥490) • チケット:¥2000/3ヶ月 (取り分¥1400) • 要判断 • 自動更新購読型ではない • 実はwebから入会してくれたほうが嬉しい
価格をいくらに設定するか •
たとえば • 月額課金:¥700/月 (取り分¥490) • チケット:¥2000/3ヶ月 (取り分¥1400) • 要判断 • 自動更新購読型ではない • 実はwebから入会してくれたほうが嬉しい
経理まわりの注意点 •
翌月:速報値を元に仮計上 • 翌々月:ファイナンシャルレポートを元に本計上 • →速報値と数値が合わない! クレジットカードの入金タイミングや締め日の問 題で必ずしも数値は一致しない。全体的に見れば 帳尻は合っているはずだから気にするな by Apple
マネタイズ • ニコ動iPhoneアプリのマネタイズ手段 •
プレミアム会員の入会導線 • 広告収益
広告周りの改善 •
これまで • AdMobなどアドネットワークの広告を表示 • 各社提供のSDKをアプリに組み込み • 問題点 • 新しいアドネットワークを追加するたびにアプ リの改修が必要 • 広告表示ロジックがアプリ組み込みなので、そ の時々の最適な広告表示ができない
広告周りの改善
従来 広告業者A A用SDK B用SDK 広告業者B C用SDK 広告業者C D用SDK 広告業者D 各業者ごとにSDK の組み込み必要 そのたびに 審査が必要
広告配信システム+Web • どこにどのような広告を表示するかは すべてサーバーサイドの広告配信システ
ムが調整して配信 • アプリ側では配信される広告をWeb ページ内に表示
広告配信システム+Web
広告業者A 広告業者B <iframe> 広告配信 web サーバー 広告業者C 広告業者D 配信比率 Webベースなので の最適化 SDKの組み込み不要
広告配信システム+UIWebView • メリット
• いま一番 かる広告を、専任の担当 者がサーバー側で調整・配信 • webベースなので、新たなアドネット ワークを使用する際もアプリの更新 は不要
ところで •
アプリで稼ぐのは大変 • Appleの規約による制限 • アプリ修正のたびに審査が必要 • アプリをやめて、webでやれば良いのでは? • webなら入会導線貼り放題 • 審査もいらない
HTML5でニコ動 •
ニコ動HTML5プレイヤー • アプリなしでSafari上で動画再生 • HTML5のvideoタグを使用 • iPhoneのSafariでは動画にコメントを 重ねられない! • iOSについてはしばらくはアプリが メイン
アジェンダ • ニコ動・ニコ生iOSアプリの概要 • ニコ動アプリのUX •
マネタイズ • 技術的な話
技術的な話
トピック • UIWebViewを用いたUI • 動画再生の仕組み •
生放送再生の仕組み
トピック • UIWebViewを用いたUI • 動画再生の仕組み •
生放送再生の仕組み
UIWebViewを用いたUI • 動画再生処理やUIの骨組みはCocoa/ Objective-Cによるアプリの実装 •
それ以外の部分はほぼwebで実装 • UIWebViewを使ってミックス
UIWebViewを用いたUI
UIWebViewを用いたUI アプリ
web
UIWebViewを用いたUI
UIWebViewを用いたUI
web アプリ
UIWebViewを用いたUI
UIWebViewを用いたUI アプリ
web
UIWebViewを用いたUI
UIWebViewを用いたUI アプリ
Web-アプリ間の連携 •
Web→アプリの連携 • URL Schemaを使ってwebからアプリの機能 を呼び出し • ex) “nicovideo://play/sm9” • ex) “nicovideo://web?/Ranking/genre=game” • アプリ→webの連携 • UIWebViewに対するJSの実行
1. web上でリンクをタップ
<a href=”nicovideo://web?/Ranking/genre?type=game”>.. 2. appはUIWebViewを新規生成してスタック UIWebView 3. appはスタックした新規UIWebViewに ”/Ranking/genre?type=game”をロード
1. 動画視聴開始後、 アプリはUIWebViewに対して以下のコードを実行 NSString
js = @”playHisotory.add(‘sm123’)”; [webview stringByEvaluatingJavaScriptFromString:js]; 2. web上のplayHistoryオブジェクトは、動画ID「sm123」 をlocalStorageに保存 3. webの視聴履歴画面表示時に、JavaScriptでlocalStorage から視聴履歴データを取得、表示
UIWebViewを用いたUI •
メリット • ちょっとした機能の追加・修正であれば審査不要 • HTML/CSS/JSで開発可能 • webエンジニア・デザイナを活用できる • デメリット • 描画処理などネイティブアプリに劣る部分がある • JS/CSS圧縮、キャッシュ最適化など必須
UIWebView使用時の注意点 •
UIWebView ≠ Safari • Safariよりレンダリングの性能は低い • →あまり凝ったデザインにしない • 一部のCSSが正常に動作しない(例:position:fixed) • →あきらめてデザインを変更 • アプリのバージョンアップによってLocalStorageが壊れ ることがある • →あきらめてcookieを使う
トピック • UIWebViewを用いたUI • 動画再生の仕組み •
生放送再生の仕組み
動画再生の仕組み •
iPhoneで再生可能な主なフォーマット • mp4 (H.264, AAC) • ニコ動に投稿される動画の形式は多種多様 • flv, mp4, divx, mpeg1,2, wmv, swf... • iPhoneでは再生できない可能性がある • サーバーサイドでmp4(H.264/ACC)に変換 • 2010/8以降に投稿された動画はすべて変換済み • 過去動画についても2012/3より再変換開始 • それ以外の動画はモバイル画質(osec形式)動画を再生
おせち
osec形式? • パラパラ漫画のようにJPEGを1コマずつ再生して動 画っぽく見せる ガラケー端末向けの独自動画形式 • 映像 = JPEG、音声 = ADPCM • 動画データを1秒 (One-Sec)ごとに分割・パケット化 像 画像 画像 画像 画像 画像 画像 画像 画像 画像 画像 画像 音声 音声 音声 1秒分 1秒分 1秒分
動画再生の仕組み
osec変換 osec サーバー 一部動画 mp4 動画配信 mp4/flv/... サーバー 動画投稿者 再エンコード、mp4生成
実装上の問題 •
mp4の再生にはMPMoviePlayerを使用 • 一回の動画取得で複数回のRangeリクエストが発生 • 動画ストレージのサーバー負荷増大 • Cookieを自由に更新できない • ニコ動の動画ストレージはCookieによる認証 を行っている • 認証に失敗して動画が取得できない ※MPMoviePlayer: iOSが提供する動画再生用クラス
実装上の問題 アプリ内部にローカルプロキシを実装
アプリ ニコ動 MPMoviePlayer ローカルプロキシ 動画ストレージ 動画取得 動画取得 動画取得 認証 動画データ返信 動画取得 動画取得
トピック • UIWebViewを用いたUI • 動画再生の仕組み •
生放送再生の仕組み
生放送の配信形式 • ニコニコ生放送はRTMP形式で映像を配
信しているが・・・ App Store Review Guidelineより 9.4 3G回線上で動画のストリーミング再生を行う 場合は、HLS (HTTP Live Streaming) 形式で映像を配 信する必要がある。
RTMP (Real Time Messaging
Protocol) • 動画・音声のライブストリーミングのため のプロトコル • Adobeが仕様を策定 • Flashプレイヤー等で採用されている • ニコ生(PC)は全面的にRTMPを採用 • iPhoneはRTMPの直接再生は不可
HLS (HTTP Live Streaming) •
HTTPだけで擬似的にライブストリーミン グを実現するプロトコル • Appleが仕様を策定 • IETFのインターネットドラフトとして提出 • iPhone,QuickTimeなどで採用
HLS
(HTTP Live Streaming) HTTPサーバー (Apacheなど) #EXTM3U プレイリスト(m3u8) #EXT-X-TARGETDURATION:10 #EXT-X-MEDIA-SEQUENCE: 0 が動的に更新される #EXTINF:10, sample_0001.ts #EXTINF:10, sample_0002.ts #EXTINF:10, sample_0003.ts sample_0001.ts 映像データを プレイリストどおりに sample_0002.ts 10秒ごとに分割 連続再生 sample_0003.ts
HLSの特徴 • 長時間の動画であっても一度の通信で 取得するのは10秒分の動画データだけ •
帯域を圧迫しない • インフラや通信キャリアには優しい
HLSの特徴 • 動画データはHTTPで転送
• Apacheのような普通のwebサーバー だけで動画ストリーミングが実現で きる。Adobe FMSなどの高価なサー バーは不要 • HTTPなので多くの環境で使用できる
HLSの特徴 •
帯域幅に応じた画質自動切り替え • 帯域が細くても快適に動画を視聴できる 通信状況が sample_0001.ts sample_0002.ts 高画質動画 良い時 sample_0003.ts 帯域幅に応じて自動切換え 通信状況が sample_0001.ts sample_0002.ts 低画質動画 悪い時 sample_0003.ts
HLSの特徴 • 生放送で使用する場合は遅延が問題に なるデメリットもある •
コンテンツ保護の仕組みが不十分
生放送の配信形式 •
RTMP→HLSのリアルタイム変換サーバー (nicolis) を開発 • HLSで配信すればAppleの審査もOK! • マルチデバイス化 • iPhoneだけでなく、PSVITA、家電、組み 込み機器などでもHLSを使用する予定
HLS
RTMP ニコ生 HLS nicolis 配信サーバー HLS (H.264/AAC) HLS RTMP リアルタイム変換 RTMP 家電 組み込み機器
まとめ •
UX • 使いやすい、探しやすい、気持ち良いを追求 • 作って、壊して、ユーザの声を聞いて、進化するのが基本 • マネタイズ • Appleの規約は厳しいが受け入れる • 広告についてはチューニングしやすいように • 技術 • Webとアプリの密な連携 • マルチデバイス化を見据えたアーキテクチャを設計
人材募集 ドワンゴではniconico事業をより盛り上げてくれ る人材を募集中! •
webアプリエンジニア • データマイニングエンジニア • スマートフォンアプリエンジニア • インフラエンジニア • インフラエンジニア • webデザイナ • C++エンジニア • スマートフォンアプリデザイナ • ニコファーレ3Dシステム開発エ • etc... ンジニア
ご清聴ありがとうございました
Editor's Notes
\n
\n
&#x524D;&#x534A;&#x306F;&#x300C;&#x4F55;&#x3092;&#x3064;&#x304F;&#x308B;&#x306E;&#x304B;&#x300D;&#x4F01;&#x753B;&#x8005;&#x30FB;&#x30C7;&#x30B6;&#x30A4;&#x30CA;&#x30FB;&#x30D3;&#x30B8;&#x30CD;&#x30B9;&#x3088;&#x308A;\n&#x5F8C;&#x534A;&#x306F;&#x300C;&#x3069;&#x3046;&#x3084;&#x3063;&#x3066;&#x4F5C;&#x308B;&#x306E;&#x304B;&#x300D;&#x30A8;&#x30F3;&#x30B8;&#x30CB;&#x30A2;&#x3080;&#x3051;\n\n&#x50D5;&#x3089;&#x304C;&#x958B;&#x767A;&#x3057;&#x3066;&#x304D;&#x3066;&#x3069;&#x3046;&#x3044;&#x3046;&#x8AB2;&#x984C;&#x304C;&#x3042;&#x3063;&#x3066;&#x3069;&#x3046;&#x514B;&#x670D;&#x3057;&#x305F;&#x304B;&#x8A71;&#x3057;&#x307E;&#x3059;&#x3002;\n&#x7686;&#x3055;&#x3093;&#x306E;&#x958B;&#x767A;&#x306E;&#x53C2;&#x8003;&#x306B;&#x306A;&#x308C;&#x3070;&#x3068;&#x601D;&#x3044;&#x307E;&#x3059;\n
\n
&#x30CB;&#x30B3;&#x52D5;&#x77E5;&#x3089;&#x306A;&#x3044;&#x3072;&#x3068;&#xFF1F;&#x3000;&#x30CB;&#x30B3;&#x52D5;&#x3068;&#x306F;&#x30FB;&#x30FB;&#x30FB;\n&#x30CB;&#x30B3;&#x52D5;&#x30A2;&#x30D7;&#x30EA;&#x3064;&#x304B;&#x3063;&#x305F;&#x3053;&#x3068;&#x3042;&#x308B;&#xFF1F;\n
&#x53C2;&#x8003;&#xFF1A;PC&#x30CB;&#x30B3;&#x52D5;&#xFF1A;&#x7D04;776&#x4E07;&#x4EBA;&#xFF08;&#x30B9;&#x30AB;&#x30A4;&#x8CC7;&#x6599;&#x3088;&#x308A;&#xFF09;\n
\n
2011/3&#x9707;&#x707D;&#x306E;&#x3068;&#x304D;NHK,&#x30D5;&#x30B8;&#x30C6;&#x30EC;&#x30D3;&#x306A;&#x3069;&#x306E;&#x30B5;&#x30A4;&#x30DE;&#x30EB;&#x653E;&#x9001;\n
&#x4ED6;&#x306B;&#x3082;&#x3001;&#x305B;&#x3044;&#x304C;&#x3001;&#x7F8E;&#x4EBA;&#x5929;&#x6C17;&#x3001;&#x30CB;&#x30B3;&#x30EB;&#x30BD;&#x30F3;&#x306A;&#x3069;&#x306A;&#x3069;&#xFF11;&#xFF10;&#x500B;&#x5F31;\n
\n
\n
\n
&#x3053;&#x306E;&#x30A2;&#x30D7;&#x30EA;&#x306F;&#x30CB;&#x30B3;&#x52D5;&#x3068;&#x3044;&#x3046;&#x65E2;&#x5B58;&#x30B5;&#x30FC;&#x30D3;&#x30B9;&#x3092;iphone&#x3067;&#x697D;&#x3057;&#x3080;&#x3001;&#x3068;&#x3044;&#x3046;&#x4F4D;&#x7F6E;&#x3065;&#x3051;\n&#x3068;&#x306B;&#x304B;&#x304F;PC&#x3067;&#x3067;&#x304D;&#x308B;&#x3053;&#x3068;&#x3092;&#x6700;&#x4F4E;&#x9650;&#x3060;&#x3051;&#x3067;&#x3082;iphone&#x3067;&#x3082;&#x3067;&#x304D;&#x308B;&#x3088;&#x3046;&#x306B;\n&#x304C;&#x7B2C;&#x4E00;&#x76EE;&#x6A19;\n
&#x30A2;&#x30A4;&#x30B3;&#x30F3;&#x3084;&#x30D7;&#x30EC;&#x30A4;&#x30E4;&#x30FC;&#x306E;&#x30C7;&#x30B6;&#x30A4;&#x30F3;&#x3082;&#x3061;&#x3087;&#x3063;&#x3068;&#x5909;&#x308F;&#x3063;&#x3066;&#x307E;&#x3059;\n
&#x9ED2;&#x3063;&#x307D;&#x304F;&#x306A;&#x3063;&#x3066;&#x307E;&#x3059;\n
&#x3055;&#x3089;&#x306B;&#x9752;&#x9ED2;&#x304F;\n&#x4ECA;&#x56DE;&#x306F;ver4.0&#x306E;&#x958B;&#x767A;&#x3067;&#x5F97;&#x305F;&#x7D4C;&#x9A13;&#x3092;&#x5143;&#x306B;&#x304A;&#x8A71;\n
UX&#x3092;&#x9AD8;&#x3081;&#x308B;&#x305F;&#x3081;&#x306B;&#x3001;&#x3053;&#x306E;&#xFF13;&#x70B9;&#x306E;&#x898B;&#x76F4;&#x3057;&#x3092;&#x884C;&#x306A;&#x3063;&#x305F;\n
useful&#xFF08;&#x5F79;&#x7ACB;&#x3064;&#xFF09;\nusable&#xFF08;&#x4FBF;&#x5229;&#xFF09;\nfindable&#xFF08;&#x63A2;&#x3057;&#x3084;&#x3059;&#x3044;&#xFF09;\nvalueable&#xFF08;&#x65B0;&#x305F;&#x306A;&#x308B;&#x4FA1;&#x5024;&#xFF09;&#xFF1A;&#x30CB;&#x30B3;&#x52D5;&#x306B;&#x3055;&#x3089;&#x306B;&#x4FA1;&#x5024;&#x3092;&#x4E0E;&#x3048;&#x308B;\ndesirable&#xFF08;&#x9B45;&#x529B;&#x304C;&#x3042;&#x308B;&#xFF09; => &#x30A8;&#x30E2;&#x30FC;&#x30B7;&#x30E7;&#x30CA;&#x30EB;&#x30C7;&#x30B6;&#x30A4;&#x30F3;&#xFF08;&#x76F4;&#x611F;&#x306B;&#x8A34;&#x3048;&#x304B;&#x3051;&#x308B;&#x30C7;&#x30B6;&#x30A4;&#x30F3;&#xFF09;\naccessible&#xFF08;&#x30A2;&#x30AF;&#x30BB;&#x30B9;&#x53EF;&#x80FD;&#xFF09;=> &#x76EE;&#x7684;&#x5730;&#x307E;&#x3067;&#x306B;&#x969C;&#x58C1;&#x304C;&#x306A;&#x3044;\n\n&#x6700;&#x521D;&#x304B;&#x3089;&#x3053;&#x308C;&#x3092;&#x610F;&#x8B58;&#x3057;&#x3066;&#x3044;&#x305F;&#x308F;&#x3051;&#x3067;&#x306F;&#x306A;&#x3044;&#x304C;&#x3001;&#x3044;&#x307E;&#x632F;&#x308A;&#x8FD4;&#x308B;&#x3068;&#x3046;&#x307E;&#x304F;&#x6574;&#x7406;&#x3067;&#x304D;&#x305D;&#x3046;&#x3060;&#x3063;&#x305F;&#x306E;&#x3067;&#x4F7F;&#x3046;\n
\n
useful&#xFF08;&#x5F79;&#x7ACB;&#x3064;&#xFF09;\nusable&#xFF08;&#x4FBF;&#x5229;&#xFF09;\nfindable&#xFF08;&#x63A2;&#x3057;&#x3084;&#x3059;&#x3044;&#xFF09;\n&#x306E;&#x89B3;&#x70B9;&#x304B;&#x3089;UI&#x3092;&#x898B;&#x76F4;&#x3059;&#x3053;&#x3068;&#x306B;&#x3057;&#x305F;\n
\n
Youtube&#x30A2;&#x30D7;&#x30EA;&#x3068;&#x540C;&#x3058;&#x3060;&#x3063;&#x305F;\n&#x2605;&#x4F7F;&#x3044;&#x3084;&#x3059;&#x3044;\n
&#x52A0;&#x901F;&#x5EA6;&#x30BB;&#x30F3;&#x30B5;&#x3067;&#x5411;&#x304D;&#x3092;&#x5909;&#x3048;&#x308B;&#x3053;&#x3068;&#x3082;&#x3067;&#x304D;&#x308B;&#x3057;\n&#x8A2D;&#x5B9A;&#x3067;&#x56FA;&#x5B9A;&#x3059;&#x308B;&#x3053;&#x3068;&#x3082;&#x53EF;&#x80FD;\n
&#x73FE;&#x72B6;\n&#x30D8;&#x30C3;&#x30C0;&#x3001;&#x30E1;&#x30A4;&#x30F3;&#x90E8;&#x5206;&#x3001;&#x30BF;&#x30D6;&#x30D0;&#x30FC;&#x3001;&#x5E83;&#x544A;\n\n\n
\n
&#x30B3;&#x30F3;&#x30C6;&#x30F3;&#x30C4;&#x9818;&#x57DF;&#x304C;&#x5E83;&#x304C;&#x3063;&#x305F;&#x53CD;&#x9762;&#x3001;\n&#x30E1;&#x30CB;&#x30E5;&#x30FC;&#x304C;&#x96A0;&#x308C;&#x3066;&#x3057;&#x307E;&#x3063;&#x305F;\n&#x3044;&#x304B;&#x306B;&#x30E1;&#x30CB;&#x30E5;&#x30FC;&#x3092;&#x898B;&#x3064;&#x3051;&#x3066;&#x3082;&#x3089;&#x3046;&#x304B;&#x3001;&#x3042;&#x3068;&#x3067;&#x30C7;&#x30B6;&#x30A4;&#x30F3;&#x306E;&#x3068;&#x3053;&#x308D;&#x3067;\n
\n
\n
\n
\n
\n
\n
\n
valueable&#xFF08;&#x65B0;&#x305F;&#x306A;&#x308B;&#x4FA1;&#x5024;&#xFF09;&#xFF1A;&#x30CB;&#x30B3;&#x52D5;&#x306B;&#x3055;&#x3089;&#x306B;&#x4FA1;&#x5024;&#x3092;&#x4E0E;&#x3048;&#x308B;\n
\n
\n
&#x30BF;&#x30C3;&#x30D7;&#x3059;&#x308B;&#x3068;&#x30D7;&#x30EC;&#x30D3;&#x30E5;&#x30FC;&#x3067;&#x518D;&#x751F;\n
&#x52D5;&#x753B;&#x3092;&#x30BF;&#x30C3;&#x30D7;&#x3059;&#x308B;&#x3068;&#x30D7;&#x30EC;&#x30D3;&#x30E5;&#x30FC;&#x8868;&#x793A;&#x3055;&#x308C;&#x308B;\n&#x3064;&#x307E;&#x3093;&#x306A;&#x3044;&#x306A;&#x30FC;&#x3068;&#x304A;&#x3082;&#x3063;&#x305F;&#x3089;\n
&#x30E9;&#x30F3;&#x30AD;&#x30F3;&#x30B0;&#x3067;&#x3082;&#x898B;&#x308B;&#x304B;\n
\n
&#x30CB;&#x30E5;&#x30FC;&#x30B9;&#x3067;&#x3082;&#x307F;&#x308B;&#x304B;\n
\n
&#x52D5;&#x753B;&#x30E1;&#x30C7;&#x30A3;&#x30A2;&#x306F;&#x306A;&#x304C;&#x3089;&#x898B;&#x3055;&#x308C;&#x3084;&#x3059;&#x3044;\nex)TV&#x3092;&#x898B;&#x306A;&#x304C;&#x3089;&#x6F2B;&#x753B;&#x8AAD;&#x3080;\nex)&#x30CB;&#x30B3;&#x52D5;&#x898B;&#x306A;&#x304C;&#x3089;&#x30C4;&#x30A4;&#x30C3;&#x30BF;&#x30FC;\n\nApple&#x306E;&#x30AC;&#x30A4;&#x30C9;&#x30E9;&#x30A4;&#x30F3;&#x306B;&#x306F;&#x540C;&#x6642;&#x306B;&#x4E00;&#x3064;&#x306E;&#x3053;&#x3068;&#x3092;&#x3084;&#x308C;&#x3001;&#x3068;&#x66F8;&#x3044;&#x3066;&#x306F;&#x3044;&#x308B;&#x304C;\n\n
UX&#x3092;&#x6539;&#x5584;&#x3059;&#x308B;&#x306B;&#x3042;&#x305F;&#x3063;&#x3066;&#x3001;&#x8ABF;&#x67FB;&#x3057;&#x3066;&#x307F;&#x305F;\n
&#x7DCF;&#x52D9;&#x7701;&#x7D71;&#x8A08;&#x5C40;\n&#x56FD;&#x6C11;&#x751F;&#x6D3B;&#x6642;&#x9593;&#x8ABF;&#x67FB;\n\n
&#x30C6;&#x30EC;&#x30D3;&#x306E;&#x4EE3;&#x308F;&#x308A;&#x306B;&#x30CB;&#x30B3;&#x52D5;\n
\n
\n
desirable&#xFF08;&#x9B45;&#x529B;&#x304C;&#x3042;&#x308B;&#xFF09; => &#x30A8;&#x30E2;&#x30FC;&#x30B7;&#x30E7;&#x30CA;&#x30EB;&#x30C7;&#x30B6;&#x30A4;&#x30F3;&#xFF08;&#x76F4;&#x611F;&#x306B;&#x8A34;&#x3048;&#x304B;&#x3051;&#x308B;&#x30C7;&#x30B6;&#x30A4;&#x30F3;&#xFF09;\naccessible&#xFF08;&#x30A2;&#x30AF;&#x30BB;&#x30B9;&#x53EF;&#x80FD;&#xFF09;=> &#x76EE;&#x7684;&#x5730;&#x307E;&#x3067;&#x306B;&#x969C;&#x58C1;&#x304C;&#x306A;&#x3044;\n
\n
&#x516D;&#x672C;&#x6728;&#x306E;&#x30F4;&#x30A7;&#x30EB;&#x30D5;&#x30A1;&#x30FC;&#x30EC;&#x306E;&#x8DE1;&#x5730;&#x3092;&#x8CB7;&#x3063;&#x3066;&#x4F5C;&#x3063;&#x305F;&#x591A;&#x76EE;&#x7684;&#x30E9;&#x30A4;&#x30D6;&#x4F1A;&#x5834;\n360&#x5EA6;LED\n&#x4F1A;&#x5834;&#x4E2D;&#x3092;&#x30B3;&#x30E1;&#x30F3;&#x30C8;&#x304C;&#x99C6;&#x3051;&#x3081;&#x3050;&#x308B;\n\n&#x3053;&#x308C;&#x3092;&#x30E2;&#x30C1;&#x30FC;&#x30D5;&#x306B;&#x30C7;&#x30B6;&#x30A4;&#x30F3;&#x3092;&#x306D;&#x3063;&#x305F;\n
\n
\n
\n
&#x6700;&#x7D42;&#x7684;&#x306B;&#x306F;&#x611F;&#x899A;&#x7684;&#x306A;&#x3082;&#x306E;\n
\n
\n
&#x3069;&#x3053;&#x304C;&#x9055;&#x3046;&#x304B;&#x308F;&#x304B;&#x308A;&#x307E;&#x3059;&#x304B;\n
\n
\n
\n
\n
&#x65E2;&#x5B58;&#x6587;&#x5316;&#x306B;&#x5BFE;&#x3059;&#x308B;&#x7406;&#x89E3;\n
&#x30ED;&#x30C3;&#x30AF;&#x5916;&#x3055;&#x306A;&#x3044;&#x3068;&#x56DE;&#x8EE2;&#x3057;&#x306A;&#x3044;\nsafari&#x3068;&#x304B;&#x306B;&#x5408;&#x308F;&#x305B;&#x305F;&#x306F;&#x305A;&#x3060;&#x3063;&#x305F;\n
&#x69D8;&#x3005;&#x306A;&#x89B3;&#x70B9;&#x304B;&#x3089;&#x8A66;&#x884C;&#x932F;&#x8AA4;&#x3059;&#x308B;\n&#x305F;&#x3068;&#x3048;&#x3070;&#x3001;&#x3053;&#x306E;&#x30CF;&#x30CB;&#x30AB;&#x30E0;&#x69CB;&#x9020;&#x3092;&#x4F7F;&#x3063;&#x3066;&#x3044;&#x308D;&#x3093;&#x306A;&#x8996;&#x70B9;&#x304B;&#x3089;&#x898B;&#x76F4;&#x3059;&#x3068;&#x3044;&#x3044;\n
\n
\n
\n
\n
\n
\n
\n
\n
&#x30CB;&#x30B3;&#x3069;&#x3046;&#x30A2;&#x30D7;&#x30EA;&#x306E;&#x30E6;&#x30FC;&#x30B6;&#x6570;&#x306F;&#xFF13;&#x500D;&#x304F;&#x3089;&#x3044;&#x306A;&#x306E;&#x3067;&#x7D50;&#x69CB;&#x306A;&#x30C0;&#x30E1;&#x30FC;&#x30B8;\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
UDID&#x554F;&#x984C;&#x3067;SDK&#x3092;&#x5916;&#x3057;&#x305F;&#x308A;&#x5BFE;&#x5FDC;&#x304C;&#x5FC5;&#x8981;&#x306B;&#x306A;&#x3063;&#x305F;&#x3053;&#x3068;&#x3082;&#x3042;&#x3063;&#x305F;\n
\n
&#x4F3C;&#x305F;&#x3088;&#x3046;&#x306A;&#x3082;&#x306E;&#xFF1A;SSP\nSSP&#x3068;&#x306E;&#x6C7A;&#x5B9A;&#x7684;&#x306A;&#x9055;&#x3044;&#x3068;&#x3057;&#x3066;&#x81EA;&#x52D5;&#x7684;&#x306B;&#x58F2;&#x308A;&#x4E0A;&#x3052;&#x3092;&#x307F;&#x3066;&#x914D;&#x4FE1;&#x6BD4;&#x7387;&#x3092;&#x5909;&#x66F4;&#x306F;&#x3057;&#x3066;&#x3044;&#x306A;&#x3044;\n\n"&#x793E;&#x5185;&#x306E;&#x5E83;&#x544A;&#x30B5;&#x30FC;&#x30D0;&#x30FC;(OX&#x3068;&#x547C;&#x3093;&#x3067;&#x3044;&#x308B;)&#x306E;&#x7B2C;&#x4E09;&#x8005;&#x914D;&#x4FE1;&#x6A5F;&#x80FD;&#x3092;&#x4F7F;&#x7528;&#x3057;&#x3001;&#x30A2;&#x30C9;&#x30CD;&#x30C3;&#x30C8;&#x30EF;&#x30FC;&#x30AF;&#x696D;&#x8005;&#x306E;&#x914D;&#x4FE1;&#x30BF;&#x30B0;&#x3092;OX&#x306B;&#x767B;&#x9332;&#x3002;&#x5404;&#x30A2;&#x30C9;&#x30CD;&#x30C3;&#x30C8;&#x30EF;&#x30FC;&#x30AF;&#x306E;&#x914D;&#x4FE1;&#x6570;&#x3092;OX&#x5074;&#x3067;&#x53D6;&#x5F97;&#x3067;&#x304D;&#x308B;&#x306E;&#x3067;&#x3001;eCPM&#x306E;&#x6BD4;&#x8F03;&#x3092;&#x5B8C;&#x5168;&#x306B;&#x884C;&#x306A;&#x3046;&#x3053;&#x3068;&#x304C;&#x3067;&#x304D;&#x307E;&#x3059;"\n\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
&#x5BB6;&#x96FB;&#x306F;RTMP&#x306E;&#x3088;&#x3046;&#x306A;&#x8907;&#x96D1;&#x306A;&#x30D7;&#x30ED;&#x30C8;&#x30B3;&#x30EB;&#x306F;&#x6271;&#x3048;&#x306A;&#x3044;&#x3001;HTTP&#x306E;&#x3088;&#x3046;&#x306A;&#x5358;&#x7D14;&#x306A;&#x3082;&#x306E;&#x306A;&#x3089;&#x6271;&#x3048;&#x308B;\n
\n
\n
\n
\n
Advertisement