簡體   English   中英

傳輸流和mpeg文件格式

[英]transport stream & mpeg file format

我想將TS文件轉換為mpeg文件。 有沒有描述這種過程的文件? 我知道TS架構,但我不知道mpeg的文件架構。 有關此主題的任何信息將受到高度贊賞。

謝謝。

您可能想要做的是從MPEG-TS(傳輸流)轉換為MPEG-PS(節目流)。 MPEG-PS是標准.mpg文件的格式以及DVD視頻使用的格式。

您可能應該遵守ISO / IEC 13818-1標准。 該標准包含所有MPEG-TS和MPEG-PS容器細節(它不包括ISO / IEC 13818-2中涵蓋的編碼視頻)。

幸運的是,這種轉換相當簡單,因為大多數MPEG-PS結構都包含在MPEG-TS格式中。 傳輸流包含一系列188字節的數據包,每個數據包都有一個標頭。 PES(節目基本流)分組包含在分組有效載荷內。 PES包包含實際的視頻或音頻有效載荷。 PES包可以是任何長度,並且大多數時間它們跨越多個TS包。 從傳輸流中解復用PES數據包實際上只需要刪除TS報頭並正確連接有效負載數據以形成PES數據包。

一旦有了PES數據包流,您就會將它們多路復用為標准中規定的節目流格式。 所以基本上,你不需要解析PES數據包或它們的內容,你可以從一種格式中提取它們並將它們插入到另一種格式中。

即使轉換相當簡單,它仍然需要相當多的工作,因為您需要熟悉容器標准,並仔細解析比特流以使事情正確。 因此,盡管我說轉換很簡單,但這只是因為與其他格式轉換相比,它很簡單,您可能需要進一步深入研究視頻數據。

我想添加一些可能有用的好資源。

以下是一些文檔,用於解釋傳輸和程序流以及相關的打包結構的詳細信息。

  1. 這解釋了傳輸流和節目流之間的差異。 http://www.vbrick.com/docs/VB_WhitePaper_TransportStreamVSProgramStream_rd2.pdf

  2. 這解釋了MPEG的過度視圖並且還包括分組化。 http://www.img.lx.it.pt/~fp/cav/Additional_material/MPEG2_overview.pdf

  3. 這解釋了使用表格等選擇程序的傳輸流的其他方面http://www.bitrouter.com/pdf/tutorial-psip.pdf

基本上,您需要將傳輸流解包並分解為PES數據包(以及時間戳),然后應用程序流打包過程。

關鍵是你如何保持PS流中的數據包的相對差距和時間。 因此,您必須在PES數據包中保留PTS / DTS時間戳。

我在這里列出了一些工具 - 這是你工作的一個很好的例子 - 而且他們更熟悉符合MPEG2系統標准。

  1. tstools( http://tstools.berlios.de/
  2. mplex(來自mjpegtools)
  3. dvb-mplex(libdvb的一部分, http://www.metzlerbros.org/dvb/
  4. DVB-replax(也是libdvb的一部分, http //freshmeat.net/projects/dvb-replex/或http://www.metzlerbros.org/dvb/
  5. Avidemux的。 http://avidemux.sourceforge.net/

如果您想快速了解更廣泛的流程,那么開始學習的另一個好方法是使用Gstreamer插件框架。

FFMPEG可用於從TS轉換為MPEG。 更多信息在這里

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM