我需要从Wireshark捕获中提取MPEG-TS流。我已经设法做到了,但是当我使用VLC播放时,输出很糟糕,它只是一个绿色的窗口,最上面的几行有一些抖动。
这是我的做法:
它不能正确播放。还有其他方法吗
答案 0 :(得分:1)
当我需要从pcap文件中转储TS时,请执行以下操作:
我不使用MP2T数据包解码,通常不起作用。
如果TS是纯UDP,则可能会发生TS数据包被混洗并且用作连续性计数器的4位长的TS数据包字段不足以正确排序TS数据包的情况。这可能会导致转储的TS的播放损坏。
答案 1 :(得分:1)
我在原始pcap2mpeg中添加了两个过滤选项。
您可以在https://github.com/bugre/pcap2mpegts
上找到它因此您可以:
对于捕获的文件在相同IP上但在不同端口或不同mcast IP上具有多个TS的情况。
您将其运行为:
pcap2mpegts.pl -y -i 239.100.0.1 -p 2000 -l multi_ts_capture.pcap -o single-stream-output.ts
答案 2 :(得分:0)
不使用Wireshark,可以使用pcap2mpeg.pl。我测试了它,如果只有一个MPEG,效果很好 流在PCAP中。
以下是ffprobe在mpeg文件上的输出,该文件包含2个已成功提取的流:
Input #0, mpegts, from 'test.mpeg':
Duration: 00:27:59.90, start: 4171.400000, bitrate: 8665 kb/s
Program 1
Metadata:
service_name : Service01
service_provider: FFmpeg
Stream #0:0[0x100]: Video: h264 (Main) ([27][0][0][0] / 0x001B), yuv420p(progressive), 4096x2176 [SAR 1:1 DAR 32:17], 10 fps, 10 tbr, 90k tbn, 20 tbc
Stream #0:1[0x1001]: Data: bin_data ([6][0][0][0] / 0x0006)