日時: | 2019-05-18 |
---|---|
作: | @voluntas |
バージョン: | 19.5.18 |
url: | https://voluntas.github.io/ |
ここでは WebRTC SFU Sora の開発を行う際に参考にしている資料をまとめています。
定期的に追加したり更新したりしています。
もし気になる点があったばあいは、コメントではなく Twitter にて @voluntas 宛にメンションをお願いします。
- WebRTC 1.0: Real-time Communication Between Browsers
- Identifiers for WebRTC's Statistics API
- Media Capture and Streams
- https://www.iana.org/assignments/rtcp-xr-block-types/rtcp-xr-block-types.xhtml
- RFC 6386 - VP8 Data Format and Decoding Guide
- RFC 6838 - Media Type Specifications and Registration Procedures
- RFC 7478 - Web Real-Time Communication Use Cases and Requirements
- RFC 7675 - Session Traversal Utilities for NAT (STUN) Usage for Consent Freshness
- RFC 7742 - WebRTC Video Processing and Codec Requirements
- RFC 7875 - Additional WebRTC Audio Codecs for Interoperability
- RFC 7874 - WebRTC Audio Codec and Processing Requirements
- RFC 7983 - Multiplexing Scheme Updates for Secure Real-time Transport Protocol (SRTP) Extension for Datagram Transport Layer Security (DTLS)
- RFC 8451 - Considerations for Selecting RTP Control Protocol (RTCP)
- draft-ietf-rtcweb-ip-handling-11 - WebRTC IP Address Handling Requirements
- draft-jennings-rtcweb-deps-22 - WebRTC Dependencies
- draft-ietf-rtcweb-rtp-usage-26 - Web Real-Time Communication (WebRTC: Media Transport and Use of RTP
- draft-ietf-rtcweb-security-11 - Security Considerations for WebRTC
- draft-ietf-rtcweb-security-arch-18 - WebRTC Security Architecture
- draft-ietf-mmusic-msid-17 - WebRTC MediaStream Identification in the Session Description Protocol
- draft-ietf-rtcweb-transports-17 - Transports for WebRTC
- draft-ietf-rtcweb-sdp-11 - Annotated Example SDP for WebRTC
- draft-ietf-ice-trickle-21 - Trickle ICE: Incremental Provisioning of Candidates for the Interactive Connectivity Establishment (ICE) Protocol
- draft-ietf-mmusic-sdp-bundle-negotiation-54 - Negotiating Media Multiplexing Using the Session Description Protocol (SDP)
- draft-ietf-mmusic-dtls-sdp-32 - Session Description Protocol (SDP) Offer/Answer Considerations for Datagram Transport Layer Security (DTLS) and Transport Layer Security (TLS)
- draft-ietf-mmusic-ice-sip-sdp-26 - Session Description Protocol (SDP) Offer/Answer procedures for Interactive Connectivity Establishment (ICE)
- draft-ietf-avtext-framemarking-09 - Frame Marking RTP Header Extension
- draft-ietf-mmusic-mux-exclusive-12 - Indicating Exclusive Support of RTP/RTCP Multiplexing using SDP
- draft-ietf-mmusic-rid-15 - RTP Payload Format Restrictions
- draft-ietf-mmusic-sdp-mux-attributes-17 - A Framework for SDP Attributes when Multiplexing
- draft-ietf-rtcweb-overview-19 - Overview: Real Time Protocols for Browser-based Applications
- draft-ietf-rtcweb-jsep-26 - JavaScript Session Establishment Protocol
- draft-ietf-mmusic-rfc4566bis-35 - SDP: Session Description Protocol
- RFC 4566 置き換え
- draft-ietf-rtcweb-fec-08 - WebRTC Forward Error Correction Requirements
- draft-ietf-xrblock-rtcweb-rtcp-xr-metrics-09 - Considerations for Selecting RTCP Extended Report (XR) Metrics for the WebRTC Statistics API
- draft-ietf-rtcweb-mdns-ice-candidates-03 - Using Multicast DNS to protect privacy when exposing ICE candidates
- draft-garcia-simulcast-and-layered-video-webrtc-00 - Simulcast and layered video coding support in WebRTC
- draft-ietf-rtcweb-alpn-04 - Application Layer Protocol Negotiation for Web Real-Time Communications (WebRTC)
- draft-ietf-rtcweb-gateways-02 - WebRTC Gateways
- draft-roach-mmusic-unified-plan-00 - A Unified Plan for Using SDP with Large Numbers of Media Flows
- draft-aboba-avtcore-sfu-rtp-00 - Codec-Independent Selective Forwarding
- draft-ietf-avtext-lrr-07 - The Layer Refresh Request (LRR) RTCP Feedback Message
- draft-ietf-rmcat-cc-requirements-09 - Congestion Control Requirements for Interactive Real-Time Media
- RFC 2246 - The TLS Protocol Version 1.0
- RFC 4347 - Datagram Transport Layer Security
- RFC 4346 - The Transport Layer Security (TLS) Protocol Version 1.1
- RFC 4366 - Transport Layer Security (TLS) Extensions
- RFC 4492 - Elliptic Curve Cryptography (ECC) Cipher Suites for Transport Layer Security (TLS)
- RFC 5077 - Transport Layer Security (TLS) Session Resumption without Server-Side State
- RFC 5246 - The Transport Layer Security (TLS) Protocol Version 1.2
- RFC 5288 - AES Galois Counter Mode (GCM) Cipher Suites for TLS
- RFC 5705 - Keying Material Exporters for Transport Layer Security (TLS)
- RFC 5746 - Transport Layer Security (TLS) Renegotiation Indication Extension
- RFC 6066 - Transport Layer Security (TLS) Extensions: Extension Definitions
- RFC 6347 - Datagram Transport Layer Security Version 1.2
- RFC 7027 - Elliptic Curve Cryptography (ECC) Brainpool Curves for Transport Layer Security (TLS)
- RFC 7507 - TLS Fallback Signaling Cipher Suite Value (SCSV) for Preventing Protocol Downgrade Attacks
- RFC 7539 - ChaCha20 and Poly1305 for IETF Protocols
- RFC 7685 - A Transport Layer Security (TLS) ClientHello Padding Extension
- RFC 8446 - The Transport Layer Security (TLS) Protocol Version 1.3
- Real-Time Transport Protocol (RTP) Parameters
- RTP Control Protocol Extended Reports (RTCP XR) Block Type Registry
- RFC 3550 - RTP: A Transport Protocol for Real-Time Applications
- RFC 3551 - RTP Profile for Audio and Video Conferences with Minimal Control
- RFC 4585 - Extended RTP Profile for Real-time Transport Control Protocol (RTCP)-Based Feedback (RTP/AVPF)
- RFC 4855 - Media Type Registration of RTP Payload Formats
- RFC 5104 - Codec Control Messages in the RTP Audio-Visual Profile with Feedback (AVPF)
- RFC 5285 - A General Mechanism for RTP Header Extensions
- RFC 5506 - Support for Reduced-Size Real-Time Transport Control Protocol (RTCP): Opportunities and Consequences
- RFC 5761 - Multiplexing RTP Data and Control Packets on a Single Port
- RFC 6051 - Rapid Synchronisation of RTP Flows
- RFC 6184 - RTP Payload Format for H.264 Video
- RFC 6190 - RTP Payload Format for SVC Video
- RFC 6285 - Unicast-Based Rapid Acquisition of Multicast RTP Sessions
- RFC 6354 - Forward-shifted RTP Redundancy Payload Support
- RFC 6464 - A Real-Time Transport Protocol (RTP) Header Extension for Client-to- Mixer Audio Level Indication
- RFC 6465 - A Real-Time Transport Protocol (RTP) Header Extension for Mixer-to- Client Audio Level Indication
- RFC 6679 - Explicit Congestion Notification (ECN) for RTP over UDP
- RFC 7022 - Guidelines for Choosing RTP Control Protocol (RTCP) Canonical Names (CNAMEs)
- Obsoleted by: rfc6222
- RFC 7160 - Support for Multiple Clock Rates in an RTP Session
- RFC 7164 - RTP and Leap Seconds
- RFC 7587 - RTP Payload Format for the Opus Speech and Audio Codec
- RFC 7667 - RTP Topologies
- RFC 7728 - RTP Stream Pause and Resume
- RFC 7741 - RTP Payload Format for VP8 Video
- RFC 7798 - RTP Payload Format for High Efficiency Video Coding (HEVC)
- RFC 7941 - RTP Header Extension for the RTP Control Protocol (RTCP) Source Description Items
- RFC 8082 - Using Codec Control Messages in the RTP Audio-Visual Profile with Feedback with Layered Codecs
- RFC 8108 - Sending Multiple RTP Streams in a Single RTP Session
- RFC 8285 - A General Mechanism for RTP Header Extensions
- RFC 8286 - RTP/RTCP Extension for RTP Splicing Notification
- RFC 6015 - RTP Payload Format for 1-D Interleaved Parity FEC
- RFC 6682 - RTP Payload Format for Raptor Forward Error Correction (FEC)
- RFC 6865 - Simple Reed-Solomon Forward Error Correction (FEC) Scheme for FECFRAME
- draft-ietf-payload-flexible-fec-scheme-20 - RTP Payload Format for Flexible Forward Error Correction (FEC)
- RTP Stream Identifier Source Description (SDES)
- RTP Payload Format for VP9 Video
- Using Simulcast in SDP and RTP Sessions
- Sending Multiple RTP Streams in a Single RTP Session: Grouping RTCP Reception Statistics and Other Feedback
- Sending Multiple Types of Media in a Single RTP Session
- Using Simulcast in RTP Sessions
- The Layer Refresh Request (LRR) RTCP Feedback Message
- RTP Extensions for Transport-wide Congestion Control
- RTCP message for Receiver Estimated Maximum Bitrate
- RFC 3711 - The Secure Real-time Transport Protocol (SRTP)
- RFC 4771 - Integrity Transform Carrying Roll-Over Counter for the Secure Real-time Transport Protocol (SRTP)
- RFC 5116 - An Interface and Algorithms for Authenticated Encryption
- RFC 5124 - Extended Secure RTP Profile for Real-time Transport Control Protocol (RTCP)-Based Feedback (RTP/SAVPF)
- RFC 5763 - Framework for Establishing a Secure Real-time Transport Protocol (SRTP) Security Context Using Datagram Transport Layer Security (DTLS)
- RFC 5764 - Datagram Transport Layer Security (DTLS) Extension to Establish Keys for the Secure Real-time Transport Protocol (SRTP)
- RFC 6188 - The use of AES-192 and AES-256 in Secure RTP
- RFC 6904 - Encryption of Header Extensions in the Secure Real-time Transport Protocol (SRTP)
- chrome://flags/#enable-webrtc-srtp-encrypted-headers
- RFC 7714 - AES-GCM Authenticated Encryption in the Secure Real-time Transport Protocol (SRTP)
- chrome://flags/#enable-webrtc-srtp-aes-gcm
- RFC 7983 - Multiplexing Scheme Updates for Secure Real-time Transport Protocol (SRTP) Extension for Datagram Transport Layer Security (DTLS)
- RFC 4566 - SDP: Session Description Protocol
- RFC 3264 - An Offer/Answer Model with Session Description Protocol (SDP)
- RFC 5888 - The SDP (Session Description Protocol) Grouping Framework
- RFC 8035 - Session Description Protocol (SDP) Offer/Answer Clarifications for RTP/RTCP Multiplexing
- RFC 5389 - Session Traversal Utilities for NAT (STUN)
- RFC 5766 - Traversal Using Relays around NAT (TURN): Relay Extensions to Session Traversal Utilities for NAT (STUN)
- RFC 6062 - Traversal Using Relays around NAT (TURN) Extensions for TCP Allocations
- RFC 6156 - Traversal Using Relays around NAT (TURN) Extension for IPv6
- RFC 5245 - Interactive Connectivity Establishment (ICE): A Methodology for Network Address Translator (NAT) Traversal for Offer/Answer Protocols
- RFC 5769 - Test Vectors for Session Traversal Utilities for NAT (STUN)
- RFC 6544 - TCP Candidates with Interactive Connectivity Establishment (ICE)
- RFC 6336 - IANA Registry for Interactive Connectivity Establishment (ICE) Options
- RFC 7350 - Datagram Transport Layer Security (DTLS) as Transport for Session Traversal Utilities for NAT (STUN)
- RFC 7675 - Session Traversal Utilities for NAT (STUN) Usage for Consent Freshness
- RFC 8445 - Interactive Connectivity Establishment (ICE)
- RFC 8421 - Guidelines for Multihomed and IPv4/IPv6 (ICE)
- Trickle ICE: Incremental Provisioning of Candidates for the Interactive Connectivity Establishment (ICE) Protocol
- Implementing Interactive Connectivity Establishment (ICE) in Lite Mode
- Using Multicast DNS to protect privacy when exposing ICE candidates
- RFC 4960 - Stream Control Transmission Protocol
- RFC 5061 - Stream Control Transmission Protocol (SCTP) Dynamic Address Reconfiguration
- RFC 6096 - Stream Control Transmission Protocol (SCTP) Chunk Flags Registration
- RFC 7053 - SACK-IMMEDIATELY Extension for the Stream Control Transmission Protocol
- RFC 8260 - Stream Schedulers and User Message Interleaving for the Stream Control Transmission Protocol
- WebRTC Data Channels
- WebRTC Data Channel Establishment Protocol
- Session Description Protocol (SDP) Offer/Answer Procedures For Stream Control Transmission Protocol (SCTP) over Datagram Transport Layer Security (DTLS) Transport.
- draft-ietf-quic-transport-16 - QUIC: A UDP-Based Multiplexed and Secure Transport
- draft-ietf-quic-tls-16 - Using Transport Layer Security (TLS) to Secure QUIC
- draft-ietf-quic-recovery-16 - QUIC Loss Detection and Congestion Control
- draft-ietf-quic-spin-exp-01 - The QUIC Latency Spin Bit
- draft-aboba-avtcore-quic-multiplexing-02 - QUIC Multiplexing
- A Google Congestion Control Algorithm for Real-Time Communication
- NADA: A Unified Congestion Control Scheme for Real-Time Media
- Self-Clocked Rate Adaptation for Multimedia
- PSA: WebRTC M71 Release Notes
- PSA: WebRTC M70 Release Notes
- PSA: WebRTC M69 Release Notes
- PSA: WebRTC M68 Release Notes
- PSA: WebRTC M67 Release Notes
- PSA: WebRTC M66 Release Notes
- Media/WebRTC/ReleaseNotes/64 - MozillaWiki
- Media/WebRTC/ReleaseNotes/63 - MozillaWiki
- Media/WebRTC/ReleaseNotes/62 - MozillaWiki
- Media/WebRTC/ReleaseNotes/61 - MozillaWiki
- Media/WebRTC/ReleaseNotes/60 - MozillaWiki
時雨堂がフルスクラッチで開発している商用の WebRTC SFU です。 価格は同時 100 接続で年間利用料ライセンス 60 万円です。毎年かかります。製品のサポート料金込みです。
複数人数での会議や、 数百人への配信、一対一の面談など様々な用途に利用可能です。
パッケージで提供しますので、自社で運用が可能です。 AWS だろうが GCP だろうが、オンプレだろうがなんでもどうぞ。 サーバさえあれば起動までは 10 分です。デモ機能が内蔵しているので動かすまで 15 分でいけます。
- とにかく 落ちないこと を目的に作っています
- とにかく 繋がること を目的に作っています
- とにかく 手間がかからないこと を目的に作っています
- 最新ブラウザのアップデートに追従しています
- シグナリングサーバ内蔵ですので別途立てる必要がありません
- TURN サーバ内蔵ですので別途立てる必要がありません
- 開発者による日本語によるサポート対応しています
- フルスクラッチ自前実装なのですべて把握しています
- 1:1、1:N、複数人会議、録画あります
- 1 つの会議に 100 人以上が参加することが可能です
- Chrome / Firefox / Edge / Safari といった主要ブラウザ全てに対応しています
- Apache 2.0 ライセンスで JavaScript と iOS と Android のクライアント SDK を公開しています
- 既存システムとの連携を重視しており、Web フック機能を利用して簡単に連携が可能です
- 認証や、クライアントの接続切断などもすべて HTTP での通知を既存のシステムに送ることができます
- 海外で利用される場合は該非判定書も用意しております
時間をお金で買いませんか?
興味のある方は sora at shiguredo.jp までお問い合わせください。
紹介や検討資料も公開しております。