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
92
動画配信のフロントエンドって何やってるの
フロントエンド合同勉強会(DMM×PRTimes)での登壇資料。
mse/emeについて軽く触れている。
Yuta Imanishi
March 07, 2024
Tweet
Share
More Decks by Yuta Imanishi
See All by Yuta Imanishi
動画配信の フロントエンドを支える 4年間とこれから
nisshii0313
1
500
"動画"配信のお話
nisshii0313
0
32
Electronで動画プレイヤー開発
nisshii0313
1
1.4k
Prometheusの話
nisshii0313
0
190
Other Decks in Technology
See All in Technology
Observability — Extending Into Incident Response
nari_ex
2
740
2025/10/27 JJUGナイトセミナー WildFlyとQuarkusの 始め方
megascus
0
110
仕様駆動開発を実現する上流工程におけるAIエージェント活用
sergicalsix
10
5.4k
[re:Inent2025事前勉強会(有志で開催)] re:Inventで見つけた人生をちょっと変えるコツ
sh_fk2
1
1.2k
書籍『実践 Apache Iceberg』の歩き方
ishikawa_satoru
0
450
AI時代の発信活動 ~技術者として認知してもらうための発信法~ / 20251028 Masaki Okuda
shift_evolve
PRO
1
140
サブドメインテイクオーバー事例紹介と対策について
mikit
14
6.5k
251029 JAWS-UG AI/ML 退屈なことはQDevにやらせよう
otakensh
0
180
プロダクト開発と社内データ活用での、BI×AIの現在地 / Data_Findy
sansan_randd
1
790
データエンジニアとして生存するために 〜界隈を盛り上げる「お祭り」が必要な理由〜 / data_summit_findy_Session_1
sansan_randd
1
920
abema-trace-sampling-observability-cost-optimization
tetsuya28
0
460
今から間に合う re:Invent 準備グッズと現地の地図、その他ラスベガスを周る際の Tips/reinvent-preparation-guide
emiki
1
260
Featured
See All Featured
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
658
61k
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
31
2.7k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
140
34k
Raft: Consensus for Rubyists
vanstee
140
7.2k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
Visualization
eitanlees
150
16k
Mobile First: as difficult as doing things right
swwweet
225
10k
How to Think Like a Performance Engineer
csswizardry
27
2.2k
Designing Experiences People Love
moore
142
24k
GraphQLの誤解/rethinking-graphql
sonatard
73
11k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.3k
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/