gpt4 book ai didi

video-streaming - 来自 MPEG-2 传输流的视频大小(水平和垂直)

转载 作者:行者123 更新时间:2023-12-04 07:15:00 25 4
gpt4 key购买 nike

我需要知道如何从 MPEG 传输流 (TS) 中获取高度和宽度以及任何其他描述性数据。

在出现此答案之前:我很清楚视频序列 header (00 00 00 B3)。这是 MPEG 节目流(即 MPEG 文件)规范的一部分,不是MPEG 传输流。

如果我将传输流保存到 .ts 文件中,我可以从 ffmpeg 获取此信息,但我需要能够在 ffmpeg 不可用的环境中独立于 ffmpeg 执行此操作。因此,我需要手动解析文件中的这些数据,而且我似乎找不到任何关于任何相关元数据的信息,除了来自 MPEG-TS 的时间戳(切片开始)。

谢谢!

最佳答案

恐怕您必须检查 ISO 13818-1(也称为 H.222)并阅读一些有关传输流数据包、PID 过滤和 PES 数据包的内容。

流被分成数据包。每个数据包(通常)为 188 字节长。数据包 header 包含 PID(数据包 ID),它允许您仅过滤您感兴趣的数据包。

这些数据包组成了 PES 数据包,其中包含 MPEG-2 数据 + 元数据(例如计时数据)。您需要构建并解析 PES 数据包,然后才能找出视频的宽度和高度。

您如何知道您对哪些 PID 感兴趣?为此,您必须阅读 PAT 和 PMT。 PAT 告诉你如何得到 PMT,PMT 告诉你哪些 PID 包含 MPEG-2 信息。

所有这些都在上面的文档中进行了(详细)描述。但是网上有很多教程和解释。例如here但还有很多其他的。 Wikipedia article是一个很好的起点。

关于video-streaming - 来自 MPEG-2 传输流的视频大小(水平和垂直),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6764652/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com