流媒體基本要點(diǎn)簡述:如何在AAC數(shù)據(jù)中獲取PTS?
jackyhwei 發(fā)布于 2011-10-08 09:12 點(diǎn)擊:80次
ADTS和LOAS都是一個(gè)數(shù)據(jù)頭+FRAME數(shù)據(jù)。首先在數(shù)據(jù)流中檢查標(biāo)識頭,分割出數(shù)據(jù)頭+FRAME數(shù)據(jù)。然后根據(jù)數(shù)據(jù)頭格式,解析數(shù)據(jù)頭,取出frame_length和sample_rate信息。
TAG:
AACAAC的原始數(shù)據(jù)有好幾種格式,常見的有ADTS(Low Overhead Audio Transport Multiplex)和LOAS(Low Overhead Audio Stream)。
注意:LATM(Low Overhead Audio Transport Multiplex)是用于傳輸?shù)姆庋b,并不會(huì)見到可以存儲(chǔ)的文件形式。表搞混淆。
AAC編碼后的數(shù)據(jù),有個(gè)貌似視頻FRAME的概念,編碼后的數(shù)據(jù)是按照FRAME進(jìn)行存放輸出的。解碼也是一個(gè)FRAME一個(gè)FRAME的解碼。
ADTS和LOAS都是一個(gè)數(shù)據(jù)頭+FRAME數(shù)據(jù)。首先在數(shù)據(jù)流中檢查標(biāo)識頭,分割出數(shù)據(jù)頭+FRAME數(shù)據(jù)。然后根據(jù)數(shù)據(jù)頭格式,解析數(shù)據(jù)頭,取出frame_length和sample_rate信息。
其中ADTS的解析相對簡單,LOAS的解析要復(fù)雜一點(diǎn)。在VLC和FFMPEG中均有相關(guān)的解析代碼,可以直接參考挪用。
根據(jù)frame_count(當(dāng)前FRAME的數(shù)量),以及frame_length、sample_rate,即可計(jì)算出這幀AAC FRAME的PTS。
計(jì)算公式:
pts = 1000000 * frame_count * frame_length / sample_rate;
這里的base_clock(基本時(shí)鐘頻率),我取的1000000(納秒)。
如果您對此文章有任何疑問,歡迎到
流媒體開發(fā)論壇提問。
本站遵循Creative Commons Attribution 3.0 License,所有文章歡迎任何形式的轉(zhuǎn)載,但請注明作者及出處,尊重他人勞動(dòng)成果!
文章轉(zhuǎn)載自:羅索工作室 [
http://www.rosoo.net]
本文標(biāo)題:流媒體基本要點(diǎn)簡述:如何在AAC數(shù)據(jù)中獲取PTS?
本文作者:zorru 本文來源:hi.baidu.com/zorru
本文地址:
http://www.rosoo.net/a/201110/15087.html
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請
點(diǎn)擊舉報(bào)。