如何将mp2t.af.pcr的值用作Tshark字段?

时间:2014-05-28 10:31:52

标签: udp wireshark rtp mpeg

我有一个包含RTP组播流的Wirehark捕获(加上一些其他附带数据)。

使用如下的Tshark命令,我可以生成RTP时间戳的CSV与数据包捕获时间相比:

tshark.exe -r "capture.pcap" -Eseparator=, -Tfields -e rtp.timestamp -e frame.time_epoch -d udp.port==5000,rtp

将UDP数据包解码为RTP,并按预期成功打印出两个字段。

现在,我的问题:RTP流的有效载荷是MPEG2传输流,我还想在数据包和RTP时间戳旁边打印PCR值(如果有的话)。 在wireshark中,我可以看到PCR被正确解码,但是使用如下命令:

tshark.exe -r "HBO HD CZ.pcap" -Eseparator=,-Tfields -e rtp.timestamp -e frame.time_epoch -e mp2t.af.pcr -d udp.port==5000,mp2t

...仅打印出" 1"如果存在PCR,则不是实际值。我还检查了.pcr_flag以确认这两个没有交换,但我仍然看到相同的结果。

文档似乎将mp2t.af.pcr称为"标签",这是否意味着Tshark无法将其用作字段?有没有办法生成具有这些值的CSV?

1 个答案:

答案 0 :(得分:1)

(文档的哪一部分称之为"标签"?这对命名字段有点奇怪的描述。)

问题在于Wireshark在" base(XXX)* 300 + ext(YYY)"之后显示的值。计算并显示,但字段本身不是一个整数类型,而是给出一个没有值的类型。可以说,它应该是一个FT_UINT64字段,并且应该给出一个值,以便您可以对其进行过滤并在TShark中打印该值。

请在the Wireshark Bugzilla上提交增强请求。