@sc
通过这个表可以比较清楚地看出它们的关系:
able 3.  Summary of allowed NAL unit types for each packetization
   mode (yes = allowed, no = disallowed, ig = ignore)
      Type   Packet    Single NAL    Non-Interleaved    Interleaved
                       Unit Mode           Mode             Mode
      -------------------------------------------------------------
      0      undefined     ig               ig               ig
      1-23   NAL unit     yes              yes               no
      24     STAP-A        no              yes               no
      25     STAP-B        no               no              yes
      26     MTAP16        no               no              yes
      27     MTAP24        no               no              yes
      28     FU-A          no              yes              yes
      29     FU-B          no               no              yes
      30-31  undefined     ig               ig               ig
				
		 
	
			
			@heshui
/** 发送指定的 NALU 单元. */
int GEPlayback::SendNaluPacket( BYTE* sliceData, int sliceSize, BOOL isEnd, 
								BOOL isVideo, int type, time_t pts, INT64 timestamp )
{
	// NALU 小于最大 RTP 包大小的情况
	if (sliceSize < 1350) {
		return SendPacket(sliceData, sliceSize, isEnd, TRUE, type, pts, timestamp);
	}
	// 如果一个 NALU 大于最大的 RTP 包的大小, 则需要把它进行分片后打包发送
	BYTE buffer[1500];
	BYTE nalHeader = sliceData[0]; // NALU 头
	BYTE* data = sliceData + 1;
	int leftover = sliceSize - 1;
	BOOL isStart = TRUE;
	while (leftover > 0) {
		int size = MIN(1350, leftover);
		isEnd = (size == leftover);
		// 构建 FU 头
		buffer[0] = (nalHeader & 0x60) | 28;	// FU indicator
		buffer[1] = (nalHeader & 0x1f);			// FU header
		if (isStart) {
			buffer[1] |= 0x80;
		}
		if (isEnd) {
			buffer[1] |= 0x40;
		}
		memcpy(buffer + 2, data, size);
		SendPacket(buffer, size + 2, isEnd, TRUE, type, pts, timestamp);
		leftover -= size;
		data += size;
		isStart = FALSE;
	}
	
	return sliceSize;
}
				
		 
	
			
			@heshui
基本上是这样子的
如有一个 H.264 的 NALU 是这样的:
  [00 00 00 01 67 42 A0 1E 23 56 0E 2F ... ]
  [00 00 00 01 67 42 A0 1E 23 56 0E 2F ... ]
  这是一个序列参数集 NAL 单元. [00 00 00 01] 是四个字节的开始码, 67 是 NALU 头, 42 开始的数据是 NALU 内容.
  封装成 RTP 包可能如下:
  [ RTP Header ] [78, STAP-A NAL HDR, 一个字节 ] [长度, 两个字节] [ 67 42 A0 1E 23 56 0E 2F ...]  [长度, 两个字节] [ 67 42 A0 1E 23 56 0E 2F... ]