2011-06-22 28 views
2

我想爲MpegTs文件播放實現尋找功能。 任何人都可以建議我如何將PCR轉換爲時間(單位爲mescs)。 我知道PCR是用於尋找(我曾在VLC中見過),但想知道如何做到這一點。基於PCR尋求MpegTSFile

此致 Ven的

回答

3

的PCR是表示在編碼器側27MHz時鐘的時鐘。因此PCR時鐘的每個滴答表示1/27微秒。

第一步是能夠解析PCR數據包。 PCR滴答由特定的PID(主要是視頻,但可以是音頻或替代數據包)維護。當數據包中存在PCR時,其爲適應字段,類型2或3.您可以參考thiswiki瞭解如何解析PCR。一旦你得到了數據包的PCR值 - (使用一個64位整數),你有一個該數據包的時間戳P0。現在,你可以尋求確切說10個seceonds,當你下一次PCR包,帶有時間戳,P1其中

P1 = P0 + 10 * 27 * 10^6

所以當你看到一個這樣的包包含時間戳P1或更多,你可以確定經過了10秒。

請注意,在某些情況下,PCR可能會發現不連續性,因此需要在PCR基點位移處進行更多計算。

+0

謝謝你Dipan :) – Ven