meteor Tech Blog

メテオのエンジニアブログです。技術情報を日々発信していきます。

Kyushu Security Conference 2018で配信してきた話

先日、9月29日(土)-30日(日)にKyushu Security Conference 2018が開催された。

kyusec.student-kyushu.org

私は昨年から運営メンバーとして参加し、今年は長崎と熊本のサテライト会場のためにライブ配信を担当した。

元々、仕事ではライブ配信サービスに携わりながらも、実際に配信する経験はあまりなく、とても勉強になった。

今回はRoland VR-4HDを持ち込み、マイクやスピーカー等は会場のものを利用した。

最初はケーブルノイズに悩まされながらも、試行錯誤した結果、ノイズが少し減って良かった。

配信は当初はDiscordでビデオ通話という形で行おうとしたが、どうやら学内ネットワークがDiscordのサーバへ到達が出来ないことが発覚し、YouTube Liveで配信することになった。

YouTube LiveはWebRTCを使うカメラ配信と従来通りのエンコーダ配信の二種類がある。

medium.com

今回はそんなに遅延は考慮していなかったので、OBSを使ったエンコーダ配信を選択した。

VR-4HDはUSB Video Classをサポートしているのでドライバーを入れることもなく、そのまま映像をキャプチャすることができた。

エンコードに関してはYouTubeの公式によると最大6Mbpsがいいとのことだったので、その通りに設定した。

support.google.com

また、最初はVBRエンコードをしていたが、視聴者からブロックノイズが多いとの意見があったのでCBRに変更をした。

そのほか、遅延をなるべく抑えるためにキーフレームを1秒に設定し、Bフレームは使わないようにした。

また、デスクトップPCを持ってこようと思ったが、筐体まるごと持ってくるのは難しかったのでマザーボードと電源とSSDGeForce GTX 960を持ってきた。

GeForce GTX 960を持ってきたのは、NVENCと呼ばれるハードウェアエンコードをしたいと思ったのが理由である。

NVENCはGPUで全部処理してくれるのでとても便利である。

NVENCはnvidia-smiで値を取れるので、Mackerelでエンコード負荷を監視した。

ちなみに、mackerel-agent-pluginsにあるものだとエンコード負荷の部分が取れないので自作した。

その結果、二日間配信していて、特にトラブルもなく無事に終えて良かった。

ネットワーク周りも問題なく、SINETの圧倒的パワーにより助けられた。

ちなみに本会場とのラグは3秒くらいだった。もっと遅延を少なくすることも出来るけど、今回はそんなに頑張らなくても良かったので満足。仕事では0.5秒の遅延の世界を経験しているので、遅延を減らす大変さはとても理解している。

サテライト会場も無事でなによりだった。

 

最後に運営の皆さん、お疲れさまでした。