我一直在进行一项练习,试图更多地了解流媒体。所以请原谅我的无知:)
我有 mpeg-ts 文件,其中包含 h.264 流。我已经能够按照 ISO 13818-1 规范编写一个小程序(用 Java)来提取 PES 数据包。从那里我可以轻松提取 PES 数据包数据。
所以我的理解是 h.264 是 mp4,但我认为它并不像将所有 PES 数据包数据链接到一个名为 *.mp4 的文件中来创建一个工作的 mp4 文件那么简单。
目前我还不清楚 PES 数据包数据到底是什么。
但基本上,我试图了解该算法基本上是什么样子,以将我拥有的数据重新混合到 mp4 文件。
最佳答案
H.264 是一种视频压缩标准,而 MP4 是一种容器文件格式。
打包基本流 (PES) 封装基本流 (ES),在您的情况下是 H.264 比特流。有多种方法可以格式化 H.264 比特流。
由于您的输入是 MPEG-2 传输流,因此它使用附件 B 格式。这意味着比特流由一系列以起始码为前缀的网络抽象层单元 (NALU) 组成。
MP4 格式使用不同的格式,其中每个 NALU 都以包含其长度的字段为前缀。
您需要将比特流转换为正确的格式并将其混合到新容器中。看看this answer并查找 MP4 标准以获取更多信息。
关于video - h.264 MPEG-TS 转 MP4 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40079422/