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
千葉県の某工業大学にいる普通の学生です。
Rustを使⽤した模擬MoIP CoMoFell AketiMaika
⽬次 Rustってそもそも何? MoIPってなに? 設計をしてみよう! 実際作ってみて 使ってみて 感想
Rustってそもそも何? 性能、メモリ安全性、安全な並⾏性を⽬指して設計された マルチパラダイムのプログラミング⾔語 2016年から開発が⾏われている WezTerm等々、近年様々な場⾯で活躍 今回はRustがどれほどの性能であるかを 確認して⾒るため採⽤ 使ってみたかっただけ
MoIPってなに? 正式名称 : Media over IP 放送・映像制作設備を従来の専⽤配線からIPネットワークベースへ 移⾏するための技術 Show net Media X という取り組みがとても⾯⽩かった ほほう?? → 作ってみるか! というわけで作った。 ↑誰が喋ってもshownetな資料↑
設計をしてみよう! 正式名称 AMoRe Aketi Media over IP on Rust engine 使⽤機器 ProxMoxVEのVMくん(4コア/4GB/64GB) Chromiumが使えるPC インターネット~IXルーターを添えて~ わからせ済みのCodexくんとClaudeちゃん ↑Proxmoxはこんな感じに↑
設計をしてみよう! Mission 可能な限り既存OSSを活⽤して構築する。 複数のカメラ映像をOBSへ取り込み、 OBSで合成・切り替え・配信できるようにする。 低遅延・⾼画質な映像・⾳声伝送を⾏う。 ブラウザ側はJavaScript、Server側の接続・設定管理などの ⾃作部分はRustで実装する。既存OSSの実装⾔語は制限しない。 Server側の設定はAMoRe.yamlで管理する。 対象には録画保存先、接続上限、映像・⾳声品質、接続先、 SRTの遅延設定を含める。 ブラウザの機器利⽤許可とOBS・監視製品側の設定⽅法は、 それぞれの製品仕様に従う。
実際作ってみて 構造 作り⽅ 1. ⼈間がひたすら要件定義書を書くます。 2. Codexに投げていい感じに情報を追加します。 3. Claudeに作ってもらいます。 4. 完成です。
実際作ってみて 使⽤OSS/プロトコル Rust ︓Server側の⾃作処理。 JavaScript ︓ブラウザの送信画⾯と機器・接続制御。 WebRTC ︓ブラウザ→Serverの映像・⾳声伝送。 SRT ︓Server→OBSの伝送。 Docker ︓Server上のアプリケーション実⾏環境。 OBS ︓映像受信・合成・切り替え・配信。 WebRTC受信、MPEG-TSへの格納、コーデック変換、SRT送信に使⽤する OSSは、機能・性能・ライセンスを⽐較して選定する。
使ってみて 映像品質 そこまで劣化なし ⾊の変化もなし カメラ → 管理 間は同じNetなので基本的に遅延なし 管理 → OBS 間は3秒ほどの遅延あり(原因究明中) 良かった点 GUIでぽちぽちするだけ コンテナでカメラごとに管理してる 悪かった点 ローカルで使うことしか考えてないところ
使ってみて カメラ側 管理側
使ってみて OBS側 実際の配置
感想 サーバーさえしっかり動いていればなんとかなる。 VPNで実験を試みたが、学校のネットがカス不調だったので 実験できず デザリング+VPNでは通信に成功した なんかおもろいおもちゃが簡単にできるようになった。 ドメインを振ってVPNを使⽤せずサービスを利⽤可能にしたい AMoRe.yamlの設定可能範囲を拡張したい。
GitHudはこちら!! https://github.com/Aketi-Maika/AMoRe