🍃このブログは移転しました。
3秒後、自動的に移動します・・・。

WebRTC Meetup Tokyo #21 に行ってきたメモ #webrtcjp

WebRTC Meetup Tokyo #21 : ATND

今回は五反田にあるFreee社にて。

いつだかのNode学園祭の打ち上げで使ったところですね。
夜間入り口はコンビニ横で少しわかりにくい・・w

AV1 Patent issue by @dynamitter

AV1 Patent Issue - Speaker Deck

TL;DR

  • AV1はこれからのコーデック
    • 実用もできるが重い
  • パテント問題について話すよ

歴史

  • Googleが発起人となってパテントフリーの動画コーデックを作ろうとしたのがはじまり
  • VP8をOSS
  • MPEG/LAがVP8の特許プール設立を呼びかけ
    • 合意したのは11社ほどで、VP8、VP9を対象
    • AV1やその後継は対象外
  • Nokiaが特許侵害を申し立てた
  • 他のコーデックにもパテントプールはある
    • H.265に関してはなんとパテントプールが複数ある

AV1

  • 2015年、AOMが開発をはじめる
  • 2018年、AV1 v1.0の仕様が公開される
  • ちなみに、AOMへの加入費は高くない(高いけど)

実用的なデコーダ

エンコーダ

AV1の品質

  • 画質はH.265超え
  • 最新の状況としては、最高画質を実現するならAV1
  • 動画の品質の評価基準

特許問題(本題)

  • 2019/03: SISVELが特許プールを開始する宣言
  • 2019/04: AOMの声明(安心してねの一言)
  • 今の時点では、コンシューマデバイスからのみ
    • その先は未定
    • 特許リストも未公開
  • 対象はNecessary Claims
    • 代替不可かどうかが分かれ目
  • 防衛的契約解除
  • 特許料は払う必要があるのか
    • 建前としては必要
    • 侵害の訴えがないなら平気ではある
    • ただし訴えられたら差し押さえや請求が・・

おまけ: NTT Comはどうなる?

質問コーナー

  • 待ってればもっといいコーデックが出てくるかもだが、それでもAV1を使う未来しかない?
  • 既にブラウザなどに実装されてるのがポイント
    • そのメリットをどう捉えるか
  • 音声はOpus(ロイヤリティーフリー)だと思うんですが、関連どうでしょうか?
    • そんなに広がってないからまだ何も動きがないのかも
    • もしかしたらこの機に動きが・・?

ライブ配信サービスのバックエンド by hhan

資料は見つけたら

自己紹介

Janusへの不満

  • それで完成しているので、既存サービスへの導入が難しい
  • モニタリングや操作などに別のコネクションが必要
  • ブラウザより放送のセットアップにかかる時間が長い
    • 遅いときは10秒とか
  • ドキュメントが難解で初心者にはきびしい

バックエンドの構成

  • 配信用のSDKがある
  • まずHTTPでAuthサーバーへつなぐ
  • Redisにトークンを払い出し
  • それをSignサーバーへリクエス
  • SignはそこからMediaサーバーのOriginを割り当ててもらう
  • その割当と同時に、MediaサーバーのEdgeも割当
    • これでOriginからEdgeへフォワーディングできるように
  • 視聴用のSDKでは、Edgeサーバーにつなぎにいく
  • AWS ECRでスケールアウト
    • メディアサーバーは対応してるが、中央集権的になってるSignサーバーはまだ
  • インフラ費用はもう少し下げたい気持ちがある

質問コーナー

  • Janusで録画もできますか?
    • できます
    • それ用のコンテナを用意してffmpeg使ったりしてる

TwilioとWebRTC by @24guchia

TwilioとWebRTC

自己紹介

  • レバレジーズ社より
  • Twilioで社内向けコンタクトセンター開発してます

Twilioとは

  • https://www.twilio.com/
  • 電話、SMS、LINE通話などともAPIで通話できる
    • 電話!
  • 最近SendGridを買収したらしい

TwilioとWebRTC

  • 音声通話(Voice)と動画(Video)で使われてるWebRTC
  • JS-SDKがあるのですぐに使える
    • とはいえWebRTCの知識は必要
  • Unified Planは1.7系から
    • それまではPlan B依存だった
  • OPUS/PCMU
  • モダンブラウザはすべてサポート

Twilioのいいところ

  • 電話とLINEにつなげられる
  • どちらも日本のインフラとして定着してるといえる

Google Cloud Runはシグナリングに使えるか? by @massie_g

Google Cloud Run は WebRTCのシグナリングサーバーに使えるか? - Qiita

Cloud Runとは

  • https://cloud.google.com/run/
  • 自分で用意したコンテナを、GCP上で動かせる
  • もちろんスケールアウトもしてくれる
  • できないこと
    • データの永続化や保存
    • コンテナの中には持てない

やってみた

  • 1:1のビデオチャット
  • WebSocketとHTTPサーバーを立てるコンテナを用意
  • だめだった
    • HTTPからWebSocketへのアップグレードで400が返ってくる
    • HTTPしか使えない模様
  • Socket.IOなら自動でフォールバックしてくれるからつながった
  • リクエストが増えてくると、自動的にスケールアウトしてしまう
    • そのタイミングでP2P相手がいなくなる可能性
    • 実用的ではないですね・・

Chrome M75から chrome://webrtc-internals が新しくなります by @Tukimikage

Chrome M75から chrome://webrtc-internals が新しくなります - Qiita

webrtc-internals

  • Chromeに搭載されているデバッグツール
  • Stats APIを使って得たデータを表示している
    • APIの仕様策定が進んでいる
  • Callbackベースの`getStats()`は、Promiseベースになる
    • ChromeのM75から(06/04あたりの予定)
  • セッション情報をダンプできる機能がある

どう変わるのか

  • 基本的な部分のUIは変わってない
  • `getStats()`で取れるであろうデータの表示UIが変わってる
  • 使われてるCandidateのペアが太字になってたのがなくなる
    • Transport情報を見て、使われてるペアのIDを確認してから、そのペアの情報を見る
    • Candidateのtypeは、そのペアでcandidateのIDを確認してから・・・
  • このように、プリミティブな情報が表示される