この資料はなに?
SkyWay UG Tokyo #2のLT資料です。
自己紹介
なかゆうすけ(@yusuke84)
- Twitter: @Tukimikage
- 仕事:
-
WebRTC Platform SkyWay
- Technical solutions
- Technical support
- Developer relations
-
WebRTC Platform SkyWay
- コミュニティ:
- WebRTC Meetup Tokyo 主催
- WebRTC Beginners Tokyo 主催
WebRTCで利用される主要なコーデック
Audio
- Opus
- G.711
Video
- VP8
- VP9
- H.264
- AV1
今日は映像コーデックのはなしをします
コーデックの比較
コーデックの種類 | 管理組織 | ライセンス | 備考 |
---|---|---|---|
VP8 | ロイヤリティフリー | ||
VP9 | ロイヤリティフリー | VP8の半分程度のビットレートで同品質を実現 CPU使用20%〜30%高め |
|
H264 | MPEG LA | ライセンス料がかかるが、Ciscoがライセンス費用を全て負担してOpenH264を出している | iOSデバイスはHW Accelerationに対応 Androidデバイスは機種依存がやばめ… |
AV1 | AOM Alliance for Open Media | ロイヤリティフリー |
対応ブラウザ
ブラウザ | コーデック |
---|---|
Chrome | VP8,VP9,H264,AV1(Canaryのみデコードに対応) |
Firefox | VP8,VP9,H264,AV1(Nightlyのみ) |
Safari | H264 |
Edge | VP8,H264UC(Skype用です…),VP9(今後対応される見通し) |
CPU使用率の差
Caller | Callee | コーデック | CalleeのCPU使用率の変化 |
---|---|---|---|
OSX Chrome M64 | Android Chrome M64 | VP8 | 約65% |
OSX Chrome M64 | Android Chrome M64 | VP9 | 約70% |
OSX Chrome M64 | Android Chrome M64 | H264 | (映像表示されず…) |
OSX Chrome M64 | OSX Chrome M64 | VP8 | 約60% |
OSX Chrome M64 | OSX Chrome M64 | H264 | 約50% |
- 通信環境: wifi
- ビデオサイズ: 640x480
- フレームレート 30fps
- 端末: HUAWEI P9
コーデックを選択するには?
- 通常はSDPを書き換える必要があります
v=0
(…中略…)
a=group:BUNDLE audio video
m=audio 54321 RTP/SAVPF 111 103 104 0 8 106 105 13 126
(…中略…)
c=IN IP4 100.1.2.3
a=rtcp:54321 IN IP4 100.1.2.3
a=candidate:4022866446 1 udp 2113937151 192.168.0.1 34567 typ host generation 0
a=candidate:4022866446 2 udp 2113937151 192.168.0.1 34567 typ host generation 0
(…中略…)
a=rtpmap:111 opus/48000/2
a=fmtp:111 minptime=10
a=rtpmap:103 ISAC/16000
a=rtpmap:104 ISAC/32000
a=rtpmap:0 PCMU/8000
a=rtpmap:8 PCMA/8000
(…以下略…)
SkyWayを利用する
// Caller
const call = peer.call('peerID', localStream, {
videoCodec: 'H264',
});
// Callee
peer.on('call', call => {
call.answer(localStream, {
videoCodec: 'H264'
});
});
- VP8,VP9,H264使用可能
デモ