|
|
1
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包或其内容,只需将它们从一种格式中提取出来并插入到另一种格式中即可。 尽管转换相当简单,但它仍然需要相当多的工作,因为您需要非常熟悉容器标准,并仔细分析位流以使事情正确。因此,尽管我说转换很简单,但与其他格式转换相比,这只是一个简单的概念,在这种情况下,您可能需要深入了解视频数据。 |
|
|
2
10
我正在尝试添加一些有用的资源。 以下是一些解释传输和程序流以及相关打包结构的详细信息的文档。
基本上,您需要将传输流分解为PES包(连同时间戳),然后应用程序流打包过程。 关键的是,当您对ps流进行多路复用时,如何保持ps流中数据包的相对间隔和时间。因此,您必须在PES包中保留PTS/DTS时间戳。 我在这里列出了一些工具——这是您工作的一部分很好的例子——而且它们更为人所知是符合MPEG2系统标准的。
另一个开始学习的好方法是 Gstreamer 如果您想快速了解更广泛的流程,可以使用插件框架。 |
|
3
2
|
|
AstralHex · 矩阵乘法代码工作不正常 1 年前 |
|
|
Fishie · 作为类成员的智能指针是否仍然自动释放?[关闭] 1 年前 |
|
|
Die4Toast · 递归调用成员箭头运算符-> 1 年前 |
|
|
Anka Hanım · 关于结构和动态数组地址的问题 1 年前 |