2016-10-17 142 views
1

我一直在尝试通过一个练习去了解更多的流媒体。所以请忍受我的无知:)h.264 MPEG-TS到MP4文件

我有mpeg-ts文件与h.264流内。我已经能够遵循ISO 13818-1规范编写一个小程序(用Java编写)来提取PES数据包。从那里我可以轻松提取PES数据包数据。

所以我的理解是h.264是mp4,但我想这不像将所有PES数据包数据链接到名为* .mp4的文件中以创建工作mp4文件一样简单。

我不清楚PES包数据到底是什么。

但基本上,我试图得到什么算法基本上看起来像remux我有一个MP4文件的数据处理。

回答

1

H.264是一种视频压缩标准,而MP4是一种容器文件格式。

打包的基本流(PES)封装了基本流(ES),在您的情况下它是一个H.264比特流。有多种格式化H.264比特流的方法。

由于您的输入是MPEG-2传输流,因此它使用附件B格式。这意味着比特流由一系列以起始码为前缀的网络抽象层单元(NALU)组成。

MP4格式使用不同的格式,其中每个NALU前缀包含其长度的字段。

您将需要将比特流转换为正确的格式并将其复用到新的容器中。看看this answer并找到更多信息的MP4标准。