当前位置: 首页 > news >正文

做兼职网站的项目初衷wordpress多站点 缺点

做兼职网站的项目初衷,wordpress多站点 缺点,公司网站制作有哪些注意事项,现在由哪些网站可以做外链From: http://www.cnweblog.com/fly2700/archive/2012/02/23/319718.html RFC3984是H.264的baseline码流在RTP方式下传输的规范#xff0c;这里只讨论FU-A分包方式#xff0c;以及从RTP包里面得到H.264数据和AAC数据的方法。 1、单个NAL包单元 12字节的RTP头后面的就是音视频…From: http://www.cnweblog.com/fly2700/archive/2012/02/23/319718.html RFC3984是H.264的baseline码流在RTP方式下传输的规范这里只讨论FU-A分包方式以及从RTP包里面得到H.264数据和AAC数据的方法。 1、单个NAL包单元 12字节的RTP头后面的就是音视频数据比较简单。一个封装单个NAL单元包到RTP的NAL单元流的RTP序号必须符合NAL单元的解码顺序。 2、FU-A的分片格式 数据比较大的H264视频包被RTP分片发送。12字节的RTP头后面跟随的就是FU-A分片 FU indicator有以下格式       ---------------       |0|1|2|3|4|5|6|7|       --------       |F|NRI|  Type   |       ---------------    FU指示字节的类型域 Type28表示FU-A。。NRI域的值必须根据分片NAL单元的NRI域的值设置。      FU header的格式如下       ---------------       |0|1|2|3|4|5|6|7|       --------       |S|E|R|  Type   |       ---------------    S: 1 bit    当设置成1,开始位指示分片NAL单元的开始。当跟随的FU荷载不是分片NAL单元荷载的开始开始位设为0。    E: 1 bit    当设置成1, 结束位指示分片NAL单元的结束即, 荷载的最后字节也是分片NAL单元的最后一个字节。当跟随的FU荷载不是分片NAL单元的最后分片,结束位设置为0。    R: 1 bit    保留位必须设置为0接收者必须忽略该位。    Type: 5 bits    NAL单元荷载类型定义见下表 表1.  单元类型以及荷载结构总结       Type   Packet      Type name                              ---------------------------------------------------------       0      undefined                                    -       1-23   NAL unit    Single NAL unit packet per H.264         24     STAP-A     Single-time aggregation packet           25     STAP-B     Single-time aggregation packet           26     MTAP16    Multi-time aggregation packet            27     MTAP24    Multi-time aggregation packet            28     FU-A      Fragmentation unit                       29     FU-B      Fragmentation unit                        30-31  undefined                                    - 3、拆包和解包 拆包当编码器在编码时需要将原有一个NAL按照FU-A进行分片原有的NAL的单元头与分片后的FU-A的单元头有如下关系 原始的NAL头的前三位为FU indicator的前三位原始的NAL头的后五位为FU header的后五位FU indicator与FU header的剩余位数根据实际情况决定。   解包当接收端收到FU-A的分片数据需要将所有的分片包组合还原成原始的NAl包时FU-A的单元头与还原后的NAL的关系如下 还原后的NAL头的八位是由FU indicator的前三位加FU header的后五位组成即 nal_unit_type (fu_indicator 0xe0) | (fu_header 0x1f) 4、代码实现 从RTP包里面得到H264视频数据的方法 // 功能解码RTP H.264视频  // 参数1.RTP包缓冲地址 2.RTP包数据大小 3.H264输出地址 4.输出数据大小  // 返回true:表示一帧结束  false:FU-A分片未结束或帧未结束   #define  RTP_HEADLEN 12   bool  UnpackRTPH264( void   *  bufIn,  int  len,   void **  pBufOut,   int   *  pOutLen)  {      * pOutLen     0 ;      if  (len    RTP_HEADLEN)      {          return   false ;     }        unsigned  char *  src    (unsigned  char * )bufIn    RTP_HEADLEN;     unsigned  char  head1     * src; // 获取第一个字节       unsigned  char  head2     * (src  1 ); // 获取第二个字节       unsigned  char  nal    head1     0x1f ; // 获取FU indicator的类型域       unsigned  char  flag    head2     0xe0 ; // 获取FU header的前三位判断当前是分包的开始、中间或结束       unsigned  char  nal_fua    (head1     0xe0 )  |  (head2     0x1f ); // FU_A nal        bool  bFinishFrame     false ;      if  (nal  0x1c ) // 判断NAL的类型为0x1c28说明是FU-A分片        { // fu-a            if  (flag  0x80 ) // 开始            {              * pBufOut    src - 3 ;              * (( int * )( * pBufOut))     0x01000000  ; // zyf:大模式会有问题                * (( char * )( * pBufOut)  4 )    nal_fua;              *  pOutLen    len  -  RTP_HEADLEN     3 ;         }           else   if (flag  0x40 ) // 结束            {              * pBufOut    src  2 ;              *  pOutLen    len  -  RTP_HEADLEN  -   2 ;         }           else // 中间            {              * pBufOut    src  2 ;              *  pOutLen    len  -  RTP_HEADLEN  -   2 ;         }      }       else // 单包数据        {          * pBufOut    src - 4 ;          * (( int * )( * pBufOut))     0x01000000 ; // zyf:大模式会有问题            *  pOutLen    len  -  RTP_HEADLEN     4 ;     }        unsigned  char *  bufTmp    (unsigned  char * )bufIn;      if  (bufTmp[ 1 ]     0x80 )      {         bFinishFrame     true ; // rtp mark       }       else        {         bFinishFrame     false ;     }       return  bFinishFrame; }    从RTP包里面得到AAC音频数据的方法//功能解RTP AAC音频包声道和采样频率必须知道。 //参数1.RTP包缓冲地址 2.RTP包数据大小 3.H264输出地址 4.输出数据大小 //返回true:表示一帧结束  false:帧未结束 一般AAC音频包比较小没有分片。 bool UnpackRTPAAC(void * bufIn, int recvLen, void** pBufOut,  int* pOutLen) {     unsigned char*  bufRecv  (unsigned char*)bufIn;     //char strFileName[20];          unsigned char ADTS[]  {0xFF, 0xF1, 0x00, 0x00, 0x00, 0x00, 0xFC};      int audioSamprate  32000;//音频采样率     int audioChannel  2;//音频声道 1或2     int audioBit  16;//16位 固定     switch(audioSamprate)     {     case  16000:         ADTS[2]  0x60;         break;     case  32000:         ADTS[2]  0x54;         break;     case  44100:         ADTS[2]  0x50;         break;     case  48000:         ADTS[2]  0x4C;         break;     case  96000:         ADTS[2]  0x40;         break;     default:         break;     }     ADTS[3]  (audioChannel2)?0x80:0x40;     int len  recvLen - 16  7;     len  5;//8bit * 2 - 11  5(headerSize 11bit)     len | 0x1F;//5 bit    1                 ADTS[4]  len8;     ADTS[5]  len  0xFF;     *pBufOut  (char*)bufIn16-7;     memcpy(*pBufOut, ADTS, sizeof(ADTS));     *pOutLen  recvLen - 16  7;     unsigned char* bufTmp  (unsigned char*)bufIn;     bool bFinishFrame  false;     if (bufTmp[1]  0x80)     {         //DebugTrace::D(Marker);         bFinishFrame  true;     }     else     {         bFinishFrame  false;     }     return true; }
http://www.yutouwan.com/news/471872/

