見出し画像

動画配信の技術を使った新サービス「授業全録システム」の開発秘話

2024年5月にアップストリームから「授業全録システム」というサービスがリリースされました。今回はCTOの小西さんと「授業全録システム」の開発にかかわったエンジニアの吉田さんに開発で気を付けたポイントや技術的に苦労した点、開発していて楽しかった部分など、赤裸々にお話させていただきます。

■「授業全録システム」とは?

 2024年5月にアップストリームがリリースした授業を録画し、クラウド上で生徒があとから授業を見返すことが出来るサービスです。学校などの教育機関がこのサービスを導入することにより、感染症などの理由によって投稿が出来ない生徒の学習の遅れの解消や不登校児童の学習能力低下の軽減、授業の復習による学力向上を目的としています。

-開発に用いた言語を教えてください!

CTO:GoとTypescript(React)を用いて開発を行っていきました。企画をしていた段階ではどれくらいの利用があるかわからなかったため、まずはランニング費用を下げるために、利用がないときに課金が発生しないLambdaなどのサーバレスな仕組みを使いたかったんです。結果、Lambdaと相性がいいGoと、フロントエンドもSPAで構築がしやすいReactを採用という感じです。
また、RaspberryPi上で動かすプログラムも、カメラからの映像ストリームを効率よく処理する必要があったので、Goはその点でも最適だとおもいます。

-開発で特に気を付けたポイントを教えてください!

CTO:アーキテクチャ的に気を付けたのは、カメラなどの録画ができるようにするシステムを学校の設備としておくことになるので、それらのメンテナンス性についてですね。

具体的にいうと、下記の3点です。
・グローバルIPを各設備に振ることはできないので、リモートからどのようにメンテナンスできるようにするか
・壊れたときに、交換ができるようにする。交換がしやすく、交換後簡単に利用できるような仕組みが必要
・一校にたくさんの設備を設置することになるので、設備のキッティングのしやすさ

それ以外では、私の母校である筑波大学に共同研究として協力してもらい、カメラの配置位置、マイクの配置位置などを実際の教室を使いながら音源や映像がクリアになるように調査検討したりもしました。

-開発で技術的に苦労した点があれば教えてください。

CTO:この辺は実際に開発をしてくれた吉田さんに聞いてみましょうか。苦労した点ってどの辺でした?

吉田:そうですね…。カメラ1台ごとのモジュールでの開発だったので、各個体へのアクセスやメンテナンス手段を確保したり、自動アップデートを検知してアプリを終了させて再起動…といったライフサイクルの実装は地道で苦労した点かもしれません。あとは、あまり性能が高くない機器で映像を処理することもあり、映像パケットの処理に間に合わずパケットロスしてしまう事が当初稀にですが起きていました。その調査に始まり処理の最適化から解決まで、かなり時間をかけた部分だと思います。

CTO:どうやってNAT下に置かれた機材をメンテするかや、壊れたときや不具合が起きたときの対応のしやすさなど、いろいろ考えることが多かったですね。また機材のコストも重要でした。いろいろな制約がある中で、すべてクリアするように工夫できたので、扱いやすい製品になったかと思います。頑張ってくれてありがとうございました。

-開発していて楽しかった部分を教えてください!

CTO:吉田さんどの辺が楽しかったですか?

吉田:カメラがガジェット的に楽しくて、機器に出来ることの範囲内で、それをうまく駆使してやっている…という感じが好きでした。あとは、インストール処理やライフサイクル実現にあたってLinuxの基本的な機能は割と網羅する必要があり、得た知識があとで個人的にサーバをセッティングする際に大いに役立ちましたね。

CTO:AWSなどのパブリッククラウドを使っていると、この辺はあまり気にせずできてしまうので、IoT的な製品ならではな感じですよね。

吉田:それ以外だと、フロントエンドでの開発で大谷さん(フロントエンジニア)と協力してブラウザ側で対応した話ですが、マイク録音について、授業中でも空調とかOHPなどの機材由来のノイズが意外にもかなり大きく乗ってしまうことがわかったので、簡易的なノイズキャンセルを実装しました。個人的には音声信号処理が大好きなんですが、なかなか触れる機会がないので久々に楽しかったです。

CTO:ちょっと、コスト意識しすぎて、ノイズが多かったときには心配になりましたが、ハードウェアの問題をソフトウェアで解決できて感動しました。

インタビューにご協力いただいた小西さん、吉田さんありがとうございました!

「授業全録システム」は2024年5月にリリースを開始しました。先行して導入を検討している学校や企業からの問い合わせもお待ちしております。
お問合せはこちらから


この記事が気に入ったらサポートをしてみませんか?