最新要闻
- 【聚看点】澳弘电子(605058.SH):年产高精密度多层板、高密度互连积层板120万平方米建设项目及研发中心升级改造项目结项
- 真我GT Neo5 SE“最终幻想”配色回归:赛博朋克风满满
- 当前消息!《黑暗荣耀2》蝉联网飞电视剧全球榜第一:观看时间过亿
- 当前热门:又一日系即将退出中国?广汽三菱否认传闻:正常运转
- 世界看点:被谷歌商店下架 拼多多驳斥恶意软件指控!
- 世界聚焦:上市五年市值缩水99.6%!昔日“明星”趣头条宣布退市
- 今头条!北方多地迎沙尘!长春直接下“泥雨”:汽车变泥车
- 环球速讯:OPPO、小米、vivo联盟:跨品牌一键换机新增第三方应用迁移
- 最新消息:史上最强骁龙7系 真我GT Neo5 SE跑分过百万:16+1TB存储确认
- 今日关注:Alphaliner:2月底港口停运船比率达6.4% 增至去年同期3倍
- 4月上映!《长空之王》新预告出炉:王一博驾驶歼20一飞冲天
- 世界今头条!自嗨锅自热煲仔饭4桶到手价32.8元:15分钟速烹美食
- 今年以来最强沙尘来袭!你的城市在下雨 他的城市在下泥
- 邓紫棋你把我灌醉高音最高是多少?邓紫棋你把我灌醉歌词
- 苏菲日记是什么?苏菲日记的读后感怎么写?
- strict怎么读?strict的反义词是什么?
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
环球今日讯!webrtc QOS笔记三 RTT计算,SRS增加XR
webrtc QOS笔记三 RTT计算,SRS增加XR
RTT计算方式
WebRTC中目前有两种方式计算RTT:
- 基于媒体流发送端的计算(默认开启)。通过Sender Report(SR)与Receiver Report(RR)携带的信息。
- 基于媒体流接收端的计算。通过RTCP Extended ReportsRTCP(XR)携带的信息。
这两种方式计算RTT的原理大同小异。至于为什么需要接收端计算方式,这是因为在一些场景,两个端点间一个只发媒体数据,一个只接收。假设客户端与SRS服务器下行拉流场景,客户端仅拉流,这种场景下作为接收端并不会发送SR,导致无法计算RTT。于是就可以通过RTCP XR在接收端计算这种方式,SDK里面需要手动配置打开
调用栈
webrtc [M88]
(相关资料图)
发送端RTT计算
WebRTC中媒体流发送端RTT的计算是根据SR以及RR中携带的时间信息。
RTT=T1−T0−(t1−t0)
RR 并不是SR的应答packet 分别独立发送, 只需要记录好上一个SR的到达时间t0 和 RR发送时间t1, 得到dslsr 接收到端就总能算出正确RTT.
- Send Report
0 1 2 30 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+|V=2|P| RC | PT=SR=200 | length |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+| SSRC of sender |+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+| NTP timestamp, most significant word |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+| NTP timestamp, least significant word |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+| RTP timestamp |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+| sender"s packet count |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+| sender"s octet count |+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
NTP timestamp:64bits。记录着发送该SR的NTP时间戳。
Receiver Report
0 1 2 30 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+|V=2|P| RC | PT=RR=201 | length |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+| SSRC of packet sender |+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+| SSRC_1 (SSRC of first source) |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+| fraction lost | cumulative number of packets lost |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+| extended highest sequence number received |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+| interarrival jitter |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+| last SR (LSR) |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+| delay since last SR (DLSR) |+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+| SSRC_2 (SSRC of second source) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+: ... :+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+| profile-specific extensions |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
last SR timestamp (LSR): 32 bits。64位NTP时间戳中间的32bit(NTP时间戳指绝对时间,相对1900年1月1日00:00:00经历的时间,单位为秒。完整NTP时间戳用64bits表示,左半32bits表示整数,右半32bits表示小数,一般为了紧凑,取中间32bits表示即可,这时整数与小数分别16bits表示)。记录着上次源SSRC_n发送SR的NTP时间,从收到的SR记录的NTP时间戳获取。如果没有收到SR,值为0。
delay since last SR (DLSR): 32 bits。以1/65536(2^16)秒为单位。记录着上次接收到源SSRC_n发送的SR到当前发送RR的间隔时间。如果没有收到SR,值为0。
接收端RTT计算
接收端RTT根基XR报文计算主要用到了Receiver Reference Time Report Block与DLRR Report Block这两种report blocks。
- Receiver Reference Time Report Block由媒体流接收端发送。报文格式如下:
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |V=2|P|reserved | PT=XR=207 | length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | SSRC | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ : report blocks : +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ @see: http://www.rfc-editor.org/rfc/rfc3611.html#section-4.4 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | BT=4 | reserved | block length = 2 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | NTP timestamp, most significant word | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | NTP timestamp, least significant word | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
NTP timestamp:64bits。记录着发送该Receiver Reference Time Report Block的NTP时间戳。
DLRR Report Block由媒体流发送端发送。报文格式如下:
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |V=2|P|reserved | PT=XR=207 | length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | SSRC | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ : report blocks : +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ @see: http://www.rfc-editor.org/rfc/rfc3611.html#section-4.4 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | BT=5 | reserved | block length | +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ | SSRC_1 (SSRC of first receiver) | sub- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ block | last RR (LRR) | 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | delay since last RR (DLRR) | +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ | SSRC_2 (SSRC of second receiver) | sub- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ block : ... : 2 +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
last RR timestamp (LRR): 32 bits。记录着上次源SSRC_n发送Receiver Reference Time Report Block的NTP时间,从收到的Receiver Reference Time Report Block记录的NTP时间戳获取。如果没有收到,值为0。
delay since last RR (DLRR): 32 bits。以1/65536(2^16)秒为单位。记录着上次接收到源SSRC_n发送的Receiver Reference Time Report Block到当前发送DLRR Report Block的间隔时间。如果没有收到Receiver Reference Time Report Block,值为0。
SRS play端增加xr实现
解析客户端发送过来的xr rrtr 报文,记录lsr(last_sender_report_ntp_).
srs_error_t SrsRtcPlayStream::on_rtcp_xr(SrsRtcpXr* rtcp){ srs_error_t err = srs_success; // TODO: FIXME: Implements it. /* @see: http://www.rfc-editor.org/rfc/rfc3611.html#section-2 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |V=2|P|reserved | PT=XR=207 | length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | SSRC | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ : report blocks : +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ @see: http://www.rfc-editor.org/rfc/rfc3611.html#section-4.4 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | BT=4 | reserved | block length = 2 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | NTP timestamp, most significant word | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | NTP timestamp, least significant word | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ */ SrsBuffer stream(rtcp->data(), rtcp->size()); stream.read_1bytes(); uint8_t pt = stream.read_1bytes(); srs_assert(pt == kXR); uint16_t length = (stream.read_2bytes() + 1) * 4; uint32_t ssrc = stream.read_4bytes(); if (length > rtcp->size()) { return srs_error_new(ERROR_RTC_RTCP_CHECK, "invalid XR packet, length=%u, nb_buf=%d", length, rtcp->size()); } uint8_t bt = stream.read_1bytes(); uint8_t reserved = stream.read_1bytes(); uint16_t block_length = stream.read_2bytes(); SrsNtp lsr_ntp; lsr_ntp.ntp_second_ = stream.read_4bytes(); lsr_ntp.ntp_fractions_ = stream.read_4bytes(); for (map::iterator it = video_tracks_.begin(); it != video_tracks_.end(); ++it) { SrsRtcVideoSendTrack* track = it->second; if (!track->get_track_status() || !track->has_ssrc(ssrc)) { continue; } track->last_sender_report_ntp_ = lsr_ntp; track->last_sender_report_sys_time_ = srs_update_system_time(); break; } return err;}
定时发送xr dlrr 报文.play原生没有实现可参考publish端的定时任务添加一个.
srs_error_t SrsRtcConnection::send_rtcp_xr_dlrr(uint32_t ssrc, const uint64_t& last_send_systime, const SrsNtp& last_send_ntp) { /* @see: http://www.rfc-editor.org/rfc/rfc3611.html#section-2 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |V=2|P|reserved | PT=XR=207 | length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | SSRC | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ : report blocks : +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ @see: http://www.rfc-editor.org/rfc/rfc3611.html#section-4.4 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | BT=5 | reserved | block length | +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ | SSRC_1 (SSRC of first receiver) | sub- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ block | last RR (LRR) | 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | delay since last RR (DLRR) | +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ | SSRC_2 (SSRC of second receiver) | sub- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ block : ... : 2 +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ */ srs_error_t err = srs_success; // srs_warn("this: %p", this); // @see https://tools.ietf.org/html/rfc3550#section-6.4.2 char buf[kRtpPacketSize]; SrsBuffer stream(buf, sizeof(buf)); stream.write_1bytes(0x80); stream.write_1bytes(kXR); stream.write_2bytes(5); stream.write_4bytes(ssrc); // TODO: FIXME: Should be 1? stream.write_1bytes(5); stream.write_1bytes(0); stream.write_2bytes(3); stream.write_4bytes(1); uint32_t xr_lrr = 0; uint32_t xr_dlrr = 0; if (last_send_systime > 0) { xr_lrr = (last_send_ntp.ntp_second_ << 16) | (last_send_ntp.ntp_fractions_ >> 16); uint32_t dlrr = (srs_update_system_time() - last_send_systime) / 1000; xr_dlrr = ((dlrr / 1000) << 16) | ((dlrr % 1000) * 65536 / 1000); } stream.write_4bytes(xr_lrr); stream.write_4bytes(xr_dlrr); int nb_protected_buf = stream.pos(); if ((err = transport_->protect_rtcp(stream.data(), &nb_protected_buf)) != srs_success) { return srs_error_wrap(err, "protect rtcp xr"); } return sendonly_skt->sendto(stream.data(), nb_protected_buf, 0);}
参考:https://blog.jianchihu.net/webrtc-research-stats-rtt.htmlhttps://www.rfc-editor.org/rfc/pdfrfc/rfc3611.txt.pdf
关键词:
-
全球热文:CSIG企业行-走进合合信息成功举行,聚焦生成式人工智能、智能文档处理前沿热点
3月18日,由中国图象图形学学会(CSIG)主办,合合信息、CSIG文档图像分析与识别专业委员会联合承办的“...
来源: -
环球今日讯!webrtc QOS笔记三 RTT计算,SRS增加XR
webrtcQOS笔记三RTT计算,SRS增加XRRTT计算方式WebRTC中目前有两种方式计算RTT:基于媒体流发送端的计算...
来源: -
全球新资讯:国家药监局:2022年抽检11类化妆品20368批次产品 合格率97.60%
2022年,全国药品监督管理部门以问题多发的品种、场所以及近年来抽检不符合规定的产品涉及的企业为重点...
来源: 全球热文:CSIG企业行-走进合合信息成功举行,聚焦生成式人工智能、智能文档处理前沿热点
环球今日讯!webrtc QOS笔记三 RTT计算,SRS增加XR
你可能不那么知道的Tomcat生命周期管理 | 博学谷狂野架构师
全球新资讯:国家药监局:2022年抽检11类化妆品20368批次产品 合格率97.60%
每日速看!【财经分析】投资收益拖累2022年券商业绩 投行业务景气度仍处于高位
【聚看点】澳弘电子(605058.SH):年产高精密度多层板、高密度互连积层板120万平方米建设项目及研发中心升级改造项目结项
真我GT Neo5 SE“最终幻想”配色回归:赛博朋克风满满
当前消息!《黑暗荣耀2》蝉联网飞电视剧全球榜第一:观看时间过亿
当前热门:又一日系即将退出中国?广汽三菱否认传闻:正常运转
世界看点:被谷歌商店下架 拼多多驳斥恶意软件指控!
世界聚焦:上市五年市值缩水99.6%!昔日“明星”趣头条宣布退市
新资讯:火山引擎 VeDI 零售行业解决方案 聚焦精准营销场景提升品牌转化
面试官:ThreadLocal 为什么会内存泄漏吗?是怎么产生的?面试必问!
JavaSE笔记之注解和反射(含案例代码)
当前速递!Android BLE 广播定制
环球报道:关于asp.net core filters生命周期的探究
今头条!北方多地迎沙尘!长春直接下“泥雨”:汽车变泥车
环球速讯:OPPO、小米、vivo联盟:跨品牌一键换机新增第三方应用迁移
最新消息:史上最强骁龙7系 真我GT Neo5 SE跑分过百万:16+1TB存储确认
世界今热点:孤立森林(IForest)代码实现及与PyOD对比
最资讯丨three.js加载环境贴图
天天热讯:java中同步和异步的区别
今日关注:Alphaliner:2月底港口停运船比率达6.4% 增至去年同期3倍
4月上映!《长空之王》新预告出炉:王一博驾驶歼20一飞冲天
世界今头条!自嗨锅自热煲仔饭4桶到手价32.8元:15分钟速烹美食
今年以来最强沙尘来袭!你的城市在下雨 他的城市在下泥
邓紫棋你把我灌醉高音最高是多少?邓紫棋你把我灌醉歌词
苏菲日记是什么?苏菲日记的读后感怎么写?
strict怎么读?strict的反义词是什么?
主题班会的开场白有什么要求?主题班会的开场白怎么写?
河南洛阳旅游景点排名前十名有哪些?河南洛阳美食排行榜前十名
当前简讯:一种基于实时大数据的图指标解决方案
【天天报资讯】智能零售柜商品检测软件(Python+YOLOv5深度学习模型+清新界面)
来了解下GNOME 2 的 Linux 文件管理器 Caja
【状压DP】蒙德里安的梦想
【环球新要闻】害怕开车也不愁 小米汽车新专利:根据驾驶员匹配自动驾驶等级
前沿资讯!漫威《美国队长4:新世界秩序》开拍 片场首曝:“猎鹰”美队来了
每日热门:一语成谶!网传鬼火少年“三部曲”:片头壮行、片尾撞车
俄罗斯伏尔加汽车厂:中国汽车是新款拉达Vesta的主要对手
省钱神器!淘宝内测同款比价功能:最快本周上线
全球速看:记一次 rr 和硬件断点解决内存踩踏问题
天天新资讯:生核桃怎么变熟核桃_生核桃怎么弄熟
魅族20 PRO三款配色公布:绝美朝阳金吸睛
天天快消息!25日继续公测 暴雪承诺《暗黑4》会解决排队问题:服务器顶得住
环球精选!沙尘天气席卷!北京再现火星同款“蓝太阳” 专家揭秘
世界即时:开特斯拉回村被乡亲群嘲“大冤种” 30万买BBA不好吗?
今日热门!微信聊天记录不用头疼了:vivo宣布跨品牌换机数据迁移
基于深度学习的安全帽检测系统(YOLOv5清新界面版,Python代码)
MAC 最新中文版 FCPX 10.6.5 及相关插件下载安装教程 亲测有效
大数据计算引擎 EasyMR:拥抱开源,引领技术创新
当前聚焦:Java面试问题
解放生产力:30+实用AI工具汇总
全球今日讯!谷歌版ChatGPT开放测试:不会编程、不支持中文
全球聚焦:微软研究员质疑Bard数据集包括Gmail邮件:谷歌迅速澄清
2999元 小米米家对开门540L冰箱今晚开售:风冷无霜保鲜
120mg原生高钙 特仑苏纯牛奶3元/盒大促
天天最新:破解大难题!苹果新专利:佩戴太阳镜也可看清iPhone屏幕内容
【报资讯】vue3
世界视点!设计模式-index
精彩看点:商铺上月买卖91宗 涉21亿创半年高
热点评!平板电脑屏幕冷知识:高刷比高分辨率重要
焦点热讯:比尔·盖茨:GPT是1980年以来最革命性的技术进步
今日热讯:极氪009平均订单金额达52.7万元 一台订单收入相当于吉利卖5台
谷歌版ChatGPT Bard开启公测!CEO:肯定会出错、欢迎反馈
世界焦点!漫威《美队4》正式开拍 首曝片场路透:猎鹰美队就位
世界热议:Android性能优化-ListView自适应性能问题
读C#代码整洁之道笔记03_切面关注点、异常处理和线程与并发
当前时讯:放假一天不调休!2023清明节假期火车票今日开售
快资讯丨《霍格沃茨》在线人数锐减 “反恐同”人士冷嘲热讽
环球今日讯!《战争机器》电影确定编剧
世界聚焦:刚买1个月的特斯拉掉漆车主质疑非新车 售后:交付时没问题
热消息:公交司机急刹车致乘客死亡获刑 官方判定当时不需刹车:交通肇事罪
全球最资讯丨新车品鉴:2020广州车展探馆:广汽传祺EMPOWER
每日热闻!【看新股】10家拟上市银行“换道”注册制:利润普遍增长、资产质量分化、资本充足率承压
精选!iOS 17将支持第三方应用商店:看齐安卓
读Java性能权威指南(第2版)笔记24_ Java飞行记录器JFR
洗衣机6个月不清洗比马桶还脏?我麻了
时代的眼泪 25年历史的数码相机权威网站Dpreview关停
当前快报:Go 并发编程(二):锁、Select、Context、定时器
焦点报道:智能生活垃圾检测与分类系统(UI界面+YOLOv5+训练数据集)
当前通讯!Servlet的基本使用
每日资讯:中国移动:命苦
天天速看:鹿客发布掌心锁V5:掌静脉+3D结构光刷脸解锁 3399元起
尼泊尔空难20天就查明原因?为什么东航事故还没有结果?
世界微资讯!腾讯四年磨一剑!结果 让大家看笑话了
OPPO Find X6 Pro:表演一场简单的光影魔术
亨迪药业(301211):3月21日北向资金减持66.63万股
世界最资讯丨uni-app云开发入门
当前资讯!WPF学习-布局
世界热文:全明星爆款APP“偶像驾到”正式上线 主播经济和明星经纪开启新时代
小屏手机真凉了!苹果卖最差的iPhone 14 Plus 出货量也远超13 mini
今日快讯:mysql集群搭建docker-compose方案
上海农商银行完成上海市政府柜台债发售
山姆会员店寿司致多人上吐下泻:官方拒绝三倍赔偿
天天新消息丨致敬葫芦娃?保时捷911 Carrera GTS泰国特别版官图发布
环球最资讯丨14.5英寸超大屏+天玑9000!联想Y900平板正式发布:4999元起
天天观点:13代酷睿+RTX 40!联想拯救者Y7000P 2023电竞本发布:屏幕大升级
13900HX+4090顶配20999元!联想拯救者Y9000P 2023价格公布
环球最新:睡眠报告:山东人上床睡觉时间全国最早、广东人最能熬夜
焦点快看:埃安(埃)