基础

假定是udp上接收包,端口 5060 ,如果是tcp是要加一些额外得代码,
可以使用jrtplib,或者自己写udpserver 放出udp socket 接收包,当然使用jrtplib等稍微简单一些。不过也一样失去了一些灵活性。

步骤

1 接收udp over rtp包
2 接收后分析ps包头,获取es流
3 如果不是ps则接收到包后根据rtp协议再解析rtp, 获取分片等信息组合成包
4 分析es流

code

#define FILE_STORAGE 0Service_RTP_Analyse::Service_RTP_Analyse()
{
}Service_RTP_Analyse::~Service_RTP_Analyse()
{
}
int Service_RTP_Analyse::analyse_rtp(uint8_t * rtp, size_t len)
{return 0;
}//注意这里只是适应h264
int Service_RTP_Analyse::analyse_h264es(uint8_t * pos, int len, uint8_t ** nalu, size_t &nalulen)
{uint8_t* p = pos + 4 + 2 + 2; //跳过4字节00 00 01 E0 和两个字节长度 以及两个字节的跳空int skip = *p;p = p + skip + 1; //p 指向 00 00 00 01 67 等字节上*nalu = p;while (!*(p++));uint8_t c1 = (uint8_t)(*p);unsigned char nal_type = c1 & 0x1f;nalulen = len - (int)(*nalu - pos); //因为 00 00 01 E0 以及两个代表长度的字节没有计算return nal_type;
}int Service_RTP_Analyse::analyseps0(uint8_t * ps, size_t len, int &type, int &length, uint8_t **next, size_t &nextlen)
{#define D(y,x) (*(y+x))if (D(ps, 0) == 0x00 && D(ps, 1) == 0x00 && D(ps, 2) == 0x01){uint8_t num = D(ps, 3);switch (num){case 0xBA:{int skip1 = D(ps, 13) & 0x07;uint8_t * nps = ps + 14 + skip1;length = 14;type = PS_PS;*next = nps;nextlen = len - (nps - ps);}return 0;case 0xBB://系统标题起始码字段case 0xBC://映射流标识字段 {char temp[2];temp[0] = D(ps, 5);temp[1] = D(ps, 4);length = *(unsigned short*)(&temp[0]) + 6; //00 00 01 xx 以及两个字节的长度type = PS_SYS;*next = ps + length;nextlen = len - (int)(*next - ps);}return 0;case 0xE0:{char temp[2];temp[0] = D(ps, 5);temp[1] = D(ps, 4);length = *(unsigned short*)(&temp[0]) + 6;//00 00 01 xx 以及两个字节的长度type = PS_VIDEO;*next = ps + length;nextlen = len -(int)(*next - ps);}return 0;case 0xBD:case 0xC0:{char temp[2];temp[0] = D(ps, 5);temp[1] = D(ps, 4);length = *(unsigned short*)(&temp[0]) + 6;//00 00 01 xx 以及两个字节的长度if (num == 0xBD)type = PS_PRIVATE;elsetype = PS_AUDIO;*next = ps + length;nextlen = len - (int)(*next - ps);}return 0;default:{length = 0;type = PS_UNKONWN;}return -1;}}else{length = 0;type = PS_UNKONWN;return -1;}
}/*
//该函数解一帧完整的ps,输入时一帧完整的ps帧
//rc 上下文环境
//pos ps流数据指针
//len 长度
*/
int Service_RTP_Analyse::analyseps(rtp_context *prc, uint8_t * pos, size_t len)
{int type = 0;int length = 0; //当前段长度uint8_t * ps = pos;size_t pslen = len;uint8_t * nextpos = NULL;size_t nextlen = 0;uint8_t * sps = NULL;int spslen = 0;uint8_t * pps = NULL;int ppslen = 0;uint8_t * se = NULL;int selen = 0;uint8_t *nalu = NULL;size_t nalulen = 0;while (1){int ret = analyseps0(ps, pslen, type, length, &nextpos, nextlen);if (ret == -1)return -1;switch (type) //处理当前段{case PS_PS:ps = nextpos;pslen = nextlen;break;case PS_SYS:ps = nextpos;pslen = nextlen;break;case PS_VIDEO:{int type = analyse_h264es(ps, length, &nalu, nalulen);switch (type){case 0x07:sps = nalu;spslen = (int)nalulen;break;case 0x08:pps = nalu;ppslen = (int)nalulen;break;case 0x06: //skipse = nalu;selen = (int)nalulen;break;case 0x05:case 0x01://skip,because except sps pps ,only one 0x05 key frame nalu break;default:break;}ps = nextpos;pslen = nextlen;}break;case PS_PRIVATE:ps = nextpos;pslen = nextlen;break;case PS_AUDIO:ps = nextpos;pslen = nextlen;break;}if (nextlen <= 0)break;}//顺序找到了流以后,开始移动//有关键帧,则移动sps和pps
#if FILE_STORAGEif (ar->fp == NULL)ar->fp = fopen("h264save.264", "wb");if (ar->fpps == NULL)ar->fpps = fopen("h264saveps.264", "wb");fwrite(pos, 1, len, ar->fpps);
#endifif (sps != NULL && pps != NULL){//获取完整的一帧//移动少量数据,达到意义上的零拷贝memmove(nalu - ppslen, pps, ppslen);memmove(nalu - ppslen - spslen, sps, spslen);sps = nalu - ppslen - spslen;pps = nalu - ppslen;if (prc->_callback != NULL){prc->_callback(prc->ip,prc->port,sps,ppslen + spslen + nalulen,KEY_FRAME,sps,spslen + ppslen,prc->pts++);}
#if FILE_STORAGEfwrite(sps, 1, spslen + ppslen + nalulen, ar->fp);
#endif}else //非关键帧{if (prc->_callback != NULL)prc->_callback(prc->ip, prc->port, nalu, nalulen, NOT_KEY_FRAME,NULL,0, prc->pts++);#if FILE_STORAGEfwrite(nalu, 1, nalulen, ar->fp);
#endif}return 0;
}
//ar 因为零拷贝的事情buffer可能没有值int Service_RTP_Analyse::insert(uint32_t ip, uint16_t port, void *pkt0)
{RTPPacket * pkt = (RTPPacket*)pkt0;//if (pkt->GetPayloadLength() > BUF_LENGTH) //这里还是要修改 钱波//	return -1;auto iter = _hash.find(ip);if (iter == _hash.end()) //没有找到该IP地址的存储{OutputDebugString(L"not found");uint8_t * ps = pkt->GetPayloadData();//分析ps流if (*ps == 0x00 && *(ps + 1) == 0x00 && *(ps + 2) == 0x01 && *(ps + 3) == 0xBA){analyse_struct as;as.in = pkt->GetPayloadData();as.inlen = pkt->GetPayloadLength();AnalyseH264Frame(&as);if (as.ret == 0) //非关键帧{OutputDebugString(L"第一RTP包非关键帧头部,丢弃\n");return -1;}rtp_context rc;rc.ip = ip;rc.port = port;rc._callback = _callback;if (pkt->HasMarker()){rc.blen = 0;analyseps(&rc, pkt->GetPayloadData(), pkt->GetPayloadLength());//send_func(&rc, ip, port, pkt->GetPayloadData(), pkt->GetPayloadLength(), 0);}else{ALLOC_MEM(rc);rc.blen= pkt->GetPayloadLength();memcpy(rc.buffer, pkt->GetPayloadData(), rc.blen);}//fixme:qianbo//_hash.emplace(pair<uint32_t, rtp_context>(ip, as0));_hash.insert(pair<uint32_t, rtp_context>(ip, rc));}else //分析普通rtp流{}}else //找到存储{//代码优化零拷贝rtp_context &rc = iter->second;size_t &len = rc.blen;if (pkt->HasMarker()) // 回调启用{if (len == 0) {//执行零拷贝操作analyseps(&rc, pkt->GetPayloadData(), pkt->GetPayloadLength());//send_func(&rc, ip, port, pkt->GetPayloadData(), pkt->GetPayloadLength(), 0);}else // len!=0{uint8_t * buf = iter->second.buffer;memcpy(buf + len, pkt->GetPayloadData(), pkt->GetPayloadLength());len += pkt->GetPayloadLength();analyseps(&rc, buf, len);//send_func(&rc, ip, port, buf, len, 0);}len = 0;}else{ALLOC_MEM(rc);uint8_t * buf = iter->second.buffer;memcpy(buf + len, pkt->GetPayloadData(), pkt->GetPayloadLength());len += pkt->GetPayloadLength();}}return 0;}// 功能:解码RTP H.264视频// 参数:1.RTP包缓冲地址 2.RTP包数据大小 3.H264输出地址 4.输出数据大小// 返回:true:表示一帧结束  false:FU-A分片未结束或帧未结束bool  Service_RTP_Analyse::decode_rtp_h264(void *bufIn, int len, void **pBufOut, int *pOutLen){*pOutLen = 0;if (len  <  RTP_HEADLEN){return   false;}uint8_t *src = (uint8_t*)bufIn + RTP_HEADLEN;//第1字节uint8_t  head_1 = *src;//第2字节uint8_t  head_2 = *(src + 1);//FU indicator的类型域,uint8_t  nal = head_1 & 0x1f;//FU header的前三位,当前是分包的1开始 2中间 3结束uint8_t  flag = head_2 & 0xe0;uint8_t  nal_fua = (head_1 & 0xe0) | (head_2 & 0x1f); // FU_A nalbool  bFinishFrame = false;if (nal == 0x1c) // 判断NAL的类型为0x1c=28,说明是FU-A分片{ // fu-aif (flag == 0x80) // 开始{*pBufOut = src - 3;*((int *)(*pBufOut)) = 0x01000000; // *((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; // 大模式会有问题*pOutLen = len - RTP_HEADLEN + 4;}uint8_t *  tmp = (unsigned  char*)bufIn;bFinishFrame = (tmp[1] & 0x80) ? true : false;return  bFinishFrame;}//功能:解RTP AAC音频包,声道和采样频率必须知道。//参数:1.RTP包缓冲地址 2.RTP包数据大小 3.H264输出地址 4.输出数据大小//返回:true:表示一帧结束  false:帧未结束 一般AAC音频包比较小,没有分片。bool Service_RTP_Analyse::decode_rtp_aac(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或2int 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] = (audioChannel == 2) ? 0x80 : 0x40;int len = recvLen - 16 + 7;len <<= 5;//8bit * 2 - 11 = 5(headerSize 11bit)len |= 0x1F;//5 bit    1            ADTS[4] = len >> 8;ADTS[5] = len & 0xFF;*pBufOut = (char*)bufIn + 16 - 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;}int Service_RTP_Analyse::insert_rtp(uint32_t ip, uint16_t port, void * pkt_)
{RTPPacket * pkt = (RTPPacket*)pkt_;uint8_t *buf = pkt->GetPayloadData();size_t len   = pkt->GetPayloadLength();uint8_t * out_head = NULL;int       out_len = 0;uint64_t key = ((uint64_t)ip << 32) | port;//std::string key = itoa()uint32_t rssrc  = pkt->GetSSRC();uint32_t rstamp = pkt->GetTimestamp();auto iter = _hash.find(key);if (iter == _hash.end()){rtp_context s;ALLOC_MEM(s);_hash.insert(pair<uint64_t, rtp_context>(key,s));s.start_timestamp = rstamp;decode_rtp_h264(buf, len,(void**)&out_head, &out_len);if (s.blen - s.pos > out_len){memcpy(s.buffer + s.pos, out_head, out_len);s.pos += out_len;}}else{decode_rtp_h264(buf, len, (void**)&out_head, &out_len);rtp_context &s = iter->second;if (s.blen - s.pos > out_len){memcpy(s.buffer + s.pos, out_head, out_len);s.pos += out_len;}}return 0;
}
查看全文
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

相关文章

  1. 寒假学习记录D27

    题目描述 给定一个 nn 个点的有向图&#xff0c;请求出图中是否存在从顶点 11 出发能到达的负环。 负环的定义是&#xff1a;一条边权之和为负数的回路。 输入格式 本题单测试点有多组测试数据。 输入的第一行是一个整数 TT&#xff0c;表示测试数据的组数。对于每组数据的…...

    2024/4/20 11:28:07
  2. 关于redis缓存总结

    1.什么是redis缓存? Redis是一个key-value存储系统,通过redis分布式缓存能把绝大多数请求在读写数据库前拦截掉&#xff0c;大大降低数据库压力。 在docker环境下启动 2.redis的常用数据类型 Reids中基础数据结构包含: 字符串String、 散列:Hash类型:相当于Java中的Hash…...

    2024/5/9 1:49:26
  3. Spring事务失效的12种场景

    前言 对于从事java开发工作的同学来说&#xff0c;spring的事务肯定再熟悉不过了。 在某些业务场景下&#xff0c;如果一个请求中&#xff0c;需要同时写入多张表的数据。为了保证操作的原子性&#xff08;要么同时成功&#xff0c;要么同时失败&#xff09;&#xff0c;避免…...

    2024/5/8 14:37:38
  4. 数据结构与算法系列之<5>----链表(双向)

    1、双向链表...

    2024/4/17 8:57:07
  5. 4.bio、request和request_queue

    通常一个bio对应上层传递给块层的I/O请求&#xff1b;每个bio结构体实例及其包含的bvec_iter、bio_vec结构体实例描述了该I/O请求的开始扇区、数据方向(读还是写)&#xff0c;数据放入的页&#xff0c; 其定义如代码清单13.3所示。 struct bvec_iter {sector_t bi_sector;unsi…...

    2024/5/8 15:50:09
  6. OpenCV小案例(2)——判断一张图片中多少种颜色

    其实这个函数超级简单&#xff1a; img Image.open(file_path) color img.getcolors() 返回值是整数类型的数字。 有人会想&#xff0c;这两句话&#xff0c;我们可以用来干嘛呢&#xff1f; 比如&#xff1a;在一批全黑的图片中找到阳性样本&#xff08;被标注过的mask图…...

    2024/4/18 11:33:12
  7. 6-8 简单阶乘计算 (10 分)

    本题要求实现一个计算非负整数阶乘的简单函数。 int Factorial( const int N ) {if ( N<0 ) return 0;if ( N0 ) return 1;return N * Factorial( N-1 ); }...

    2024/5/8 17:19:46
  8. Ping工具ICMP报文学习

    首先&#xff0c;这里有一个很好的博客&#xff1a; [入口](https://blog.csdn.net/Poisx/article/details/100149881?utm_mediumdistribute.pc_relevant.none-task-blog- 2defaultbaidujs_title~default-1.pc_relevant_default&spm1001.2101.3001.4242.2&utm_relevan…...

    2024/5/8 11:33:12
  9. c语言——杨辉三角(输出任意行数的杨辉三角)

    下面为大家介绍用二维数组来输出任意行的杨辉三角。有以下步骤&#xff1a; 1&#xff1a;利用一个全局变量来控制数组&#xff0c;从而控制杨辉三角大小。 2&#xff1a;分别用for循环进行对杨辉三角进行赋值。&#xff08;利用它每个数等于它上方两个数和的规律&#xff09; …...

    2024/4/19 10:49:05
  10. 操作系统——进程管理

    文章目录1. 进程2. 进程调度3. 进程的运行4. 进程的终止5. 进程间通信6. 线程7. 进程同步8. 死锁9. CPU调度1. 进程 进程的概念 进程是具有独立功能的程序关于某个数据集合上的一次运行活动&#xff0c;也是操作系统资源分配和调度的基本单位&#xff0c;又称为任务。 进程的分…...

    2024/5/8 14:24:43
  11. 1987 粉刷栅栏(差分)

    1. 问题描述&#xff1a; 农夫约翰发明了一种绝妙的方法来粉刷牛棚旁边的长栅栏&#xff08;把栅栏想象成一维的数轴&#xff09;。他只需要在他最喜欢的奶牛贝茜身上挂一个刷子&#xff0c;然后在一旁悠闲的喝凉水就行了。贝茜沿着栅栏来回走动时&#xff0c;会将她走过的栅栏…...

    2024/5/8 16:58:17
  12. python练习(一)

    一.温度转换 华氏温度和摄氏温度的转换 TempStr input("请输入带有符号的温度值&#xff1a;") if TempStr[-1] in [F, f]:C (eval(TempStr[0:-1]) - 32) / 1.8print("转换后的温度是{:.2f}C".format(C)) elif TempStr[-1] in [C, c]:F 1.8 * eval(Te…...

    2024/4/18 18:13:05
  13. shell脚本简介

    shell 脚本简介 摘要&#xff1a;简单介绍 shell 脚本相关的知识&#xff0c;包括变量、字符串、数组、运算、函数、脚本调试等。 目录shell 脚本简介一、shell 脚本二、shell 变量1. 变量类型2. 变量操作3. 字符串变量4. 数组5. 运算符三、脚本编写与执行1. 命令替换2. 运算和…...

    2024/5/8 14:56:01
  14. Windows10 设置鼠标右键在此处打开cmd和Powershell窗口

    文章目录设置原因设置前的效果设置右键在此处打开cmd的步骤1. 打开注册表编辑器2. 跳转到指定文件夹下3. 新建OpenCmdHere4. 在OpenCmdHere文件夹下新建command文件夹5. 设置后的效果设置右键在此处打开Powershell的步骤1. 说明2. 新建OpenPowerShellHere文件夹3. 在OpenPowerS…...

    2024/4/23 12:46:23
  15. 【配置】Linux的安装及配置

    如果你想自己练练Linux命令&#xff0c;我建议你安个虚拟机。远程连接虚拟机&#xff0c;自己的服务器随便玩。不过在安装虚拟机过程中会遇到一些问题&#xff0c;只要静下心来好好思考并搜索答案&#xff0c;这些问题都会迎刃而解。 总有同学不清楚VMware、CentOS、Linux之间的…...

    2024/4/13 6:45:16
  16. 每日一题-1984. 学生分数的最小差值_Python

    给你一个 下标从 0 开始 的整数数组 nums &#xff0c;其中 nums[i] 表示第 i 名学生的分数。另给你一个整数 k 。 从数组中选出任意 k 名学生的分数&#xff0c;使这 k 个分数间 最高分 和 最低分 的 差值 达到 最小化 。 返回可能的 最小差值 。 示例 1&#xff1a; 输入…...

    2024/5/9 3:37:52
  17. hive增加表头、数据库名显示配置

    修改 hive-site.xml 配置 <property><name>hive.cli.print.header</name><value>true</value><description>是否打印表头&#xff0c;默认值为false&#xff0c;即不打印</description></property><property><name&…...

    2024/4/15 13:36:19
  18. 2021李宏毅机器学习(1):基本概念

    2021李宏毅机器学习&#xff08;1&#xff09;&#xff1a;基本概念1 基本概念1.1 不同的函数类别1.2 如何寻找函数&#xff08;Training&#xff09;&#xff1a;1.3 模型1.3.1 sigmoid1.3.2 ReLU1.3.3 对sigmoid的计算可以多做几次B站上2021李宏毅机器学习课程的学习笔记&…...

    2024/4/13 6:46:16
  19. 树与图的深度、广度优先遍历

    二十二.树与图的深度遍历 从一个起点出发一条路遍历到黑&#xff0c;如果到头了就回溯检查是否找过了所有的路&#xff0c;没有就从分叉口继续走。 //基本框架 int h[N],e[M],ne[M],idx; bool st[N]; ​ void dfs(int u){st[u]true;//标记一下已经被搜索过了for(int ih[u];i!…...

    2024/4/13 6:46:26
  20. 左旋转字符串(简单)

    题目描述 字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。请定义一个函数实现字符串左旋转操作的功能。比如&#xff0c;输入字符串"abcdefg"和数字2&#xff0c;该函数将返回左旋转两位得到的结果"cdefgab"。 示例1 输入: s "ab…...

    2024/4/13 6:46:01

最新文章

  1. 【vue+vue-treeselect】根据指定字段,如isLeaf(是否末级节点),设置只允许末级节点可以选

    1、当项目有特殊要求&#xff0c;必须根据某个字段的值去判断&#xff0c;是否节点可以选&#xff0c;即使已经是末级节点了&#xff0c;还是需要根据字段判断是否禁用 &#xff08;1&#xff09; :flat"true"一定要设置 (2)获取数据源的时候&#xff0c;设置下禁用…...

    2024/5/9 4:07:39
  2. 梯度消失和梯度爆炸的一些处理方法

    在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言&#xff0c;在此感激不尽。 权重和梯度的更新公式如下&#xff1a; w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...

    2024/5/7 10:36:02
  3. 逆向案例十二——看准网企业信息json格式的信息

    网址&#xff1a;【全国公司排行|排名榜单|哪家好】-看准网 打开开发者工具——刷新——网络——XHR——下滑页面加载新的页面——找到数据包 发现参数加密&#xff0c;返回的数据也进行了加密 按关键字在下方搜索 kiv进入第一个js文件 ctrlf打开文件里面的搜索框继续搜kiv找到…...

    2024/5/7 18:56:56
  4. 动态规划刷题(算法竞赛、蓝桥杯)--饥饿的奶牛(线性DP)

    1、题目链接&#xff1a;饥饿的奶牛 - 洛谷 #include <bits/stdc.h> using namespace std; const int N3000010; vector<int> a[N];//可变数组vector存区间 int n,mx,f[N]; int main(){scanf("%d",&n);for(int i1;i<n;i){int x,y;scanf("%…...

    2024/5/7 17:16:20
  5. 【外汇早评】美通胀数据走低,美元调整

    原标题:【外汇早评】美通胀数据走低,美元调整昨日美国方面公布了新一期的核心PCE物价指数数据,同比增长1.6%,低于前值和预期值的1.7%,距离美联储的通胀目标2%继续走低,通胀压力较低,且此前美国一季度GDP初值中的消费部分下滑明显,因此市场对美联储后续更可能降息的政策…...

    2024/5/8 6:01:22
  6. 【原油贵金属周评】原油多头拥挤,价格调整

    原标题:【原油贵金属周评】原油多头拥挤,价格调整本周国际劳动节,我们喜迎四天假期,但是整个金融市场确实流动性充沛,大事频发,各个商品波动剧烈。美国方面,在本周四凌晨公布5月份的利率决议和新闻发布会,维持联邦基金利率在2.25%-2.50%不变,符合市场预期。同时美联储…...

    2024/5/7 9:45:25
  7. 【外汇周评】靓丽非农不及疲软通胀影响

    原标题:【外汇周评】靓丽非农不及疲软通胀影响在刚结束的周五,美国方面公布了新一期的非农就业数据,大幅好于前值和预期,新增就业重新回到20万以上。具体数据: 美国4月非农就业人口变动 26.3万人,预期 19万人,前值 19.6万人。 美国4月失业率 3.6%,预期 3.8%,前值 3…...

    2024/5/4 23:54:56
  8. 【原油贵金属早评】库存继续增加,油价收跌

    原标题:【原油贵金属早评】库存继续增加,油价收跌周三清晨公布美国当周API原油库存数据,上周原油库存增加281万桶至4.692亿桶,增幅超过预期的74.4万桶。且有消息人士称,沙特阿美据悉将于6月向亚洲炼油厂额外出售更多原油,印度炼油商预计将每日获得至多20万桶的额外原油供…...

    2024/5/7 14:25:14
  9. 【外汇早评】日本央行会议纪要不改日元强势

    原标题:【外汇早评】日本央行会议纪要不改日元强势近两日日元大幅走强与近期市场风险情绪上升,避险资金回流日元有关,也与前一段时间的美日贸易谈判给日本缓冲期,日本方面对汇率问题也避免继续贬值有关。虽然今日早间日本央行公布的利率会议纪要仍然是支持宽松政策,但这符…...

    2024/5/4 23:54:56
  10. 【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响

    原标题:【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响近日伊朗局势升温,导致市场担忧影响原油供给,油价试图反弹。此时OPEC表态稳定市场。据消息人士透露,沙特6月石油出口料将低于700万桶/日,沙特已经收到石油消费国提出的6月份扩大出口的“适度要求”,沙特将满…...

    2024/5/4 23:55:05
  11. 【外汇早评】美欲与伊朗重谈协议

    原标题:【外汇早评】美欲与伊朗重谈协议美国对伊朗的制裁遭到伊朗的抗议,昨日伊朗方面提出将部分退出伊核协议。而此行为又遭到欧洲方面对伊朗的谴责和警告,伊朗外长昨日回应称,欧洲国家履行它们的义务,伊核协议就能保证存续。据传闻伊朗的导弹已经对准了以色列和美国的航…...

    2024/5/4 23:54:56
  12. 【原油贵金属早评】波动率飙升,市场情绪动荡

    原标题:【原油贵金属早评】波动率飙升,市场情绪动荡因中美贸易谈判不安情绪影响,金融市场各资产品种出现明显的波动。随着美国与中方开启第十一轮谈判之际,美国按照既定计划向中国2000亿商品征收25%的关税,市场情绪有所平复,已经开始接受这一事实。虽然波动率-恐慌指数VI…...

    2024/5/7 11:36:39
  13. 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试

    原标题:【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试美国和伊朗的局势继续升温,市场风险情绪上升,避险黄金有向上突破阻力的迹象。原油方面稍显平稳,近期美国和OPEC加大供给及市场需求回落的影响,伊朗局势并未推升油价走强。近期中美贸易谈判摩擦再度升级,美国对中…...

    2024/5/4 23:54:56
  14. 【原油贵金属早评】市场情绪继续恶化,黄金上破

    原标题:【原油贵金属早评】市场情绪继续恶化,黄金上破周初中国针对于美国加征关税的进行的反制措施引发市场情绪的大幅波动,人民币汇率出现大幅的贬值动能,金融市场受到非常明显的冲击。尤其是波动率起来之后,对于股市的表现尤其不安。隔夜美国股市出现明显的下行走势,这…...

    2024/5/6 1:40:42
  15. 【外汇早评】美伊僵持,风险情绪继续升温

    原标题:【外汇早评】美伊僵持,风险情绪继续升温昨日沙特两艘油轮再次发生爆炸事件,导致波斯湾局势进一步恶化,市场担忧美伊可能会出现摩擦生火,避险品种获得支撑,黄金和日元大幅走强。美指受中美贸易问题影响而在低位震荡。继5月12日,四艘商船在阿联酋领海附近的阿曼湾、…...

    2024/5/4 23:54:56
  16. 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势

    原标题:【原油贵金属早评】贸易冲突导致需求低迷,油价弱势近日虽然伊朗局势升温,中东地区几起油船被袭击事件影响,但油价并未走高,而是出于调整结构中。由于市场预期局势失控的可能性较低,而中美贸易问题导致的全球经济衰退风险更大,需求会持续低迷,因此油价调整压力较…...

    2024/5/8 20:48:49
  17. 氧生福地 玩美北湖(上)——为时光守候两千年

    原标题:氧生福地 玩美北湖(上)——为时光守候两千年一次说走就走的旅行,只有一张高铁票的距离~ 所以,湖南郴州,我来了~ 从广州南站出发,一个半小时就到达郴州西站了。在动车上,同时改票的南风兄和我居然被分到了一个车厢,所以一路非常愉快地聊了过来。 挺好,最起…...

    2024/5/7 9:26:26
  18. 氧生福地 玩美北湖(中)——永春梯田里的美与鲜

    原标题:氧生福地 玩美北湖(中)——永春梯田里的美与鲜一觉醒来,因为大家太爱“美”照,在柳毅山庄去寻找龙女而错过了早餐时间。近十点,向导坏坏还是带着饥肠辘辘的我们去吃郴州最富有盛名的“鱼头粉”。说这是“十二分推荐”,到郴州必吃的美食之一。 哇塞!那个味美香甜…...

    2024/5/4 23:54:56
  19. 氧生福地 玩美北湖(下)——奔跑吧骚年!

    原标题:氧生福地 玩美北湖(下)——奔跑吧骚年!让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 啊……啊……啊 两…...

    2024/5/8 19:33:07
  20. 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!

    原标题:扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!扒开伪装医用面膜,翻六倍价格宰客!当行业里的某一品项火爆了,就会有很多商家蹭热度,装逼忽悠,最近火爆朋友圈的医用面膜,被沾上了污点,到底怎么回事呢? “比普通面膜安全、效果好!痘痘、痘印、敏感肌都能用…...

    2024/5/5 8:13:33
  21. 「发现」铁皮石斛仙草之神奇功效用于医用面膜

    原标题:「发现」铁皮石斛仙草之神奇功效用于医用面膜丽彦妆铁皮石斛医用面膜|石斛多糖无菌修护补水贴19大优势: 1、铁皮石斛:自唐宋以来,一直被列为皇室贡品,铁皮石斛生于海拔1600米的悬崖峭壁之上,繁殖力差,产量极低,所以古代仅供皇室、贵族享用 2、铁皮石斛自古民间…...

    2024/5/8 20:38:49
  22. 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者

    原标题:丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者【公司简介】 广州华彬企业隶属香港华彬集团有限公司,专注美业21年,其旗下品牌: 「圣茵美」私密荷尔蒙抗衰,产后修复 「圣仪轩」私密荷尔蒙抗衰,产后修复 「花茵莳」私密荷尔蒙抗衰,产后修复 「丽彦妆」专注医学护…...

    2024/5/4 23:54:58
  23. 广州械字号面膜生产厂家OEM/ODM4项须知!

    原标题:广州械字号面膜生产厂家OEM/ODM4项须知!广州械字号面膜生产厂家OEM/ODM流程及注意事项解读: 械字号医用面膜,其实在我国并没有严格的定义,通常我们说的医美面膜指的应该是一种「医用敷料」,也就是说,医用面膜其实算作「医疗器械」的一种,又称「医用冷敷贴」。 …...

    2024/5/6 21:42:42
  24. 械字号医用眼膜缓解用眼过度到底有无作用?

    原标题:械字号医用眼膜缓解用眼过度到底有无作用?医用眼膜/械字号眼膜/医用冷敷眼贴 凝胶层为亲水高分子材料,含70%以上的水分。体表皮肤温度传导到本产品的凝胶层,热量被凝胶内水分子吸收,通过水分的蒸发带走大量的热量,可迅速地降低体表皮肤局部温度,减轻局部皮肤的灼…...

    2024/5/4 23:54:56
  25. 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...

    解析如下&#xff1a;1、长按电脑电源键直至关机&#xff0c;然后再按一次电源健重启电脑&#xff0c;按F8健进入安全模式2、安全模式下进入Windows系统桌面后&#xff0c;按住“winR”打开运行窗口&#xff0c;输入“services.msc”打开服务设置3、在服务界面&#xff0c;选中…...

    2022/11/19 21:17:18
  26. 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。

    %读入6幅图像&#xff08;每一幅图像的大小是564*564&#xff09; f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...

    2022/11/19 21:17:16
  27. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...

    win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面&#xff0c;在等待界面中我们需要等待操作结束才能关机&#xff0c;虽然这比较麻烦&#xff0c;但是对系统进行配置和升级…...

    2022/11/19 21:17:15
  28. 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...

    有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows&#xff0c;请勿关闭计算机”的提示&#xff0c;要过很久才能进入系统&#xff0c;有的用户甚至几个小时也无法进入&#xff0c;下面就教大家这个问题的解决方法。第一种方法&#xff1a;我们首先在左下角的“开始…...

    2022/11/19 21:17:14
  29. win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...

    置信有很多用户都跟小编一样遇到过这样的问题&#xff0c;电脑时发现开机屏幕显现“正在配置Windows Update&#xff0c;请勿关机”(如下图所示)&#xff0c;而且还需求等大约5分钟才干进入系统。这是怎样回事呢&#xff1f;一切都是正常操作的&#xff0c;为什么开时机呈现“正…...

    2022/11/19 21:17:13
  30. 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...

    Win7系统开机启动时总是出现“配置Windows请勿关机”的提示&#xff0c;没过几秒后电脑自动重启&#xff0c;每次开机都这样无法进入系统&#xff0c;此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一&#xff1a;开机按下F8&#xff0c;在出现的Windows高级启动选…...

    2022/11/19 21:17:12
  31. 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...

    有不少windows10系统用户反映说碰到这样一个情况&#xff0c;就是电脑提示正在准备windows请勿关闭计算机&#xff0c;碰到这样的问题该怎么解决呢&#xff0c;现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法&#xff1a;1、2、依次…...

    2022/11/19 21:17:11
  32. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...

    今天和大家分享一下win7系统重装了Win7旗舰版系统后&#xff0c;每次关机的时候桌面上都会显示一个“配置Windows Update的界面&#xff0c;提示请勿关闭计算机”&#xff0c;每次停留好几分钟才能正常关机&#xff0c;导致什么情况引起的呢&#xff1f;出现配置Windows Update…...

    2022/11/19 21:17:10
  33. 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...

    只能是等着&#xff0c;别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚&#xff0c;只能是考虑备份数据后重装系统了。解决来方案一&#xff1a;管理员运行cmd&#xff1a;net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...

    2022/11/19 21:17:09
  34. 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?

    原标题&#xff1a;电脑提示“配置Windows Update请勿关闭计算机”怎么办&#xff1f;win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢&#xff1f;一般的方…...

    2022/11/19 21:17:08
  35. 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...

    关机提示 windows7 正在配置windows 请勿关闭计算机 &#xff0c;然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;关机提示 windows7 正在配…...

    2022/11/19 21:17:05
  36. 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...

    钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...

    2022/11/19 21:17:05
  37. 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...

    前几天班里有位学生电脑(windows 7系统)出问题了&#xff0c;具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面&#xff0c;长时间没反应&#xff0c;无法进入系统。这个问题原来帮其他同学也解决过&#xff0c;网上搜了不少资料&#x…...

    2022/11/19 21:17:04
  38. 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...

    本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法&#xff0c;并在最后教给你1种保护系统安全的好方法&#xff0c;一起来看看&#xff01;电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中&#xff0c;添加了1个新功能在“磁…...

    2022/11/19 21:17:03
  39. 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...

    许多用户在长期不使用电脑的时候&#xff0c;开启电脑发现电脑显示&#xff1a;配置windows更新失败&#xff0c;正在还原更改&#xff0c;请勿关闭计算机。。.这要怎么办呢&#xff1f;下面小编就带着大家一起看看吧&#xff01;如果能够正常进入系统&#xff0c;建议您暂时移…...

    2022/11/19 21:17:02
  40. 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...

    配置windows update失败 还原更改 请勿关闭计算机&#xff0c;电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;配置windows update失败 还原更改 请勿关闭计算机&#x…...

    2022/11/19 21:17:01
  41. 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...

    不知道大家有没有遇到过这样的一个问题&#xff0c;就是我们的win7系统在关机的时候&#xff0c;总是喜欢显示“准备配置windows&#xff0c;请勿关机”这样的一个页面&#xff0c;没有什么大碍&#xff0c;但是如果一直等着的话就要两个小时甚至更久都关不了机&#xff0c;非常…...

    2022/11/19 21:17:00
  42. 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...

    当电脑出现正在准备配置windows请勿关闭计算机时&#xff0c;一般是您正对windows进行升级&#xff0c;但是这个要是长时间没有反应&#xff0c;我们不能再傻等下去了。可能是电脑出了别的问题了&#xff0c;来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...

    2022/11/19 21:16:59
  43. 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...

    我们使用电脑的过程中有时会遇到这种情况&#xff0c;当我们打开电脑之后&#xff0c;发现一直停留在一个界面&#xff1a;“配置Windows Update失败&#xff0c;还原更改请勿关闭计算机”&#xff0c;等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢&#xff0…...

    2022/11/19 21:16:58
  44. 如何在iPhone上关闭“请勿打扰”

    Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...

    2022/11/19 21:16:57