Skip to content

Instantly share code, notes, and snippets.

@voluntas
Last active September 12, 2020 14:29
Show Gist options
  • Save voluntas/db82783b6a3f012977e6de641a16181e to your computer and use it in GitHub Desktop.
Save voluntas/db82783b6a3f012977e6de641a16181e to your computer and use it in GitHub Desktop.
Sora と Momo で WebRTC の AV1 を試す

Sora と Momo で WebRTC の AV1 を試す

前提

Sora Labo と Momo の使い方は把握している前提の資料です

  • Sora Labo を利用します
  • macOS 10.15 であること
  • ブラウザではまだ確認できません
  • libwebrtc は master のほぼ最先端を利用しています
  • SDL を利用しての動作確認です
  • フィードバックは Discord の general でどうぞ
  • Momo を2つ起動する必要があります

Momo ダウンロード

以下から momo-2020.6_macos-10.15.tar.gz をダウンロードしてください。

https://github.com/shiguredo/momo/releases/tag/2020.6

動作確認

macOS での動作注意

セキュリティで、動作させるために一手間いります。

実行できない

まず実行すると以下が出ます

最初実行した時

許可

そのあと、システム環境設定のセキュリティとプライバシーの一般から、 ダウンロードしたアプリケーションの実行許可のこのまま許可をおします。

再実行

このまま許可を押す

再度実行すると開くが追加されてるので開くをおします。

開くを押す

送信側

チャネル ID とシグナリングキーは変更してください

./momo --no-audio-device sora wss://sora-labo.shiguredo.jp/signaling voluntas@av1 --audio false --video true --video-codec AV1 --role sendonly --metadata '{"signaling_key": "hqUpW4EMPBltgH-DMgcPW0bgJH-2icZMzV6dXYlM8aYMC5lX"}'

リモート統計でエンコーダをチェックする

リモート統計でエンコーダーをチェック

    {
      "bytesSent": 279459,
      "codecId": "RTCCodec_video_MgXdZC_Outbound_120",
      "encoderImplementation": "libaom",
      "firCount": 0,
      "framesEncoded": 135,
      "headerBytesSent": 8340,
      "id": "RTCOutboundRTPVideoStream_3737227746",
      "isRemote": false,
      "keyFramesEncoded": 1,
      "kind": "video",
      "mediaSourceId": "RTCVideoSource_1",
      "mediaType": "video",
      "nackCount": 0,
      "packetsSent": 310,
      "pliCount": 0,
      "qpSum": 15871,
      "qualityLimitationReason": "none",
      "qualityLimitationResolutionChanges": 0,
      "remoteId": "RTCRemoteInboundRtpVideoStream_3737227746",
      "retransmittedBytesSent": 0,
      "retransmittedPacketsSent": 0,
      "ssrc": 3737227746,
      "timestamp": 1586165181374655,
      "totalEncodeTime": 1.29000000000000003553e+00,
      "totalEncodedBytesTarget": 392867,
      "totalPacketSendDelay": 3.99930000000000021032e+01,
      "trackId": "RTCMediaStreamTrack_sender_1",
      "transportId": "RTCTransport_video_MgXdZC_1",
      "type": "outbound-rtp"
    },

受信側

./momo --no-audio-device --use-sdl sora wss://sora-labo.shiguredo.jp/signaling voluntas@av1 --audio false --video true --video-codec AV1 --role recvonly --metadata '{"signaling_key": "hqUpW4EMPBltgH-DMgcPW0bgJH-2icZMzV6dXYlM8aYMC5lX"}'

受信スクリーンショット

Image from Gyazo

マルチストリームで双方向で動かす

AV1 はマルチストリームでも利用可能です。AV1 を利用した簡易会議システムを堪能してみてください。

音声なし

チャネル ID とシグナリングキーは変更してください

./momo --no-audio-device sora wss://sora-labo.shiguredo.jp/signaling voluntas@av1-multi --audio false --video true --video-codec AV1 --role sendrecv --multistream --metadata '{"signaling_key": "hqUpW4EMPBltgH-DMgcPW0bgJH-2icZMzV6dXYlM8aYMC5lX"}'

音声あり

チャネル ID とシグナリングキーは変更してください

./momo sora wss://sora-labo.shiguredo.jp/signaling voluntas@av1-multi --audio true --video true --video-codec AV1 --role sendrecv --multistream --metadata '{"signaling_key": "hqUpW4EMPBltgH-DMgcPW0bgJH-2icZMzV6dXYlM8aYMC5lX"}'
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment