H264视频流塞满了0xff

时间:2018-04-05 18:23:40

标签: c++ sockets video-streaming h.264 packet

我使用recvfrom()通过套接字接收数据。我期待我的缓冲区包含一个可靠的数据流,但似乎周期性地被0xFF字节的chucks分解。我正在使用VLC播放器来播放H264视频。

我的问题是这些0xFF字节来自哪里?它们是由VLC播放器设定的吗?我知道它们不是数据包分隔符,因为我成功地解析了所有序列号。如果它们不是数据包的一部分,我该如何安全地删除它们?以下是一些例子:

80 a1 12 63 
88 7f b9 32 
79 11 3 98 
47 40 44 31 
41 0 ff ff 
ff ff ff ff 
ff ff ff ff 
ff ff ff ff 
ff ff ff ff 
ff ff ff ff 
ff ff ff ff 
ff ff ff ff 
ff ff ff ff 
ff ff ff ff 
ff ff ff ff 
ff ff ff ff 
ff ff ff ff 
ff ff ff ff 
ff ff ff ff 
ff ff ff ff 
ff ff 0 0 
1 c0 0 70 
80 80 5 21 
0 1d c f7 

1d a7 77 77 
47 40 44 32 
40 0 ff ff 
ff ff ff ff 
ff ff ff ff 
ff ff ff ff 
ff ff ff ff 
ff ff ff ff 
ff ff ff ff 
ff ff ff ff 
ff ff ff ff 
ff ff ff ff 
ff ff ff ff 
ff ff ff ff 
ff ff ff ff 
ff ff ff ff 
ff ff ff ff 
ff ff ff ff 
ff 0 0 1 
c0 0 71 80 
80 5 21 0 
1d 1f 55 ff 

更新

我正在使用RTP。上面的段只是大得多的数据包的一部分。以下是关于我的信息流的一些信息:

:SOUT =#转码{了vcodec = H264,VB = 56,VENC = X264 {轮廓=基线},FPS = 12,宽度= 176,高度= 144,acodec = MP3,AB = 24,频道= 1, samplerate = 44100}:rtp {dst = 192.168.0.96,port = 9999,mux = ts}:sout-keep

我不认为0xFF应该存在的原因之一是因为我的解码输出看起来非常破坏。您还可以看到在0xFF段之后直接存在RTP起始码0x000001。

1 个答案:

答案 0 :(得分:0)

使用wireshark查看通过网络从源传输的数据包,我发现0xFF实际上是消息的一部分。数据包也具有一致的长度,包括0xFF。我已确定我正在接收数据。我的问题必须在别处。