d

 1                         byte temp[]=new byte[20];//11个tag head,1+1+3+4
 2                         temp[0]=0x09;//表示视频
 3                         int length=NalBufUsed-8;//NAL单元的长度
 4                         int lengthA=length+5+4;//tag的body长度
 5                         int lengthB=length+20;//tag的总长度
 6                         temp[1]=(byte)((lengthA&0xff0000)>>16);//记录NAL的长度
 7                         temp[2]=(byte)((lengthA&0x00ff00)>>8);
 8                         temp[3]=(byte)(lengthA&0x0000ff);
 9                         //接下来3个字节记录时间戳,附加一个字节
10                         temp[4]=(byte)((time&0xff0000)>>16);
11                         temp[5]=(byte)((time&0x00ff00)>>8);
12                         temp[6]=(byte)(time&0x0000ff);
13                         time+=60;//时间戳增加
14                         temp[7]=0x00;//附加的一个字节
15                         //接下来3个字节都是0x00
16                         temp[8]=0x00;temp[9]=0x00;temp[10]=0x00;
17                         //上面是11个字节的tag头部
18                         if((NalBuf[4]&0x1F)== 5)
19                             temp[11]=0x17;//关键帧 I帧
20                         else
21                             temp[11]=0x27;
22                         temp[12]=0x01;//表示nal单元
23                         temp[13]=0x00;temp[14]=0x00;temp[15]=0x00;
24                         //接下来用4个字节表示NAL的长度
25                         temp[16]=(byte)((length&0xff000000)>>24);
26                         temp[17]=(byte)((length&0x00ff0000)>>16);
27                         temp[18]=(byte)((length&0x0000ff00)>>8);
28                         temp[19]=(byte)(length&0x000000ff);
29                         fileOS.write(temp);
30                         fileOS.write(NalBuf,4,length);
31                         byte taglength[]=new byte[4];
32                         taglength[0]=(byte)((lengthB&0xff000000)>>24);
33                         taglength[1]=(byte)((lengthB&0x00ff0000)>>16);
34                         taglength[2]=(byte)((lengthB&0x0000ff00)>>8);
35                         taglength[3]=(byte)(lengthB&0x000000ff);
36                         fileOS.write(taglength);
原文地址:https://www.cnblogs.com/GoAhead/p/3037683.html