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
66
動画配信のフロントエンドって何やってるの
フロントエンド合同勉強会(DMM×PRTimes)での登壇資料。
mse/emeについて軽く触れている。
Yuta Imanishi
March 07, 2024
Tweet
Share
More Decks by Yuta Imanishi
See All by Yuta Imanishi
動画配信の フロントエンドを支える 4年間とこれから
nisshii0313
1
260
"動画"配信のお話
nisshii0313
0
15
Electronで動画プレイヤー開発
nisshii0313
1
1.3k
Prometheusの話
nisshii0313
0
180
Other Decks in Technology
See All in Technology
[SRE kaigi 2025] ガバメントクラウドに向けた開発と変化するSRE組織のあり方 / Development for Government Cloud and the Evolving Role of SRE Teams
kazeburo
4
1.9k
panicを深ぼってみる
kworkdev
PRO
2
140
サービスローンチを成功させろ! 〜SREが教える30日間の攻略ガイド〜
mmmatsuda
2
4.4k
地方企業がクラウドを活用するヒント
miu_crescent
PRO
1
110
GitLab SelfManagedをCodePipelineのソースに設定する/SetGitLabSelfManagedtoCodePipeline
norihiroishiyama
1
120
パブリッククラウドのプロダクトマネジメントとアーキテクト
tagomoris
4
760
20250125_Agent for Amazon Bedrock試してみた
riz3f7
2
110
攻撃者の視点で社内リソースはどう見えるのかを ASMで実現する
hikaruegashira
4
2.1k
ソフトウェアアーキテクトのための意思決定術: Software Architecture and Decision-Making
snoozer05
PRO
17
4k
RevOpsへ至る道 データ活用による事業革新への挑戦 / path-to-revops
pei0804
3
800
プロダクト開発、インフラ、コーポレート、そしてAIとの共通言語としての Terraform / Terraform as a Common Language for Product Development, Infrastructure, Corporate Engineering, and AI
yuyatakeyama
6
1.6k
Re:Define 可用性を支える モニタリング、パフォーマンス最適化、そしてセキュリティ
pyama86
9
5.6k
Featured
See All Featured
How to train your dragon (web standard)
notwaldorf
89
5.8k
YesSQL, Process and Tooling at Scale
rocio
171
14k
GraphQLとの向き合い方2022年版
quramy
44
13k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
127
19k
RailsConf 2023
tenderlove
29
980
Bootstrapping a Software Product
garrettdimon
PRO
305
110k
A Philosophy of Restraint
colly
203
16k
Optimising Largest Contentful Paint
csswizardry
33
3k
Done Done
chrislema
182
16k
The Straight Up "How To Draw Better" Workshop
denniskardys
232
140k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
28
4.5k
Why Our Code Smells
bkeepers
PRO
335
57k
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/