gpt4 book ai didi

java - MPEG-TS PSI解析

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:47:18 25 4
gpt4 key购买 nike

我正在尝试按照 EN 300 468 中的规定构建 EIT 表部分.我已经成功地将数据包解析为数据结构(用 Java),并且可以访问每个数据包的有效负载。

我不明白表格部分是如何在数据包中分割的,规范有点困惑/不确定。 假设可以通过 PID 过滤 TS 数据包流来构造这样一个表,过程是什么?

我理解正在设置的 payload_unit_start_indicator,表示有效载荷字段的第一个字节是指向新部分的第一个字节的指针,是从开始的偏移量有效负载?

例如,如果我收到一个 TS 数据包,并且我将其标识为一个部分的开始,那么我是否将字节读入一个数组,从 header 确定部分长度,然后继续用越来越多的字节填充我的数组直到 bytesRead == sectionLength 之前相同 PID 的 TS 数据包有效负载?

感谢阅读,如有任何建议或帮助,我们将不胜感激! :)

最佳答案

Here您可以想象传输包 (TP) 的结构。

What is the process, assuming one can filter a stream of TS packets by PID, to construct such a table ?

好吧,你几乎成功了:

要从流中构建一个部分,您必须从相同的 PID 累积 TP。正如您猜到的那样,payload_unit_start_indicator 指示新部分的开始。然而,它不是偏移量。

然后正如您所说,您只需继续收集相同 PID 的 TP 的有效负载,直到 payloadBytesRead == sectionLength

Transport Packets (188 bytes each):
---------------------------
|Header| Payload1 | TP1: payload_unit_start_indicator = 1
---------------------------
^
0x47 (Sync Byte)

---------------------------
|Header| Payload2 | TP2: payload_unit_start_indicator = 0
---------------------------

...

Section (sectionLength):
--------------------------------------- ---------------------
| Payload1 | Payload2 | ...| Payload N |
--------------------------------------- ---------------------

关于java - MPEG-TS PSI解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25170096/

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