Rustを使用した模擬MoIP

657 Views

October 13, 26

スライド概要

<2026/10/11 M.E.L.Tにて>
本発表では、Rustを使用して開発した模擬MoIP(Media over IP)システム「AMoRe(Aketi Media over IP on Rust engine)」について紹介している。

MoIPとは、放送・映像制作設備を従来の専用配線からIPネットワークへ移行する技術であり、発表者はInterop Tokyoの「ShowNet Media X」に触発されて本システムの開発を行った。

システム開発では、性能や安全性に優れるRustをサーバー側の実装言語として採用し、既存のOSSを最大限活用することを目標とした。構成としては、ブラウザからWebRTCで映像・音声を送信し、サーバーで処理した後にSRTを利用してOBSへ配信する仕組みとなっている。また、設定情報はAMoRe.yamlで管理し、録画先や接続上限、映像品質などを設定できるように設計された。

実装にはRust、JavaScript、WebRTC、SRT、Docker、OBSなどの技術を利用し、AI支援ツールであるCodexやClaudeも開発工程で活用した。

動作検証の結果、映像品質の劣化や色変化はほとんど見られず、カメラから管理サーバー間では遅延もほぼ発生しなかった。一方で、管理サーバーからOBSまでの経路で約3秒の遅延が確認されており、現在も原因を調査中である。GUIによる簡単な操作や、カメラごとにコンテナ管理できる点が利点として挙げられた。

今後の課題として、VPNを使用せずに利用できる環境の整備や、AMoRe.yamlで設定可能な項目の拡張が挙げられている。また、実験を通じてMoIPシステムを比較的容易に構築できることを確認し、さらなる機能強化への展望が示された。

https://github.com/Aketi-Maika/AMoRe

profile-image

千葉県の某工業大学にいる普通の学生です。

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

(ダウンロード不可)

関連スライド

各ページのテキスト
1.

Rustを使⽤した模擬MoIP CoMoFell AketiMaika

2.

⽬次  Rustってそもそも何?  MoIPってなに?  設計をしてみよう!  実際作ってみて  使ってみて  感想

3.

Rustってそもそも何?  性能、メモリ安全性、安全な並⾏性を⽬指して設計された マルチパラダイムのプログラミング⾔語  2016年から開発が⾏われている  WezTerm等々、近年様々な場⾯で活躍  今回はRustがどれほどの性能であるかを 確認して⾒るため採⽤  使ってみたかっただけ

4.

MoIPってなに?  正式名称 : Media over IP  放送・映像制作設備を従来の専⽤配線からIPネットワークベースへ 移⾏するための技術  Show net Media X という取り組みがとても⾯⽩かった  ほほう?? → 作ってみるか! というわけで作った。 ↑誰が喋ってもshownetな資料↑

5.

設計をしてみよう!  正式名称  AMoRe  Aketi Media over IP on Rust engine  使⽤機器  ProxMoxVEのVMくん(4コア/4GB/64GB)  Chromiumが使えるPC  インターネット~IXルーターを添えて~  わからせ済みのCodexくんとClaudeちゃん ↑Proxmoxはこんな感じに↑

6.

設計をしてみよう!  Mission  可能な限り既存OSSを活⽤して構築する。  複数のカメラ映像をOBSへ取り込み、 OBSで合成・切り替え・配信できるようにする。  低遅延・⾼画質な映像・⾳声伝送を⾏う。  ブラウザ側はJavaScript、Server側の接続・設定管理などの ⾃作部分はRustで実装する。既存OSSの実装⾔語は制限しない。  Server側の設定はAMoRe.yamlで管理する。 対象には録画保存先、接続上限、映像・⾳声品質、接続先、 SRTの遅延設定を含める。  ブラウザの機器利⽤許可とOBS・監視製品側の設定⽅法は、 それぞれの製品仕様に従う。

7.

実際作ってみて  構造  作り⽅ 1. ⼈間がひたすら要件定義書を書くます。 2. Codexに投げていい感じに情報を追加します。 3. Claudeに作ってもらいます。 4. 完成です。

8.

実際作ってみて  使⽤OSS/プロトコル  Rust ︓Server側の⾃作処理。  JavaScript ︓ブラウザの送信画⾯と機器・接続制御。  WebRTC ︓ブラウザ→Serverの映像・⾳声伝送。  SRT ︓Server→OBSの伝送。  Docker ︓Server上のアプリケーション実⾏環境。  OBS ︓映像受信・合成・切り替え・配信。  WebRTC受信、MPEG-TSへの格納、コーデック変換、SRT送信に使⽤する OSSは、機能・性能・ライセンスを⽐較して選定する。

9.

使ってみて  映像品質  そこまで劣化なし  ⾊の変化もなし  カメラ → 管理 間は同じNetなので基本的に遅延なし  管理 → OBS 間は3秒ほどの遅延あり(原因究明中)  良かった点  GUIでぽちぽちするだけ  コンテナでカメラごとに管理してる  悪かった点  ローカルで使うことしか考えてないところ

10.

使ってみて カメラ側 管理側

11.

使ってみて OBS側 実際の配置

12.

感想  サーバーさえしっかり動いていればなんとかなる。  VPNで実験を試みたが、学校のネットがカス不調だったので 実験できず  デザリング+VPNでは通信に成功した  なんかおもろいおもちゃが簡単にできるようになった。  ドメインを振ってVPNを使⽤せずサービスを利⽤可能にしたい  AMoRe.yamlの設定可能範囲を拡張したい。

13.

GitHudはこちら!! https://github.com/Aketi-Maika/AMoRe