?
?
?
Dove(12337127)?? 10:15:45
我看JM代碼里面有些疑問 看好多地方都出現了ANNEXB
時空互換(178316135)?? 10:16:08
h264的2種碼流編碼格式
Dove(12337127)?? 10:16:19
我就不太理解是什么意思 剛才翻標準看見了 剛準備認真看看
Dove(12337127)?? 10:16:29
annexb?? rtp?? 是么?
時空互換(178316135)?? 10:16:36
總的來說H264的碼流的打包方式有兩種,一種為annex-b byte stream format的格式,這個是絕大部分編碼器的默認輸出格式,就是每個幀的開頭的3~4個字節是H264的start_code,0x00000001或者0x000001。
另一種是原始的NAL打包格式,就是開始的若干字節(1,2,4字節)是NAL的長度,而不是start_code,此時必須借助某個全局的數據來獲得編碼器的profile,level,PPS,SPS等信息才可以解碼。
時空互換(178316135)?? 10:17:08
rtp傳輸的是annexb的h264碼流
Dove(12337127)?? 10:19:55
謝謝您了 !
另外我想問下
這里定義的這個枚舉是做什么用的?
typedef enum
{
?? PAR_OF_ANNEXB,??? //!< Current TML description
?? PAR_OF_RTP,??? //!< RTP Packet Output format
//?? PAR_OF_IFF???? //!< Interim File Format
} PAR_OF_TYPE;
里面的TML 是什么意思啊?我查了英文的文檔沒發現 應該是什么的縮寫么?
Dove(12337127)?? 10:21:57
按照您剛才說的 兩種模式 這邊第二個是不是不應該定義rtp 而是應該定義 NAL呢
★深谷幽蘭★(285011501)?? 10:22:18
就是 兩種方式啊 ANNEXB 還是 RTP ?
Dove(12337127)?? 10:22:19
當然人家定義的肯定是對的 是我理解不上去
★深谷幽蘭★(285011501)?? 10:22:25
默認是?? ANNEXB
時空互換(178316135)?? 10:22:46
RTP格式還是ANNEXB格式
時空互換(178316135)?? 10:23:01
RTP格式有將00 00 00 01去掉
Dove(12337127)?? 10:24:03
謝謝您 謝謝大家 我再認真看看
H264初學者<zz841215@126.com>?? 10:24:16
這就涉及到 H.264 的兩種碼流格式
GetAnnexbNALU 處理字節流格式的碼流
GetRTPNALU 處理 RTP 格式碼流
字節流格式的碼流主要用于存儲,例如制作 DVD(當然現在的 DVD 還不是用 H.264)
RTP 格式碼流主要用于網絡傳送,例如在線看電影
Dove(12337127)?? 10:25:38
謝謝
H264初學者<zz841215@126.com>?? 10:26:42
這是引用的驕子的原話
6.14追加:
劍魄(363127921) 15:59:26
NALU不是要封裝成RTP?
God of Light(233383328) 16:00:13
你需要RTP嗎?
God of Light(233383328) 16:01:11
最簡單RTP包包括RTP包頭、H.264擴展頭和H.264碼流
劍魄(363127921) 16:01:25
我看不懂JM的打包過程和解包過程,似乎在哪卡住了,總是不明白
God of Light(233383328) 16:01:37
NALU里指針指向的那部分是碼流
God of Light(233383328) 16:01:59
碼流在JM里會首先打包到NALU里去
God of Light(233383328) 16:02:15
NALU一般可以直接本地保存
God of Light(233383328) 16:02:43
之后要把NALU中的相關信息變成H.264擴展頭
劍魄(363127921) 16:03:05
喔。這么深奧啊
God of Light(233383328) 16:03:11
然后再加上一個RTP包頭,就變成了一個RTPa包
God of Light(233383328) 16:03:16
。。。。。。
劍魄(363127921) 16:03:31
那RTP包頭是8個字節?
God of Light(233383328) 16:03:33
H.264擴展頭就一個字節,三個信息
God of Light(233383328) 16:03:52
RTP包頭12和16字節兩種
劍魄(363127921) 16:04:05
我看JM都先讀四個字節,再讀四個字節時間戳,再就是buffer了
God of Light(233383328) 16:04:28
應該還有四個字節的信息源標識符
God of Light(233383328) 16:04:37
一共12字節才對