C++ 交通流及;mpeg文件格式
我想将TS文件转换为mpeg文件。是否有任何文件描述该过程? 我知道TS架构,但我不知道mpeg的文件架构。任何关于这个主题的信息都将不胜感激C++ 交通流及;mpeg文件格式,c++,video,video-streaming,C++,Video,Video Streaming,我想将TS文件转换为mpeg文件。是否有任何文件描述该过程? 我知道TS架构,但我不知道mpeg的文件架构。任何关于这个主题的信息都将不胜感激 谢谢。可用于将TS转换为MPEG。更多信息。您可能想做的是将MPEG-TS(传输流)转换为MPEG-PS(节目流)。MPEG-PS是标准.mpg文件的格式,也是DVD视频使用的格式 您可能应该掌握ISO/IEC 13818-1标准。本标准包含所有MPEG-TS和MPEG-PS容器详细信息(不包括ISO/IEC 13818-2中包含的编码视频) 幸运的是,
谢谢。可用于将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数据包或其内容,您只需将它们从一种格式中取出并插入到另一种格式中即可
尽管转换相当简单,但它仍然需要相当多的工作,因为您需要非常熟悉容器标准,并仔细分析位流以正确处理。因此,尽管我说转换很简单,但这只是因为与其他格式转换相比,它很简单,在其他格式转换中,您可能需要进一步深入研究视频数据。我试图添加一些有用的资源 以下是一些文档,解释了传输和程序流以及相关的打包结构的细节
开始学习的另一个好方法是使用插件框架,如果您想快速了解更广泛的流程 我知道,但我必须自己编写TS->mpeg的实现。这就是为什么我需要了解mpeg文件体系结构的原因。@Natko-FFMPEG是LGPL,如果您使用某些构建选项,那么最好使用它。@Natko-FFMPEG是开源的。即使你必须自己编写代码,你也不能用它作为一个模型来逆向工程你所需要的格式吗?嗨,有什么好的mpeg ts开源软件?ffmpeg是一个不错的选择吗?