• 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);
  • 相关阅读:
    caffe学习笔记(1)安装
    windows下遍历文件夹
    图像处理之OpenCV
    OpenCV的安装和使用
    使用cpplint检测代码规范
    图像处理之原理
    Python 在cmd中import模块成功,但是在jupyter notebook中No module xxx found
    Win10上使用VS2015编译Caffe2
    Win10, VS2017环境下OpenCV3.4.2的配置
    C++ main函数的参数
  • 原文地址:https://www.cnblogs.com/GoAhead/p/3037683.html
Copyright © 2020-2023  润新知