視頻標準
制定TS流標準的機構就規定了一些數據結構來定義。比如: PSI(Program Specific Information)表,所以解析起來就像這樣: 先接收一個負載里為PAT的數據包,在整個數據包里找到一個PMT包的ID。然後再接收一個含有PMT的數據包,在這個數據包里找到有關填入數據類型的ID。之後就在接收到的TS包里找含有這個ID的負載內容,這個內容就是填入的信息。根據填入的數據類型的ID的不同,在TS流複合多種信息是可行的。關鍵就是找到標識的ID號。
簡單回放
有一些播放器軟體可以直接播放MPEG2-TS流,比如:
1.WinDVD 5.x
2.VLC Media Player
3.Elecard Player
等等。
播放前,先將TS流檔案的後綴名改為 .mpg,以便播放器可以識別它是一個MPEG檔案,否則一些"以貌取人"的播放器可能會拒絕提供服務。
修改了後綴名後,直接用播放器打開檔案播放即可。
但是需要通過VOBSub外掛字幕的朋友,可能很快就會發現,在WinDVD里無法對MPEG檔案載入字幕,這是因為WinDVD在對MPEG檔案解碼的時候,用了內部的解碼流程,而沒有按照微軟的DirectShow標準去搭建解碼框架,這樣自然就無法觸發VOBSub這些基於DirectShow標準的外掛控制項了。
高級回放
主要介紹MPEG2-TS回放的DIY方法。
需要如下軟體:
1.一個支持MPEG2-TS格式的分離器(Splitter Filter)。
分離器的功能就是識別檔案真正的格式,將其中的視頻流數據、音頻流數據分離出來,並傳送給相應的解碼器。
微軟的DirectX里已經提供了此類的分離器,但是兼容性不好,而且甚至在DirectX9以及XP里的DirectX8中就取消了對TS流的支持。
2.一個MPEG2視頻解碼器和AC3音頻解碼器,可以通過安裝WinDVD、CinePlayer等軟體獲得。
3.一個基於DirectShow架構的播放器,比如微軟自帶的Media Player(媒體播放器)、ZoomPlayer等等。
4.VOBSub字幕外掛控制項。
5.字幕檔案
注意,字幕檔案都是按照某個版本的Rip檔案就行分割的,未必就能找到與你的TS檔案完全吻合的,可能需要自行進行調整時間延遲、合併、分割等工作。
對於很多朋友來說,MPEG2解碼器/AC3解碼器、播放器、VOBSub這些都是現成的,所以只要安裝一個分離器控制項,就可以讓大多數的播放器來播放TS流檔案了(記得改後綴名為.mpg)。
幾點注意事項:
1.WinDVD是不能支持MPEG格式的VOBSub外掛的,使用微軟MediaPlayer、ZoomPlayer這些播放器都會用到WinDVD的視頻解碼控制項(除非你同時安裝了幾個MPEG2解碼控制項,那么DirectX可能會自行選擇一個註冊級別最高的或者是最後安裝的,可以通過VOBSub的Filter選單里看到當前所用的解碼控制項)
2.高清節目尤其是1080線的畫面外掛字幕會很明顯地耗費CPU。
3.DirectX最好是8.1以上的,顯示卡驅動也最好是官方最新的而不是微軟自帶的。
MPEG2-TS流檔案的合併、切割與轉換
為了網路下載方便或者刻錄存儲,需要對MPEG2-TS流進行合併/切割,比如《角鬥士》的1080i版被切割成了三個4G左右的檔案,想必就是為了用DVD刻錄盤存儲而做的切割。
進行此類的工作沒有什麼技巧可言,純粹的體力活,主要是依靠相應的工具。