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

快站公众号工具免费安装app

快站公众号工具,免费安装app,王串场街网站建设公司,做网站推广有效果吗ffmpeg播放rtp流#xff0c;为了降低首开延迟#xff0c;需要在SDP文件中指定PPS、SPS、VPS信息。抓包后发现wireshark无法解析AP包。需要自己进行AP包解析。RTP协议AP包格式如下#xff1a; 根据如上信息#xff0c;我们可以解析AP包#xff0c;效果如下 40 01#xff…ffmpeg播放rtp流为了降低首开延迟需要在SDP文件中指定PPS、SPS、VPS信息。抓包后发现wireshark无法解析AP包。需要自己进行AP包解析。RTP协议AP包格式如下 根据如上信息我们可以解析AP包效果如下 40 01type32,VPS(视频参数集)42 01type33,SPS(序列参数集)44 01type34,PPS(图像参数集)4E 01, type39,SEI(补充增强信息)26 01type19,可能有RADL图像的IDR图像的SS编码数据 IDR02 01, type01,被参考的后置图像且非TSA、非STSA的SS编码数据46 01type35,分隔符没用。 下图中红色部分是分隔符橙色是VPS黑色是SPS黄色为PPS SDP中的VPS等信息需要转换成base64。使用下面的函数可转换 #include stdio.h #include inttypes.h #include math.h #include limits.h #include signal.h #include stdint.h #include string #include string.h #include iostream   #define AV_BASE64_SIZE(x)  (((x)2) / 3 * 4 1) #   define AV_RB32(x)                                \     (((uint32_t)((const uint8_t*)(x))[0] 24) |    \                (((const uint8_t*)(x))[1] 16) |    \                (((const uint8_t*)(x))[2]  8) |    \                 ((const uint8_t*)(x))[3]) using namespace std; char *av_base64_encode(char *out, int out_size, const uint8_t *in, int in_size) {     static const char b64[]         ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789/;     char *ret, *dst;     unsigned i_bits 0;     int i_shift 0;     int bytes_remaining in_size; if (in_size UINT_MAX / 4 ||         out_size AV_BASE64_SIZE(in_size))         return NULL;     ret dst out;     while (bytes_remaining 3) {         i_bits AV_RB32(in);         in 3; bytes_remaining - 3;         *dst b64[ i_bits26        ];         *dst b64[(i_bits20) 0x3F];         *dst b64[(i_bits14) 0x3F];         *dst b64[(i_bits8 ) 0x3F];     }     i_bits 0;     while (bytes_remaining) {         i_bits (i_bits 8) *in;         bytes_remaining--;         i_shift 8;     }     while (i_shift 0) {         *dst b64[(i_bits 6 i_shift) 0x3f];         i_shift - 6;     }     while ((dst - ret) 3)         *dst ;     *dst \0; return ret; } //sprop-vpsQAEMAf//AWAAAAMAkAAAAwAAAwBalZgJ; sprop-spsQgEBAWAAAAMAkAAAAwAAAwBaoAeCAIh95ZWaSTK8BacIAAADAAgAAAMA8EA; sprop-ppsRAHBcrRiQA void getXPSfromAP(uint8_t* ap){   int pos 0;   while(true){     uint16_t hdr (ap[pos2]8)|(ap[pos3]);     int typ (hdr9)0x3f;     int siz (ap[pos0]8)|(ap[pos1])-2;     switch(typ){       case 32:       {          char str_vps[100]{0};         uint8_t* vps (uint8_t*)malloc(siz);         memcpy(vps,appos4,siz);         av_base64_encode(str_vps,100,vps,siz);         coutsprop-vpsstr_vps;         free(vps);         break;       }       case 33:       {          char str_sps[100]{0};         uint8_t* sps (uint8_t*)malloc(siz);         memcpy(sps,appos4,siz);         av_base64_encode(str_sps,100,sps,siz);         cout; sprop-spsstr_sps;         free(sps);         break;       }       case 34:       {          char str_pps[100]{0};         uint8_t* pps (uint8_t*)malloc(siz);         memcpy(pps,appos4,siz);         av_base64_encode(str_pps,100,pps,siz);         cout; sprop-ppsstr_ppsendl;         free(pps);         return;         break;       }       default:         break;     }     pos 4;     pos siz;   } } int main() {     uint8_t in[]{0x67, 0x42,0xc0,0x14,0xf4,0x0b,0x04,0xb4,0x20,0x00,0x00,0x03,0x00,0x20,0x00,0x00,0x03,0x03,0xd1,0xe2,0x85,0x54};     char str_sps[100]{0};     av_base64_encode(str_sps,100,in,22);     coutspssbasecode:str_spsendl; uint8_t pps[]{0x68 ,0xce ,0x04 ,0xf2}; char str_sps2[100]{0};     av_base64_encode(str_sps2,100,pps,4);     coutppssbasecode:str_sps2endl;   uint8_t ap[] {0x00,0x17,0x40,0x01,0x0c,0x01,0xff,0xff,0x01,0x60,0x00,0x00,0x03,0x00,0xb0,0x00,0x00,0x03,0x00,0x00,0x03,0x00,0x5a,0xac,0x09,0x00,0x22,0x42,     0x01,0x01,0x01,0x60,0x00,0x00,0x03,0x00,0xb0,0x00,0x00,0x03,0x00,0x00,0x03,0x00,0x5a,0xa0,0x0f,0x08,0x03,0xc1,0x63,0x6b,0x92,0x45,0x2f,     0x4d,0x40,0x40,0x40,0x40,0x20,0x00,0x08,0x44,0x01,0xc0,0xf2,0xce,0x70,0x3b,0x34,0x00,0x09,0x4e,0x01,0xe5,0x04,0x00,0x00,0x70,0x00,0x80,0x00,     0x1e,0x4e,0x01,0x89,0x18,0x3a,0x98,0x75,0x30,0x1d,0x4c,0x0b,0xb8,0x7d,0x00,0x40,0x74,0x3d,0x13,0x40,0x42,0x00,0x00,0x04,0xb0,0x00,0x00,0x03,0x00,0xc8,0x80};   getXPSfromAP(ap);   return 0; }
http://www.pierceye.com/news/405887/

