DirectShow中的時間戳的簡單講解 zz

2021-04-13 01:12:04 字數 1595 閱讀 9119

時間編碼

一、概念

這裡我們要說明一下**流處理中的乙個重要概念-時間編碼。

**pte timecode

是乙個**pte

ansi/**pte12-1986 最多

**pte

時間碼的資料結構是乙個

80bit

的一楨,它包含下面的內容: a、

乙個hh::mm::ss::ff

(小時::分鐘::秒::楨)格式的時間戳。 b、

8個4位的二進位制資料通常叫做「使用者位」。 c、

不同的標誌位 d、

同步序列 e、

效驗和這個格式在

directshow

中被定義為

timecode_sample。

時間碼分為兩種形式,一種是線性的時間格式

ltc(縱向編碼),在連續時間中每乙個時間碼就代表一楨。另外一種時間碼是

vitc10到

20之間。

ltc時間碼要加到比如錄影帶中會非常容易,因為它是分離的音訊訊號編碼。但它不能在磁帶機暫停、慢進、快進的時候被讀取。另外在非專業的錄影機中它有可能會丟失一路音訊訊號。

vitc

時間碼和

ltc不同,它可以在

0-15

**pte

30楨,或更高。

ntsc

29.97楨/

每秒,這是考慮到單色電視系統的相容性所致。這就導致乙個問提,在非掉楨模式下會導致乙個小時會有

108楨的不同步,就是真實時間中乙個小時的時候,時間碼唯讀了

00:59:56:12

00,20,30,40,50

分鐘時不跳楨。採用這樣的方案我們的網路測試結果每小時誤差少於一楨,每

24小時誤差大概在

3楨左右。

在現在的實際工作中,雖然兩種模式都被同時提供,但丟楨模式通常被我們採納。 二、

時間碼的典型應用

**pte a、

b、 c、

同步多個裝置 d、

在時間碼中使用未定義的位元組,叫做:

userbits

。這裡面通常包含日期,

ascii

碼或者電影的工業資訊等待。 三、

捕獲時間碼

通常,時間碼是通過一些有產生時間碼能力的捕獲卡裝置來產生的。比如乙個rs-

422就需要時間碼來控制外圍裝置和主機通訊。

a、 建立乙個每一楨位置的非連續的索引,將時間碼和每一楨一一對應。這個列表是在捕獲完成後的檔案末尾被寫入的。列表可以是乙個象下面的這個結構的矩陣陣列,為了簡明起見,這裡提供的只是

directshowtimecode_sample

結構的乙個簡化。

struct  timecode;

,

// 位於16305楨的時間格式

使用了這張表,任何楨的時間碼都會很好計算。 b

被寫入時間碼的檔案就可以編輯,復合,同步等操作了。這裡就寫到這裡,對於我們理解時間碼已經足夠了。其它的很多是關於標準的介紹,大家感興趣可以參閱一下。

Python中的時間戳

sublime在對python的支援上有 塊補充功能,即在寫完一些判斷字元如 if或者while之類,會自動出先pass的佔位符,這種佔位符雖然不執行任何動作,但對提示 寫作比較好。另外學習了time模組,time模組是python裡面乙個常用模組,在資料分析中,很多情況下都會用到時間,在pytho...

Lua中的時間戳

實現的功能 獲取mac os系統的毫秒數 獲取秒數 秒數 毫秒數與日期格式的轉換 知識點 用lua自帶的函式os.time 獲取秒數 lua自帶的函式只能獲取到秒,要獲取到毫秒,需使用lzmq.timer,或者是socket 兩個都需要使用luarocks安裝 os.clock返回乙個程式使用cpu...

js中的時間戳

1 1 將日期字串轉換為date型別的物件。let d new date 2018 01 01 在new date的時候加個 就變成時間戳了 2 let t d.gettime d 方法1 let t d.valueof d 方法2 let t d.parse d 方法3 1 獲取當前時間,並轉換成...