6. コーデック固有の考慮事項 (Codec-Specific Considerations)
SDP (Session Description Protocol) は、[RFC6236] で説明されているメカニズムを使用して、コーデックに依存しない優先ビデオ解像度 (Resolution) の指示を可能にします。WebRTC エンドポイントは、受信したい最大解像度を示すために "a=imageattr" 属性を送信してもよいです (MAY)。送信者は、受信者がより高い解像度を処理できない可能性があるため、エンコードされた解像度を示された最大サイズに制限することで、この属性を解釈し尊重すべきです (SHOULD)。
さらに、コーデックには、解像度、フレームレート (Frame Rate)、およびビットレート (Bitrate) に関する受信者の最大能力をシグナリングするコーデック固有の手段が含まれる場合があります。
SDP で特に指定されていない限り、ビデオストリームの受信者は、少なくとも 320 ピクセル × 240 ピクセルの解像度で少なくとも 20 fps のレートでビデオをデコード (Decode) できなければなりません (MUST)。これらの値は [HSUP1] の推奨事項に基づいて選択されています。
エンコーダ (Encoder) は、少なくとも上記と同じ解像度とフレームレートでメディアをエンコーディングすることをサポートすることが推奨されます。
6.1. VP8
[RFC6386] で定義されている VP8 コーデックについて、エンドポイントは [RFC7741] で定義されているペイロード形式 (Payload Format) をサポートしなければなりません (MUST)。
[RFC6236] メカニズムに加えて、VP8 エンコーダは、対応する max-fr および max-fs SDP 属性で受信者によって示された値に準拠するように送信するストリームを制限しなければなりません (MUST)。
特に指定されていない限り、VP8 を使用する実装は、暗黙的な 1:1 (正方形) アスペクト比 (Aspect Ratio) でピクセルをエンコードおよびデコードしなければなりません (MUST)。
6.2. H.264
[H264] コーデックについて、エンドポイントは [RFC6184] で定義されているペイロード形式をサポートしなければなりません (MUST)。さらに、制約付きベースラインプロファイルレベル 1.2 (Constrained Baseline Profile Level 1.2) をサポートしなければならず (MUST)、H.264 制約付きハイプロファイルレベル 1.3 (Constrained High Profile Level 1.3) をサポートすべきです (SHOULD)。
H.264 コーデックの実装は、さまざまなオプションパラメータを利用してきました。相互運用性 (Interoperability) を向上させるため、以下のパラメータ設定が指定されています:
packetization-mode (パケット化モード): パケット化モード 1 をサポートしなければなりません (MUST)。他のモードはネゴシエートされ使用されてもよいです (MAY)。
profile-level-id (プロファイルレベル ID): 実装は SDP 内にこのパラメータを含めなければならず (MUST)、受信時に解釈しなければなりません (MUST)。
max-mbps, max-smbps, max-fs, max-cpb, max-dpb, および max-br:
これらのパラメータにより、実装は、レベル (profile-level-id で設定) によってシグナリングされたものよりも高いレートと値で H.264 の特定の機能をサポートできることを指定できます。実装は SDP にこれらのパラメータを含めてもよいですが (MAY)、受信時に解釈すべきであり (SHOULD)、可能な限り高品質のビデオを送信できるようにします。
sprop-parameter-sets: H.264 では、シーケンスおよびピクチャ情報をインバンドおよびアウトオブバンドの両方で送信できます。WebRTC 実装はこの情報をインバンドでシグナリングしなければなりません (MUST)。これは、WebRTC 実装が生成する SDP にこのパラメータを含めてはならない (MUST NOT) ことを意味します。
H.264 コーデックは、補足強化情報 (Supplemental Enhancement Information, SEI) の「フィラーペイロード (Filler Payload)」および「フルフレームフリーズ (Full Frame Freeze)」メッセージを送信してもよく (MAY)、適切な解釈をサポートしなければなりません (MUST)。「フルフレームフリーズ」メッセージは、ビデオ切り替え MCU (Multipoint Control Unit) で使用され、さまざまな入力ストリーム間の切り替え中に安定したデコード表示画像を確保します。
ビデオ方向 (CVO) RTP ヘッダー拡張の使用が SDP の一部としてシグナリングされていない場合、H.264 実装は表示方向 SEI メッセージ (Display Orientation SEI Messages) を送信してもよく (MAY)、適切な解釈をサポートすべきです (SHOULD)。
実装は、「Rec. ITU-T T.35 によって登録されたユーザデータ (User Data Registered by Rec. ITU-T T.35)」および「未登録ユーザデータ (User Data Unregistered)」メッセージを送信し、それに基づいて行動してもよいです (MAY)。それらに基づいて行動しない場合でも、実装はそのようなメッセージを悪影響なしに受信する準備をしなければなりません (MUST)。
特に指定されていない限り、H.264 を使用する実装は、暗黙的な 1:1 (正方形) アスペクト比でピクセルをエンコードおよびデコードしなければなりません (MUST)。