相关文章:

  • 珠海模板网站建设wordpress 底部工具栏
  • 网站建设的业务流程图招聘网站上找在家做
  • 网站设计的工具盱眙在仕德伟做网站的有几家
  • 建设一个网站要花多少时间临沂网站网站建设
  • 南宁网站推广经理做动漫网站如何应用数据绑定
  • 眼镜东莞网站建设兰州公司做网站
  • 改成 响应式 网站重庆微信企业网站
  • 用微信怎么做商城网站微信官网下载安装
  • 汽车网站建设方案预算md风格的wordpress主题
  • 免费外贸网站模板dede 网站栏目管理
  • 做网站有包括哪些东西站长素材网
  • 淘宝做促销的网站网站开发报价清单
  • 备案查询网站网站建设中可能遇到的问题
  • 怎么注册网站的步骤快速建站官网
  • 网站怎么做口碑wordpress淘宝客知乎
  • 响应式网站建设信息网站建设宽带
  • ps如何做网站超级链接微信公众平台运营中心电话
  • 网站建设怎么估算费用和报价h5特效网站欣赏
  • 东软集团建设网站娱乐网站排行榜
  • 石家庄网站建站米拓建站官网怎么用不了
  • 推广seo网站的公司金华网站建设公司排名
  • 阿里巴巴网站工作流程网站建设 教学设计
  • 电子商务网站建设的方法怎样用织梦做音乐网站
  • 临夏州住房和城乡建设局网站出词
  • 企业网站的综合要求最新领导班子7人名单
  • 通过阿里云建设企业网站联想企业网站建设的思路
  • 网站建设服务器的选择方案建设报名系统是正规网站吗
  • 揭阳高端模板建站WordPress背景音乐6
  • 如何使用云服务建设网站cpa之家 app推广平台
  • 网站设计策划书案例漳浦建设局网站