2024-04-15

Enhanced RTMPのアップデート

21年振りにRTMPの新仕様 Enhancing RTMP, FLV について

ブログでお伝えした Enhanced RTMP (eRTMP) ですが、マルチエンコーディングによる配信が話題になっています。

Twitch Help Portal

eRTMPでは、従来のRTMPを拡張した形で様々なコーデックが使えるようになりました。その代表例がAV1です。

H.264に比べて、圧縮率が高く、その分空いた帯域で、どうせなら複数解像度を同時エンコードして送っちゃおうという取り組みが始まりました。

従来、Adaptive Bitrateと呼ばれる、視聴者の帯域幅に合わせて画質を切り替える仕組みはサーバサイドで行われていました。しかし、サーバサイドでのエンコードを行うには、バッファリングを行ったり、デコードとエンコードの遅延により、オリジナルに比べて遅延が発生していました。

これを、オリジンで一気にエンコードかけて、サーバサイドはトランスコードを行うだけ、という仕組みが eRTMP の仕様に入りました。

enhanced-rtmp/docs/enhanced/enhanced-rtmp-v2.md at main · veovera/enhanced-rtmp

eRTMPの仕様はGitHubで公開されており、現在はv2がリリースされています。このv2で、マルチトラックストリーミングがサポートされました。

また、RTMPではあまり使われなかったAMF3が推奨されており、これによりペイロードサイズの最適化が期待されます。

他にもいろいろな仕様が追加されていますが、個人的には、PacketTypeMetadataでHDRメタデータを配信するあたりが、面白いと感じています。

このマルチトラックストリーミングですが、AmazonのエンジニアによりOBS StudioにPRが送られており、間もなくマージ予定です。

Multitrack video rtmp-services additions by palana · Pull Request #10543 · obsproject/obs-studio

ほかにも、マルチトラックストリーミングに対応するために、NVIDIAがNVENCを拡張したりと、色々な企業が関わっているからこそ出来る技なのかもしれませんね。