今回は五反田にあるFreee社にて。
いつだかのNode学園祭の打ち上げで使ったところですね。
夜間入り口はコンビニ横で少しわかりにくい・・w
AV1 Patent issue by @dynamitter
TL;DR
- AV1はこれからのコーデック
- 実用もできるが重い
- パテント問題について話すよ
歴史
- Googleが発起人となってパテントフリーの動画コーデックを作ろうとしたのがはじまり
- VP8をOSSに
- MPEG/LAがVP8の特許プール設立を呼びかけ
- 合意したのは11社ほどで、VP8、VP9を対象
- AV1やその後継は対象外
- Nokiaが特許侵害を申し立てた
- 他のコーデックにもパテントプールはある
- H.265に関してはなんとパテントプールが複数ある
AV1
- 2015年、AOMが開発をはじめる
- 2018年、AV1 v1.0の仕様が公開される
- ちなみに、AOMへの加入費は高くない(高いけど)
実用的なデコーダ
- `libaom`
- AOMのリファレンス実装
- `dav1d`
- https://code.videolan.org/videolan/dav1d
- iPad Proで4Kでもデコードできるとのこと
- FirefoxもChromeでも採用されている
エンコーダ
- `libaom`
- おなじくリファレンス実装
- `x265`の3倍の処理時間がかかる
- 2019/03までで速度改善されたがまだ遅い
- `rav1e`
- https://github.com/xiph/rav1e
- MozillaのRust実装
- `SVT-AV1`
ハードウェアエンコーダ
- SOCIONEXT
- NGCodec
- Allegro
- 各社の今後に期待
- そういえばDwangoも
AV1の品質
- 画質はH.265超え
- 最新の状況としては、最高画質を実現するならAV1
- 動画の品質の評価基準
- QoS: 定量的な値
- QoE: 体感品質値
特許問題(本題)
- 2019/03: SISVELが特許プールを開始する宣言
- 2019/04: AOMの声明(安心してねの一言)
- 今の時点では、コンシューマデバイスからのみ
- その先は未定
- 特許リストも未公開
- 対象はNecessary Claims
- 代替不可かどうかが分かれ目
- 防衛的契約解除
- 特許料は払う必要があるのか
- 建前としては必要
- 侵害の訴えがないなら平気ではある
- ただし訴えられたら差し押さえや請求が・・
おまけ: NTT Comはどうなる?
- SISVELが特許請求の訴訟をすると、NTTは使えなくなるはず
- 子会社にその影響があるか?
- 見方によるのでなんともいえない
- https://twitter.com/dynamitter/status/1133704066863734786
質問コーナー
- 待ってればもっといいコーデックが出てくるかもだが、それでもAV1を使う未来しかない?
- 既にブラウザなどに実装されてるのがポイント
- そのメリットをどう捉えるか
- 音声はOpus(ロイヤリティーフリー)だと思うんですが、関連どうでしょうか?
- そんなに広がってないからまだ何も動きがないのかも
- もしかしたらこの機に動きが・・?
ライブ配信サービスのバックエンド by hhan
資料は見つけたら
自己紹介
- 韓国からきました
- リモートモンスターという会社でWebRTCやってます
- https://www.remotemonster.com/
- P2Pとライブ配信のサービスがある
- ライブ配信のところでJanusを使ってる
- Janusを選んだワケ
- 最初はパフォーマンスを重視して
- コアとプラグインで様々な使い方ができる
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で社内向けコンタクトセンター開発してます
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
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
webrtc-internals
- Chromeに搭載されているデバッグツール
- `chrome://webrtc-internals`
- Stats APIを使って得たデータを表示している
- APIの仕様策定が進んでいる
- Callbackベースの`getStats()`は、Promiseベースになる
- ChromeのM75から(06/04あたりの予定)
- セッション情報をダンプできる機能がある
- `webrtc-dump-importer`は現状まだ対応してない模様
- https://fippo.github.io/webrtc-dump-importer/
どう変わるのか
- 基本的な部分のUIは変わってない
- `getStats()`で取れるであろうデータの表示UIが変わってる
- 使われてるCandidateのペアが太字になってたのがなくなる
- Transport情報を見て、使われてるペアのIDを確認してから、そのペアの情報を見る
- Candidateのtypeは、そのペアでcandidateのIDを確認してから・・・
- このように、プリミティブな情報が表示される