zoukankan      html  css  js  c++  java
  • 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);
  • 相关阅读:
    Java Web三层架构设计深思
    编译C源码软件需要的工具
    Hibernate之表间关系
    CSS之颜色字体
    主流的微服务框架
    CSS布局思考
    Android创建新项目及开发
    Google工程师解析Android系统架构
    java多线程实用操作
    Spring IOC/DI/注解
  • 原文地址:https://www.cnblogs.com/GoAhead/p/3037683.html
Copyright © 2011-2022 走看看