RTP パケットから H264 をデコードできるようにするために、SDP で必要なパラメーターを理解しようとしています。
これはこの質問に関連しています。その答えは少数のケースでしか機能しないためです。
例
次のコマンドで VLC からストリーミングしています。
vlc -vvv sample_video/big_buck_bunny_480p_h264.mov --sout '#transcode{vcodec=h264,vb=700,fps=20,scale=0.25,acodec=none}:rtp{dst=10.5.110.117,port=5004,ttl=1}'
これにより、ビデオが次のようにトランスコードされます。
- ビットレート: 700kbps
- フレームレート: 20/秒
- 解像度: オリジナルの 25%
レシーバーは、次の SDP ファイルを使用してストリームを正しく受け入れ、解釈します (最初の行を削除します。名前だけです)。
//test.sdp
c=IN IP4 10.5.110.117
m=video 5004 RTP/AVP 96
a=rtpmap:96 H264/90000
a=fmtp:96 profile-level-id=640014;sprop-parameter-sets=Z2QAFKzZQ0R+f/zBfMMAQAAAAwBAAAAKI8UKZYA=,aOvssiw=;
実行するコマンド:vlc test.sdp
profile-level-id の状態については、7.2 章のSIP ビデオ プロファイルのベスト プラクティスという名前のドキュメントをここで入手できます。
プロファイル レベル ID
RFC 6184 では (すべてのパラメーターと同様に) オプションとして指定されていますが、「profile-level-id」パラメーターはコーデックのセットアップの基本であり、さらにパラメーターを指定するためにも必要です。したがって、すべての実装では、このパラメータを SDP に含める必要があり、受信時に解釈する必要があります。含まれていない場合、RFC 6184 で指定されているように、デフォルト値は 420010 です。
同じドキュメントには、sprop-parameter-setsについて次のように記載されています。
sprop-parameter-sets
H.264 では、シーケンスおよび画像情報を帯域内および帯域外の両方で送信できます。SIP ビデオ実装は、H.323 および既存の SIP ビデオ実装の圧倒的多数で普及しているモデルに準拠して、この情報を帯域内で通知する必要があるため、このパラメータを含めないでください。
問題1
が削除された場合でも、ビデオはレシーバーで正しく解釈さprofile-level-id
れます。
//test.sdp
c=IN IP4 10.5.110.117
m=video 5004 RTP/AVP 96
a=rtpmap:96 H264/90000
a=fmtp:96 sprop-parameter-sets=Z2QAFKzZQ0R+f/zBfMMAQAAAAwBAAAAKI8UKZYA=,aOvssiw=;
がないと機能しませんsprop-parameter-sets
。
問題 2
私はさまざまなRTCP、SIP、およびSAPを有線接続してきましたが、多くの場合、SDPに は..sprop-parameter-sets
質問
- 2 つのパラメータの意味と違いを説明してください
- 上記の質問への回答に基づいて、問題で発生するコントラストを説明してください