Flash が死ぬと RTMP はどうなるのか

Flash が 2020 年に終わってしまうらしく、 WebRTC をやっていると RTMP の代替として相談されることが多くなってきた。ただ話を聞いても、それ WebRTC である必要があるか?と思うことが多くなってきた。

RTMP は TCP ベース。UDP ベースの RTMFP もあるようだがあまり使われていないようだ。そもそも RTMFP は P2P で使われるので、これが WebRTC と同じ扱い。

基本的に RTMP は一方向の配信に使われているようだが、HLS/MPEG-DASH と違うのは PUSH で配信できるという仕組み。つまり遅延が少ない。

RTMP から切り替えたいお客様の話を聞く限りは 1–2 秒の遅延らしい。HLS/MPEG-DASH だと頑張れば 1–2 秒行けそうだが普通は 10 秒以上は遅延してしまう。

RTMP のメリットとして CDN が使える事がありそうだ。RTMP の CDN が具体的にどんなことをしているのかはわからないが、大規模に遅延が少なく配信できるようだ。WebRTC は残念ながら数万という大規模配信は難しい。

さて、タイトルの Flash が死ぬとどうなるかだが、ブラウザから配信する手段がなくなるというのがある。

RTMP を使う場合はブラウザから気軽に配信できていたが、今後は WebRTC ベースでない限りは配信できなくなる。

そもそもブラウザから配信する人は珍しく、基本は専用ツールを使うので、あまりこのあたりが致命的になりそうにない。

RTMP も HLS/MPEG-DASH の超低遅延配信を実現することで代替として使えそう。Flash が死にそうだから WebRTC に移行するという話もなさそうだ。

WebRTC はあくまで 200–500 ミリ秒という遅延しかない世界が求められる場合でのみ必要とされる技術なので、1–2 秒遅延してもいい場合は選択肢に入らない。

HLS/MPEG-DASH による低遅延配信を利用することで RTMP の代替はもう十分でてきており、Flash が死んでも困らなさそう。

ただ低遅延配信を実現する技術を持っている前提になる。これを実現するのがどの程度難しいのかはまた別の機会に調べてみたい。

蛇足だが Akamai が色々やっている記事を紹介したい。

HLS ベースだがクライアントから UDP で送信して、Akamai のサーバでキャッシュして QUIC で払い出すというまさかの UDP ベースの CDN にをやったりしてる。

さらには新しい規格 CMAF を導入して、遅延が少ない仕組みを導入したりしている。

この辺はとても面白そうなので少し追いかけてみたい。QUIC は来年の課題の一つだ。

Written by

Erlang/OTP / 時雨堂 / WebRTC / E2EE

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store