Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 交通流及;mpeg文件格式_C++_Video_Video Streaming - Fatal编程技术网

C++ 交通流及;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文件。是否有任何文件描述该过程? 我知道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数据包或其内容,您只需将它们从一种格式中取出并插入到另一种格式中即可


尽管转换相当简单,但它仍然需要相当多的工作,因为您需要非常熟悉容器标准,并仔细分析位流以正确处理。因此,尽管我说转换很简单,但这只是因为与其他格式转换相比,它很简单,在其他格式转换中,您可能需要进一步深入研究视频数据。

我试图添加一些有用的资源

以下是一些文档,解释了传输和程序流以及相关的打包结构的细节

  • 这解释了传输流和程序流之间的差异

  • 这解释了MPEG的概览,还包括打包。

  • 这解释了传输流的其他方面,即如何使用表等选择程序

  • 基本上,您需要对传输流进行打包,并将其分解为PES数据包(以及时间戳),然后应用程序流打包过程

    关键的是,当您将数据包多路复用回来时,如何保持PS流中数据包的相对间隔和时间。因此,您必须在PES数据包中保留PTS/DTS时间戳

    我在这里列出了一些工具——它们是您工作的一部分的好例子——它们更符合MPEG2系统标准

  • tstools()
  • mplex(来自mjpegtools)
  • dvb mplex(libdvb的一部分)
  • DVB replax(也是libdvb的一部分,或)
  • avidemux
    开始学习的另一个好方法是使用插件框架,如果您想快速了解更广泛的流程

    我知道,但我必须自己编写TS->mpeg的实现。这就是为什么我需要了解mpeg文件体系结构的原因。@Natko-FFMPEG是LGPL,如果您使用某些构建选项,那么最好使用它。@Natko-FFMPEG是开源的。即使你必须自己编写代码,你也不能用它作为一个模型来逆向工程你所需要的格式吗?嗨,有什么好的mpeg ts开源软件?ffmpeg是一个不错的选择吗?