RFC6416中對AAC進行RTP打包方式介紹

簡介

rfc6416是描述如何將MPEG-4 Audio/Visual Stream封包至RTP中的。文檔寫的還是比較清晰簡明的,對音頻而言,沒有再定義額外的碼流結構,就是直接對MPEG-4 Audio stream的結構進行打包。下面列出的是需要理解的概念:

  • MPEG-4 Audio/Visual Stream是在ISO/IEC 14496-3,ISO/IEC 14496-2中定義,分別用於audio及video的封包。在之前,audio和video是需要通過mpeg-4 Systems(ISO/IEC 14496-1)進行封裝的。

  • Signaling by MIME Format Parameters

與rfc3640相類似,也需要一種協議攜帶MIME Format Parameters,最常用的是sdp。並且一樣的有對編碼規格的參數意義的定義,詳見文檔第7節定義

  • Media Type

rfc6416中爲音頻流定義的Media Type爲MP4A-LATM

細節

下面列出文檔中所需注意的一些細節:

1. RTP包中攜帶的到底是LATM還是LOAS

rfc 6416描述的是RTP 攜帶LATM,並非LOAS

在前面的文章提到過LATM和LOAS的概念,其實LOAS就是 同步信息+LATM。那麼rfc 6416 RTP中攜帶的並沒有同步信息。

2. 傳輸複用的意思

LATM特點就是可複用,就是指可以攜帶多個audio frame(編碼後的)。在基於sip的rtp的流媒體應用中,一個rtp只會攜帶一個audio frame,即使sdp中的ptime的值爲20ms的倍數(20ms時長採樣數據大小是rtp中音頻數據的一個audio frame的基本長度),也被認爲是一個audio frame。而在LATM中是叫多個audio frame被複用。

3.帶內和帶外攜帶config

在前面的文章,列出了LATM的基本結構,其中這個StreamMuxConfig這個結構數據是可以與碼流分開傳輸的,在碼流中即爲帶內,不在碼流中(典型的在sdp中攜帶)即爲帶外。

4. MIME Format Parameters

以下列出了最基本,常用的碼流參數(根據AAC的不同規格,參數會有變化)

  • object(至關重要): AOT的值,描述的是攜帶什麼類型的AAC規格

  • bitrate(必須要有): 音頻流的碼率

  • cpresent(可以沒有,沒有則爲默認): 解釋如下

a boolean parameter that indicates whether audio
payload configuration data has been multiplexed into an RTP
payload.A 0 indicates the configuration data
has not been multiplexed into an RTP payload, and in that case,
the “config” parameter MUST be present; a 1 indicates that it has
been multiplexed.
The default if the parameter is omitted is 1.
If this parameter is set to 1 and the “config” parameter is
present, the multiplexed configuration data and the value of the
“config” parameter SHALL be consistent.

這個參數控制兩個行爲,確定是否複用,確定StreamMuxConfig是帶外還是帶內

  • config(是否攜帶,根據參數而定)

a hexadecimal representation of an octet string that
expresses the audio payload configuration data “StreamMuxConfig”.

  • profile-level-id(可有可無): 跟H264/265中的幾個profile意義一樣

實例說明

如下圖所示,是一個mpeg-4 audio stream的 sip invite
在這裏插入圖片描述

  • 標註1,sub-media-type技術表示的是mpeg-4 audio stream
  • 標註2,爲碼流參數信息,aot爲23即AAC-LD,sdp中沒有攜帶 cpresent,按照前面的介紹,即標識是複用流,並且StreamMuxConfig是帶內傳輸。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章