2017年2月9日 星期四

RTSP SDP 的 profile-level-id

晚上看到對岸同胞的部落格,將重點整理如下,作一記錄。

在 RTSP Describe 所回覆的 SDP 內容中,會出現下列的描述,此處 packetization-mode 與 profile-level-id 各是什麼意思呢
a=fmtp:96 packetization-mode=1;profile-level-id=4D0029;sprop-parameter-sets=Z00AKZpigPAET8uAtQEBAUAAAPoAADqYOhgA9CAAA7msrvLjQwAehAAAdzWV3lwo,aO48gA==



packetization-mode 可以是 0, 1, 2, 分別對應下列模式 (參考 RFC3984 )

  • Single NAL unit mode (當NALU 小於MTU時,只需要一個Packet便可以傳送,傳送順序與 RTP 序號順序,解碼順序都一致)
  • Non-interleaved mode (NALU 按照解碼順序進行傳送)
  • Interleaved mode (允許NALU傳送順序,不必按照解碼順序)
一般常見實作時大多使用 Non-interleaved mode。


profile-level-id 則是下列三個值的 Binary
AVCProfileIndication | profile_compatibility |AVCLevlIndication 
AVCProfileIndication
enum profile_e
{
    PROFILE_BASELINE = 66,
    PROFILE_MAIN     = 77,
    PROFILE_HIGH    = 100,
    PROFILE_HIGH10  = 110,
    PROFILE_HIGH422 = 122,
    PROFILE_HIGH444_PREDICTIVE = 244,
}; 
profile_compatibility 一般設置 00 
AVCLevlIndication 包含以下三個數值,實際內容需要查表
  • Max decoding speed
  • Max frame size
  • Max video bit rate for video coding layer (VCL) kbit/s

以 0x4D0029 為例,推導其代表的意思
AVCProfileIndication = 0x4D = 77,表示 Main Profile 
profile_compatibility = 0x00 
AVCLevlIndication = 0x29 = 41,查表可得到以下資料
參考資料: