我使用 VLC 通过 LAN 上的 UDP 流式传输 MPEG TS 容器中的 H264 视频文件。我使用 Wireshark 在客户端捕获数据包,在这里您可以找到 pcap 文件:http ://www.sendspace.com/file/w0sf36
我是否需要使用 MPEG PES 来识别 I、P 或 B 帧?如果是这样,我该怎么做?这是一个 MPEG PES 数据包的数据:http: //pastebin.com/NayLBx5w。它以字节 0x00 0x00 0x00 0x01 开始。我应该使用哪些字节来达到我的目标?
在 pcap 文件中,您可以看到 MPEG PES 数据包仅占所有流的 2%,而其他数据包是简单的 UDP。使用 MPEG PES 数据包就足够了吗?这种情况下UDP数据包携带什么信息?
编辑:这是我在 Windows 中使用 ffprobe 获得的典型输出。
[PACKET]
codec_type=audio
stream_index=1
pts=54010800
pts_time=600.120000
dts=54010800
dts_time=600.120000
duration=2160
duration_time=0.024000
convergence_duration=N/A
convergence_duration_time=N/A
size=96
pos=1460384
flags=K
[/PACKET]
[PACKET]
codec_type=video
stream_index=0
pts=54012012
pts_time=600.133467
dts=54006006
dts_time=600.066733
duration=3003
duration_time=0.033367
convergence_duration=N/A
convergence_duration_time=N/A
size=207953
pos=1098672
flags=_
[/PACKET]
[PACKET]
codec_type=video
stream_index=0
pts=54009009
pts_time=600.100100
dts=54009009
dts_time=600.100100
duration=3003
duration_time=0.033367
convergence_duration=N/A
convergence_duration_time=N/A
size=145530
pos=1311676
flags=_
[/PACKET]
[PACKET]
codec_type=audio
stream_index=1
pts=54012960
pts_time=600.144000
dts=54012960
dts_time=600.144000
duration=2160
duration_time=0.024000
convergence_duration=N/A
convergence_duration_time=N/A
size=96
pos=1507948
flags=K
[/PACKET]
[PACKET]
codec_type=video
stream_index=0
pts=54018018
pts_time=600.200200
dts=54012012
dts_time=600.133467
duration=3003
duration_time=0.033367
convergence_duration=N/A
convergence_duration_time=N/A
size=46173
pos=1460572
flags=_
[/PACKET]