欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
CMMB中的H264和AAC打包成ts流
參照tstools這個(gè)開(kāi)源項目完成了CMMB的merge aac with 264 to TS.

在做的過(guò)程中,分成了幾個(gè)階段。先試著(zhù)將H264打包成TS,這花了最大的精力和時(shí)間;接著(zhù)將AAC打包成TS;最后將其合并起來(lái)。

一、處理H264
     1、H264 -> pes
     在查找了大量資料后,對H264有了初步的認識。H264的結構從大到小依次為視頻序列(sequence )、圖像(picture ,相當于幀)、片組、片(slice)、宏塊(MacroBlock)、子塊(SubBlock)。
     
          
     其中,幀率是針對于圖像來(lái)說(shuō)的,例如25Hz的幀率,就差不多是每個(gè)40ms顯示1個(gè)圖像。
     圖像分為 I圖像、P圖像、B圖像。
     每個(gè)圖像又由多個(gè)片組組成,片組由多個(gè)片組成。
     每個(gè)片又由多個(gè)宏塊組成。片分為I_slice、P_slice、B_slice。宏塊有I、P、B三種宏塊。
     I_slice里只有I_MB,  p_slice里可有P_MB和I_MB,  B_slice里可有B_MB和I_MB。
     通常的一個(gè)圖像里就含一種片,這次的CMMB里的H264比較簡(jiǎn)單,是Baseline的profile,只含有I、P幀,而且每個(gè)圖像就1個(gè)slice。

     對于H264按功能層次劃分,又分為視頻編碼層VCL(video coding layer)和網(wǎng)絡(luò )抽象層 NAL(Network abstraction layer).
     每個(gè)NAL單元包含:NAl頭+負荷
                                 NAl的頭一般為00 00 01 或者00 00 00 01,然后到下一個(gè)頭之間都為這一個(gè)nalu的數據。

     所以,對于封裝成ts流,只需要去讀取H264的原始文件,然后找到這個(gè)nal頭,再將這個(gè)nalu(包含頭和負荷)當成數據打包成pes再打成ts即可。

     在打包成pes的時(shí)候,需要注意的一個(gè)問(wèn)題就是pts/dts,其單位應該是系統時(shí)鐘。需要在找到每個(gè)圖像的起始slice的時(shí)候,在打包成pes的時(shí)候加上pts/dts。這次的CMMB中,其視頻幀只含I/P圖像(幀),且每個(gè)圖像只有1個(gè)片,所以就在讀取264原始數據時(shí)讀到I_slice或P_slice的時(shí)候,一并打入pts。CMMB流正好又有現成的pts,只需讀出來(lái),按照CMMB中的換算方法,每22500就是1秒,就能得出pts的值,而不需要我自己手動(dòng)的去計算添加。

      例如,視頻幀率為25HZ的時(shí)候,即1秒25幀,每幀的間隔40ms。按90Khz的視頻頻率來(lái)算的話(huà),其對應的系統時(shí)鐘數應該是
      1/25*90000 = 3600 個(gè)clk。
     所以當分析pes時(shí),其pts字段的33個(gè)bit算出來(lái)的話(huà),就是按這個(gè)clk為單位的。相鄰的視頻幀的pts之差值為3600.

     2、pes -> ts
     h264打包成ts的時(shí)候,還需要打入pat和pmt。pmt里指定了視頻的類(lèi)型和pid。
     pes打包的時(shí)候,按ts協(xié)議格式封裝即可。
     PCR使用和視頻一樣的pid,這里把pts當成pcr打進(jìn)ts包。

二、處理AAC
     AAC的ts封裝相對于H264來(lái)說(shuō)就簡(jiǎn)單多了。這次的CMMB采用的是aac的adts格式封裝,同h264類(lèi)似,也有其自己的分界符,然后兩分界符之間就是數據,分界符為1111 1111 1111,即FFF。依次讀取AAC的原始文件,遇到一個(gè)FFF時(shí),將其后的數據連同這個(gè)FFF的頭看成整體,作為負載封入PES。同樣的,每幀都需要打入pts。CMMB流中也附有AAC的pts,讀取后計算寫(xiě)入PES即可。也省了我去根據采樣率,每幀的樣本率去計算pts。

三、合并H264和AAC的ts流
     做完了上兩步工作,最后一步就更簡(jiǎn)單了。
     先是打入PAT、PMT。PMT需要稍微修改,因為加入了音頻,所以要在其中指明音頻的類(lèi)型和pid。
     接著(zhù)就是視頻、音頻的ts包依次打。打的時(shí)候稍微注意要判斷下視頻和音頻的pts值,保持同步。

對于H264更底層的東西,就沒(méi)研究下去了。對于H264的SPS獲取PTS,也沒(méi)整太明白。還有PCR這方面,都還不太清楚。后面再找時(shí)間慢慢研究吧~
本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
[轉]hls之m3u8、ts、h264、AAC流格式詳解
hls流媒體:ts流格式介紹
MPEG-2TS碼流編輯的原理及其應用 - 中國數字電視論壇 - 最好的廣電網(wǎng)絡(luò )社區
PCR的工作原理
數字電視廣播中的編解碼器的同步機制 | it6655多媒體技術(shù)實(shí)驗室
【精品博文】TS流(5)——PCR,PTS
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久