相关文章:

  • 天津做网站哪个公司好代理公司收费标准
  • dw制造网站log怎么做网站建设和平面设计
  • 网站上的图片做多大微商城开发需要多少钱
  • 在线相册jsp网站开发与设计网页界面设计怎么做
  • 网站都有什么类型的线上营销课程哪里学
  • 建设地情网站的作用嵌入式开发工程师需要学什么
  • 什么编程语言做网站安全番禺人才网招聘网官网
  • 重庆网站建设公司 菠拿拿哪些网站可以做装修
  • 产品设计私单网站建立网站 优帮云
  • 网站域名密码忘了网站备案资料查询
  • 网站建设费属于哪个会计科目建设银行的网站是多少
  • 阿里巴巴自助建站的一般流程广东网站建设定制
  • 建设校园网站的意义phpwind 转wordpress
  • 没钱怎么做网站做网站合肥
  • 上海网站制作公司哪家百度竞价规则
  • 网站设计哪家强成都网站建设龙兵
  • 网站发布的方法有几种.net可以做网站做游戏 博客园
  • 用地方别名做网站名wordpress获取分类目录连接
  • ftp网站服务器梅州在建高铁最新消息
  • 直播类网站怎么做做电影网站用什么cms
  • 政务内网网站建设方案网站开发验收单
  • 广州建设银行投诉网站网页实时翻译软件
  • 怎么在网上做公司网站湖南网站设计方案
  • 化妆品网站建设的设计思路建筑工程类网站
  • 网站开发国内外研究背景注册网页版
  • asp.net 网站开发架构和县网站制作
  • 海口建站模板厂家crm系统解决方案
  • 合肥自助建站外贸人常去的网站
  • 北京酷站科技有限公司做购物网站小图标
  • 湖北营销网站建设设计网站主服务器地址