初めに
インターネット上で動画や音声のデータを活用した非同期的な通信が活発化したのは、2002年頃であった。 Youtubeやニコニコ動画と言った動画配信サービスはこの頃にリリースされたFlash Media Server (現:Adobe Media Server。以下、サーバ)を利用する形で始まった。
これから記載するRTMPというプロトコルもまた、当該サーバや当時のMacromedia Flash Player (現:Adobe Flash Player。以下、プレイヤー)の技術を土台として成り立っており、2025年現在も映像や音声(以下、データ)を配信する際には主要な通信プロトコルとしてサポートされ続けている。 一方、サーバもプレイヤーも今日ではHTML5/JavascriptおよびHTTPベースの動画転送技術に置き換えられ、製品としては既に廃止されているにも関わらず、当該プロトコルの仕様はそれらの技術や仕様の特色を今でも色濃く残している。 更には、FFmpegやOBS等に代表されるRTMP対応ツール等により、仕様が一部拡張された形跡もある。
これ以上ツールベンダ独自の仕様追加はないであろう(そう信じたい)1が、筆者自身およびこれから当該プロトコルの実装を試みる開発者への仕様理解の一助になることを願い、2025年時点での当該プロトコルの仕様や関連技術を記事として公開する。
Footnotes
-
といってる傍で、Veovera Software Organizationによって仕様が強化されており、2025年時点でバージョン2が公開されていることを確認した。
https://veovera.org/docs/enhanced/enhanced-rtmp-v2
文面からはメディアデータ送受信の際のコーデック情報の追記のみに見えるが、現行製品の振る舞いと同等の内容が反映されている。
記事の本筋からは外れるため、参考情報程度に留めておく。 ↩