Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
動画配信のフロントエンドって何やってるの
Search
Yuta Imanishi
March 07, 2024
Technology
0
70
動画配信のフロントエンドって何やってるの
フロントエンド合同勉強会(DMM×PRTimes)での登壇資料。
mse/emeについて軽く触れている。
Yuta Imanishi
March 07, 2024
Tweet
Share
More Decks by Yuta Imanishi
See All by Yuta Imanishi
動画配信の フロントエンドを支える 4年間とこれから
nisshii0313
1
320
"動画"配信のお話
nisshii0313
0
25
Electronで動画プレイヤー開発
nisshii0313
1
1.3k
Prometheusの話
nisshii0313
0
180
Other Decks in Technology
See All in Technology
MLflowの現在と未来 / MLflow Present and Future
databricksjapan
1
200
LangGraphを使ったAIエージェント実装
iwakiyusaku
1
170
eBPF-based Process Lifecycle Monitoring
yukinakanaka
1
150
単一の深層学習モデルによる不確実性の定量化の紹介 ~その予測結果正しいですか?~
ftakahashi
PRO
3
440
OPENLOGI Company Profile for engineer
hr01
1
21k
みんなで育てるNewsPicksのSLO
troter
4
930
Autonomous Database サービス・アップデート (FY25)
oracle4engineer
PRO
1
550
セキュリティグループの”タイプ”を改めて考えてみる
masakiokuda
0
150
目次機能実装から理解するLexical Editor
wtdlee
0
100
AI_Agent_の作り方_近藤憲児
kenjikondobai
19
5.3k
ドメインイベントを活用したPHPコードのリファクタリング
kajitack
0
570
OCI Oracle Database Services新機能アップデート(2024/12-2025/02)
oracle4engineer
PRO
2
150
Featured
See All Featured
Testing 201, or: Great Expectations
jmmastey
42
7.3k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
11
580
Practical Orchestrator
shlominoach
186
10k
How STYLIGHT went responsive
nonsquared
99
5.4k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
4
470
Side Projects
sachag
452
42k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
28
9.3k
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.4k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
49k
Optimising Largest Contentful Paint
csswizardry
34
3.1k
Fantastic passwords and where to find them - at NoRuKo
philnash
51
3.1k
Transcript
動画配信の フロントエンドって 何やってるの? DMM.com 動画配信開発部 配信基盤G 今西勇太
2 自己紹介 名前: 今西勇太 (@nisshii0313) 所属: 動画配信開発部 配信基盤G 最近は主にPS4/5、テレビ向けの 動画再生プレイヤーを触ってます
(for DMM TV) 外部向けなFE勉強会の運営もやってます Think! Frontend by DMM 近況報告: 推し(内田真礼さん)がゲーミングPC買うためにドス パラでロケするらしいので、思い立って自作PCしまし た。
3 自作PC組んだよ〜 構成はこんな感じです : https://jisaku.com/pc/FrLW5VHFETwsmj6gJBJSKf (もやし生活を回避するために、4070tiにしました。4080superはしんどい...) 大きなパーツに関しては白で統一してあります。 (白くて光る8pinケーブル買い足さなきゃ) (モジャモジャ配線もついでに綺麗にしたい) 4Kなホグワーツレガシーが快適に遊べてます。
その他、アニメの録画鯖を建てようとしてます。 完成すれば、各クール全アニメ履修できるね :+1: 受信用のアンテナ買わなきゃ...
動画配信の フロントエンドって 何やってるの? DMM.com 動画配信開発部 配信基盤G 今西勇太
動画を流すって... パッと思いつくのは video タグかと思います。 https://developer.mozilla.org/ja/docs/Web/HTML/Element/video
動画を流すって... パッと思いつくのは video タグかと思います。 https://developer.mozilla.org/ja/docs/Web/HTML/Element/video ここがあんまり 嬉しくない...
なんで嬉しくないの? 大きく分けて2つ理由があります。 - ユーザーフレンドリーに再生したい - 悪い人に盗み見られるかも...
- ユーザーフレンドリーに再生したい - ユーザーの回線環境はまちまち (携帯な会社はどこも大変そうね...) - それでも安定して再生するために「ABR」って技術を使ってる (画質「AUTO」ってあるアレです) → 画角の異なる動画を複数(たくさん)用意して、適宜切り替えたい
→ videoタグにsourceで渡せるのって動画形式が異なるもの数本程度 (同じ動画形式で画角が異なるものを動的に切り替えるのは大変) → Media Source Extensions って技術が必要になる なんで嬉しくないの?
- ユーザーフレンドリーに再生したい → ABRの技術を使って、ユーザーに安定して視聴してもらうには、 Media Source Extensions (以降 MSE) の技術を使って再生する必要がある
↑ 結局はJavaScriptからvideoタグの細かい機能を拡張するためのAPI ゴリゴリ書いても良いし、便利なライブラリも多々あります。 なんで嬉しくないの?
なんで嬉しくないの? 大きく分けて2つ理由があります。 - ユーザーフレンドリーに再生したい - 悪い人に盗み見られるかも...
なんで嬉しくないの? - 悪い人に盗み見られるかも... - みんな大好き、著作権のお話です (cf. DRM) - 細かい話をするとキリがないので、とりあえず アニメやライブコンテンツ等を
「買った人だけ見れるようにする」の実現を考えます - そのためには、適宜暗号化しておいて、再生する前に 権利のあるユーザーだけ復号できる仕組みが必要 → Encrypted Media Extensions って技術が必要になる mp4だとコピーして 再生できちゃうよね ...
なんで嬉しくないの? - 悪い人に盗み見られるかも... → 解決するためには、暗号化された動画を Encrypted Media Extensions (以降EME) の技術で復号して再生する
必要がある ↑これもMSEに基づいたJavaScriptなAPI MSEを扱いやすくしてくれるライブラリは大抵EME対応してくれている ので、難しく考えすぎなくてもOK
結論 動画配信のフロントエンドって何やってるの? - 色んな回線のユーザーが安定して動画を視聴できたり - 買った人だけがアニメを見れる 世界線を作るために、MSE/EME の技術 (に対応したライブラリを) 使って
快適に動画が見れる環境作りをしています。 (cf. https://github.com/shaka-project/shaka-player ありがとうGoogle 🙏) もちろん、再生ページ自体もサクサクじゃないとなので、 いわゆるwebフロントの最適化みたいなところもやってます 💪
おまけ: 宣伝 今日話した内容が5分で話せる限界な気がするんですが、 10分もらって話せる機会が月末にあるので興味持っていただければぜひ! EMEの部分とか結構すっ飛ばして喋ったので、そこらへん詳しく話そうかなと 思ってますー。 https://connpass.com/event/304679/