[請問] MP4時間計算公式的單位問題
我在查詢MP4的時間計算公式時
找到這張網頁
:http://wiki.multimedia.cx/index.php?title=QuickTime_container#stts
這個wiki在介紹stts這個box的下面寫下了這條公式:
duration =
(sample_count1*sample_time_delta1+...+sample_countN*sample_time_deltaN)/timescale
我馬上翻譯成自己較能理解的形式:
該trak的實際時間長度=(第一個群組的sample數量*第一個群組裡一個sample所佔的時間
單位+...+第N個群組的sample數量*第N個群組裡一個sample所佔的時間單位)/採樣率
接下來問題來了,我標上它們的單位後覺得不合理:
seconds=(samples*(seconds/sample)+...+samples*(seconds/sample))/(samples/sec)
簡化變成
seconds=seconds^2/sample
左右兩邊的單位不符
我苦思許久,在網路上找到了兩個文獻:
http://developer.longtailvideo.com/trac/export/1522/branches/adaptive/doc/f4v.pdf
裡面解釋SampleDelta這個詞是「Sample duration in TimeScale units defined in
the mdhd box」
http://jaadec.sourceforge.net/specs/ISO_14496-12_ISOBMFF.pdf
這裡則是解釋成「sample_delta - is an integer that gives the delta of these
samples in the time-scale of the media.」
以下是我自己推論的:
所以說sample_time_delta的單位不是seconds/sample
而是特別創造出來的TimeScale單位/sample;
timescale的單位不是我們熟知的採樣率單位:samples/sec
而是TimeScales/sec
這兩個地方修改後就合理了
小弟剛接觸這些,不確定自己猜測的是否正確,還請高手賜教,謝謝!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.168.233.204
AVEncode 近期熱門文章
PTT數位生活區 即時熱門文章