2011-06-16 82 views
6

我正在寫一個服務器,它在HTTP上直播mpeg2-ts,我想知道什麼是分割mpeg傳輸流的最佳位置。該流將由iptv機頂盒播放,我不知道這些設備的行爲。從哪裏開始/分割mpeg2-ts

我認爲最好的地方,開始的數據流是I幀之前,但它開始解碼視頻流數據之前,該設備可能需要的PAT,PMT包...

+0

您是否找到任何解決方法?如果TS包含多個節目(由DVB-T捕獲的電視節目),如何分割?例如,我有一個包含足球+烹飪+卡通的TS文件。如何將此TS文件分割爲3 mpg文件? – 2015-07-20 12:43:58

+0

我可以解釋如何以編程方式執行它(檢查PAT並重寫它,獲取適當的PMT,查找流標識符,僅提取相關數據,..並且您可能必須重新編號數據包) - 但如果全部你想要做的是分裂,你最好搜索一個工具(ffmpeg?) – 2015-07-27 11:45:15

回答

1

你可以開始每個188字節的TS包(0x47是起始碼)。 MPEG解碼器在第一個I幀處自動跳入。您可以像MS Mediaroom一樣發送突發I幀的技巧,但這需要對您的客戶進行大量更改(以及專利權限)。

+0

理論上,是的。實際上,我有時可以通過這樣做一個蹩腳的機頂盒(這是很流行的) (不,我不從任何0x47開始,我知道*這是一個TS數據包開始)。另外,解碼器在第一個I幀之前開始,所以我在半秒內看到一些不好的解碼幀。 – 2011-07-12 07:29:24

+0

有些播放器需要自我初始化的TS段,即以PAT/PMT和I-幀開始的段。例如:如果沒有PAT/PMT,Android 4.4.4播放器不會喜歡它,它根本不會解碼。 – aergistal 2015-04-10 09:19:57