rfc6416是描述如何將mpeg-4 audio/visual stream封包至rtp中的。文件寫的還是比較清晰簡明的,對音訊而言,沒有再定義額外的碼流結構,就是直接對mpeg-4 audio stream的結構進行打包。下面列出的是需要理解的概念:
與rfc3640相類似,也需要一種協議攜帶mime format parameters,最常用的是sdp。並且一樣的有對編碼規格的引數意義的定義,詳見文件第7節定義
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的不同規格,引數會有變化)
a boolean parameter that indicates whether audio這個引數控制兩個行為,確定是否復用,確定streammuxconfig是帶外還是帶內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.
a hexadecimal representation of an octet string that如下圖所示,是乙個mpeg-4 audio stream的 sip inviteexpresses the audio payload configuration data 「streammuxconfig」.
haXe中對BitmapData進行批量畫素級運算
nme中大部分的點陣圖濾鏡 flash.filters.都未實現,所以有些特效不得不自己編寫 來進行批量畫素處理。用getpixel32 和setpixel32 當然是最簡單的,但效率很低。因此這裡使用getpixels 把批量畫素複製到位元組陣列,進行完運算,再用setpixels 覆蓋回到位圖。...
Xcode 中對類進行Category
category 類別 建立方式 選擇objective c file,裡面filetype可以選擇empty file,category,protocol和extension category在ios開發中使用非常頻繁。尤其是在為系統類進行拓展的時候,我們可以不用繼承系統類,直接給系統類新增方法,...
Redis中對Key進行分類
使用 體現層次 set key1 key2 key4 value1 ok set key1 key2 key5 value2 ok set key1 key3 key5 value3 ok set key1 key3 key4 value4 ok 使用redisdesktopmanager檢視結果 ...