Jas*_*n B 15
您可能想要做的是从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数据包或它们的内容,你可以从一种格式中提取它们并将它们插入到另一种格式中.
即使转换相当简单,它仍然需要相当多的工作,因为您需要熟悉容器标准,并仔细解析比特流以使事情正确.因此,尽管我说转换很简单,但这只是因为与其他格式转换相比,它很简单,您可能需要进一步深入研究视频数据.
Dip*_*hta 10
我想添加一些可能有用的好资源.
以下是一些文档,用于解释传输和程序流以及相关的打包结构的详细信息.
这解释了传输流和节目流之间的差异.http://www.vbrick.com/docs/VB_WhitePaper_TransportStreamVSProgramStream_rd2.pdf
这解释了MPEG的过度视图并且还包括分组化. http://www.img.lx.it.pt/~fp/cav/Additional_material/MPEG2_overview.pdf
这解释了使用表格等选择程序的传输流的其他方面http://www.bitrouter.com/pdf/tutorial-psip.pdf
基本上,您需要将传输流解包并分解为PES数据包(以及时间戳),然后应用程序流打包过程.
关键是你如何保持PS流中的数据包的相对差距和时间.因此,您必须在PES数据包中保留PTS/DTS时间戳.
我在这里列出了一些工具 - 这是你工作的一个很好的例子 - 而且他们更熟悉符合MPEG2系统标准.
如果您想快速了解更广泛的流程,那么开始学习的另一个好方法是使用Gstreamer插件框架.
| 归档时间: |
|
| 查看次数: |
10178 次 |
| 最近记录: |