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

没有正确使用HTTP Range Request,导致访问Azure Blob存储的视频没有实现流式播放

引文:

组里的小伙伴在修改视频播放相关的代码,修改之前的方案使用CDN转发,可以实现流式播放,修改之后的代码因为没有正确的使用Http Range Request, 导致画面访问Azure Blob存储的视频没有实现流式播放,整理下线索在这里。

一 解释:

在 Azure 中,通过 Blob 存储直接访问视频文件,通常是基于 HTTP 下载的方式,因此客户端会尝试下载整个文件后再播放。如果通过 CDN 转发,同一个文件能够实现边下边播,这是因为 CDN 支持了分段传输范围请求(Range Request),这是流媒体播放的核心功能。


二 CDN支持流式播放的关键原理

  1. HTTP Range Request

    • Range Request 是 HTTP 协议中的一种功能,允许客户端请求文件的特定字节范围。
    • 播放器会根据播放进度逐步请求文件的后续部分,而不是一次性请求整个文件。
    • Azure Blob 本身支持 Range Request,但播放器需要明确支持这一特性。
  2. CDN的优化

    • 缓存优化
      CDN 缓存视频文件,减少从源服务器(Azure Blob)的读取延迟。
    • 分片预取
      CDN 会根据播放器的请求预取后续视频片段,以确保播放过程的流畅性。
    • 协议适配
      CDN 可以将标准的文件传输协议(HTTP/HTTPS)转换为支持流媒体的格式,例如 HLS 或 DASH,从而更好地支持边下边播。

三 为什么 CDN 可以实现边下边播,而 Blob 不能

  1. 播放器行为差异

    • 如果播放器不支持 Range Request,直接访问 Azure Blob 会尝试完整下载文件。
    • CDN 转发会对客户端的请求进行优化,模拟流媒体的按需加载行为。
  2. 缓存与加速

    • CDN 的缓存机制可以将文件分段处理,让边下边播更加高效。
    • Blob 存储的访问速度相对受限于区域和网络延迟。
  3. 协议转换

    • 使用 CDN 时,可以配置流媒体协议(如 HLS 或 DASH),使视频文件适配播放器的流式播放需求。

四 如何优化 Azure Blob 支持边下边播

如果希望直接通过 Azure Blob 存储实现边下边播,可以考虑以下方法:

1. 确保播放器支持 Range Request
  • 现代浏览器中的 HTML5 播放器和一些第三方播放器(如 Video.js)通常都支持 Range Request。
  • 测试播放器的功能,确保它能够根据文件的特定范围发起请求。
2. 通过转码工具创建流媒体文件
  • 将视频文件转换为支持分段播放的格式(如 HLS 或 DASH)。
  • 可以使用工具如 FFmpeg:
    ffmpeg -i input.mp4 -hls_time 10 -hls_playlist_type vod -hls_segment_filename "segment_%03d.ts" output.m3u8 
  • 生成的 .m3u8 文件和分段 .ts 文件可以直接存储在 Blob 中。
3. 配置 Azure CDN
  • 为 Blob 存储配置 Azure CDN 加速,将视频文件通过 CDN 分发。
  • 在 CDN 配置中启用 Range Request 和流媒体优化功能。
4. 使用 Azure Media Services
  • Azure Media Services 提供了完整的流媒体解决方案,包括 HLS 和 DASH 格式支持。
  • 步骤:
    1. 将视频文件上传到 Azure Blob。
    2. 使用 Azure Media Services 进行编码和动态打包。
    3. 通过 Media Services 提供的流式播放 URL 播放视频。

五 对比:Blob 存储 vs. CDN 的使用场景

功能Azure Blob 存储CDN 转发
下载完整文件支持支持
Range Request依赖播放器支持默认优化
边下边播需要配置播放器和协议支持原生支持(适合流媒体)
性能取决于 Blob 的区域和网络提供全球加速和低延迟
成本较低CDN 可能增加流量成本

六 推荐方案

如果你的视频需要频繁流式播放,建议通过以下方法改进:

  1. 配置 Azure CDN

    • 简单易用,无需修改现有视频文件,适合常规边下边播需求。
  2. 使用 HLS/DASH 格式

    • 适合需要更高播放性能和自适应比特率的场景,推荐结合 Azure Media Services 使用。
  3. 结合播放器优化

    • 确保播放器对 Range Request 和流媒体协议的支持。


七 补充视频流式播放的一些技术概念

视频流式播放(Streaming Media)技术是一项复杂且广泛的技术领域,涉及编码、传输协议、播放协议、网络优化、内容分发等多个方面。以下是详细的技术知识和核心概念。


1. 视频流式播放的基本概念

  • 流式播放(Streaming)
    视频或音频文件通过网络分段传输到用户端,用户可以边下载边播放,无需等待整个文件下载完成。

  • 实时流(Live Streaming)
    实时传输音视频内容,常用于直播场景。

  • 点播流(Video-on-Demand, VOD)
    用户按需播放存储在服务器上的预录制内容。


2. 流式播放的工作流程

  1. 视频捕获与处理

    • 使用摄像头、麦克风等设备录制视频或音频。
    • 将内容转码为适合流式播放的格式(如 MP4、HLS、DASH)。
  2. 视频编码

    • 使用编码器(如 H.264、H.265、VP9、AV1)对视频进行压缩,减少带宽占用。
    • 常见的音频编码格式包括 AAC、MP3。
  3. 分片与打包

    • 将视频按时间切分为小段(如 HLS 中的 .ts 文件或 DASH 中的 .m4s 文件)。
    • 生成播放清单文件(如 .m3u8.mpd)。
  4. 分发与传输

    • 使用流媒体服务器(如 Wowza、Nginx RTMP 模块)或 CDN 分发内容。
    • 客户端通过协议请求数据。
  5. 客户端解码与播放

    • 客户端播放器接收视频片段并进行解码,按时间顺序播放,客户端需要支持流媒体解码,比如 HTML5 视频播放器、Flash 播放器或专有播放器(如 VLC、QuickTime)。

3. 核心技术组件

(1)编码与格式

  • 编码(Codec)
    视频和音频内容的压缩标准:
    • 视频:H.264、H.265、VP9、AV1。
    • 音频:AAC、MP3、Opus。
  • 容器格式
    用于存储编码后的音视频数据:
    • 常见格式:MP4、MKV、WebM、TS。

(2)流媒体协议

  • HLS (HTTP Live Streaming)

    • Apple 开发,基于 HTTP,兼容性强。
    • 优点:支持自适应比特率(ABR)、简单实现。
    • 缺点:延迟较高(通常 6-30 秒)。
  • DASH (Dynamic Adaptive Streaming over HTTP)

    • 开放标准,类似 HLS。
    • 优点:跨平台支持、高度灵活。
    • 缺点:实现相对复杂。
  • RTMP (Real-Time Messaging Protocol)

    • 传统直播协议,低延迟。
    • 缺点:逐渐被 HLS 和 WebRTC 取代。
  • WebRTC

    • 专为实时通信设计,支持超低延迟。
    • 应用场景:视频会议、实时互动直播。
  • RTSP (Real-Time Streaming Protocol)

    • 常用于监控视频,主要适配 IP 摄像头。

(3)分发与优化

  • 内容分发网络(CDN)

    • 提供全球范围内的内容缓存和分发,降低延迟,提高可靠性。
    • 常见服务商:Cloudflare、Akamai、Azure CDN。
  • 自适应比特率(ABR)

    • 根据用户的网络带宽动态调整视频质量,保证流畅播放。
  • 缓存与预取

    • 缓存:将常用内容存储在离用户较近的服务器上,客户端会在播放视频时同时缓冲后续数据,以确保播放的连续性,即使网络连接有短暂的波动也能平滑播放。
    • 预取:提前加载用户可能请求的视频片段。

4. 视频流式播放的优化技术

(1)低延迟优化

  • 使用低延迟 HLS(LL-HLS)或 DASH(LL-DASH)。
  • 减少片段长度(通常从 10 秒减少到 2 秒)。
  • 使用 WebRTC 或 RTMP 替代传统协议。

(2)编码优化

  • 调整编码参数(如分辨率、比特率)以适配网络条件。
  • 使用高效编码格式(如 H.265、AV1)。

(3)缓冲管理

  • 增大播放器缓冲区以应对网络抖动。
  • 平衡缓冲区大小和延迟。

(4)QoS(服务质量)监控

  • 监控用户端的播放体验(卡顿率、起播时间)。
  • 实时调整传输策略。

5. 视频流式播放的应用场景

  1. 在线视频

    • 平台:YouTube、Netflix。
    • 技术:HLS、DASH。
  2. 直播

    • 平台:Twitch、抖音直播。
    • 技术:RTMP、WebRTC。
  3. 远程教育

    • 平台:Coursera、edX。
    • 技术:点播 + 直播。
  4. 视频会议

    • 平台:Zoom、Microsoft Teams。
    • 技术:WebRTC。
  5. 监控系统

    • 技术:RTSP。

6. 视频流式播放的挑战

  1. 网络延迟

    • 挑战:高延迟会影响实时交互体验。
    • 解决方案:使用低延迟协议(如 WebRTC)。
  2. 网络带宽限制

    • 挑战:用户网络差异导致播放不流畅。
    • 解决方案:自适应比特率(ABR)。
  3. 内容安全

    • 挑战:防止盗链和未授权访问。
    • 解决方案:使用 DRM(数字版权管理)和 URL 签名。
  4. 多设备兼容

    • 挑战:不同设备对协议和编码的支持差异。
    • 解决方案:提供多种编码版本和播放协议。

7. 技术栈与工具

  1. 视频编码与处理

    • FFmpeg:开源工具,用于转码、分片。
    • HandBrake:视频转换和压缩。
  2. 流媒体服务器

    • Nginx + RTMP 模块。
    • Wowza Streaming Engine。
    • AWS Elemental Media Services。
  3. 播放器

    • Video.js:开源 HTML5 播放器。
    • Shaka Player:支持 HLS 和 DASH。
    • ExoPlayer:Android 原生播放器。
  4. 调试工具

    • Chrome DevTools:网络请求分析。
    • Wireshark:网络协议分析。




相关文章:

没有正确使用HTTP Range Request,导致访问Azure Blob存储的视频没有实现流式播放

引文: 组里的小伙伴在修改视频播放相关的代码,修改之前的方案使用CDN转发,可以实现流式播放,修改之后的代码因为没有正确的使用Http Range Request, 导致画面访问Azure Blob存储的视频没有实现流式播放,整理下线索在这…...

React中Fiber树构建过程详解——react中render一个App组件(包含子组件)的流程详解

在 React 中,渲染一个包含子组件的组件涉及一系列底层流程,包括构建虚拟 DOM(React Element)、协调(Reconciliation)、Fiber 树管理和最终的 DOM 操作。以下是一个从底层解析的详细流程: 1. 初始…...

机器学习赋能的智能光子学器件系统研究与应用

在人工智能与光子学设计融合的背景下,科研的边界持续扩展,创新成果不断涌现。从理论模型的整合到光学现象的复杂模拟,从数据驱动的探索到光场的智能分析,机器学习正以前所未有的动力推动光子学领域的革新。据调查,目前…...

晨辉面试抽签和评分管理系统之七:面试成绩核算的三种方式

晨辉面试抽签和评分管理系统(下载地址:www.chenhuisoft.cn)是公务员招录面试、教师资格考试面试、企业招录面试等各类面试通用的考生编排、考生入场抽签、候考室倒计时管理、面试考官抽签、面试评分记录和成绩核算的面试全流程信息化管理软件。提供了考生…...

语音合成的预训练模型

语音合成的预训练模型 与 ASR(语音识别)和音频分类任务相比,语音合成的预训练模型检查点明显较少。在 Hugging Hub 上,可以找到近 300 个适合的检查点。 在这些预训练模型中,重点关注两种在 Huggingface Transformers 库中开箱即用的架构——SpeechT5 和 Massive Multili…...

Windows怎么搭建rust环境?

在Windows上搭建Rust开发环境相对简单,主要步骤如下: ### 1. 安装Rust 最简单的方法是使用官方提供的安装脚本。打开命令提示符(Command Prompt)或PowerShell,然后运行以下命令来下载并安装Rust: bash cu…...

【Flink】Flink内存管理

Flink内存整体结构图: JobManager内存管理 JVM 进程总内存(Total Process Memory)Flink总内存(Total Flink Memory):JVM进程总内存减去JVM Metaspace(元空间)和JVM Overhead(运行时开销)上图解释: JVM进程总内存为2G;JVM运行时开销(JVM Overh…...

React方向:react中5种Dom的操作方式

1、通过原生JS获取Dom去操作 通过document.querySelector(#title)原生js的方式去拿到dom节点,然后去进行操作。 import {Component} from "react";class App extends Component {//定义获取Dom的函数handleGetDom(){let title document.querySelector(#t…...

K8s数据存储之详解(Detailed Explanation of K8s Data Storage)

K8s数据存储相关概念详解(临时存储,节点存储,网络存储,PV/PVC) 本篇文章分享一下存储卷和数据持久化的相关概念: 存储卷概述 临时存储卷(Ephemeral Volumes) 节点存储卷&#xff…...

PyTorch 中的 Dropout 解析

文章目录 一、Dropout 的核心作用数值示例:置零与缩放**训练阶段****推理阶段** 二、Dropout 的最佳使用位置与具体实例解析1. 放在全连接层后2. 卷积层后的使用考量3. BatchNorm 层与 Dropout 的关系4. Transformer 中的 Dropout 应用 三、如何确定 Dropout 的位置…...

计算机网络 (41)文件传送协议

前言 一、文件传送协议(FTP) 概述: FTP(File Transfer Protocol)是互联网上使用得最广泛的文件传送协议。FTP提供交互式的访问,允许客户指明文件的类型与格式(如指明是否使用ASCII码&#xff0…...

AOSP 14及以上userdebug无法调试的问题

参考链接:原文...

【Vue】点击侧边导航栏,右侧main对应显示

需求&#xff1a;点击侧边导航栏&#xff0c;右侧main对应显示 通过v-if或v-show等指令来控制不同内容的显示隐藏来实现 注意&#xff1a; 使用v-if时候进行导航栏切换&#xff0c;右侧显示区域可能会出现样式错乱&#xff1b;使用v-show则不会出现此错误 <template>&…...

Python Selenium 库学习指南

Python Selenium 库学习指南 目录 Selenium 基础介绍 Selenium 是什么安装 SeleniumSelenium 的工作原理 Selenium 基本用法 启动浏览器定位元素常见操作&#xff1a;点击、输入、滚动 高级用法 切换窗口与标签页模拟鼠标操作与键盘输入动态加载的网页处理 等待机制 显式等待…...

如何解决Webview和H5缓存问题,确保每次加载最新版本的资源

WebView 用于加载 H5 页面是常见的做法&#xff0c;它能够加载远程的 HTML、CSS、JavaScript 资源&#xff0c;并且让 Web 应用嵌入到原生 App 中。然而&#xff0c;WebView 的缓存机制有时会导致用户看到的是旧版本的页面或资源&#xff0c;尤其是在 H5 发版后&#xff0c;iOS…...

costmap 中点与多边形的相对位置关系

一、背景 近期在阅读move_base源码costmap部分(感觉想玩转movebase导航&#xff0c;costmap必须理解呀)。读到两处点与多边形的相对位置关系。在此总结一下&#xff0c;分别是: intersects: 利用待测点向右引出的射线与多边形的交点数来确定相对位置。有的称 射线交叉算法&am…...

C#与Vue2上传下载Excel文件

1、上传文件流程&#xff1a;先上传文件&#xff0c;上传成功&#xff0c;返回文件名与url&#xff0c;然后再次发起请求保存文件名和url到数据库 前端Vue2代码&#xff1a; 使用element的el-upload组件&#xff0c;action值为后端接收文件接口&#xff0c;headers携带session信…...

.NetCore 使用 NPOI 读取带有图片的excel数据

在.NetCore使用NPOI插件进行批量导入时&#xff0c;获取Excel中的所有的图片数据&#xff0c;存到集合中。 1.定义类PictureData 代码如下&#xff1a; public class PictureData { public byte[] Data { get; set; } } 2.数据集引用 using NPOI.XSSF.UserModel; usin…...

鸿蒙打包发布

HarmonyOS应用/元服务发布&#xff08;打包发布&#xff09; https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V13/ide-publish-app-V13?catalogVersionV13 密钥&#xff1a;包含非对称加密中使用的公钥和私钥&#xff0c;存储在密钥库文件中&#xff0c;格式…...

C++并发编程之跨应用程序与驱动程序的单生产者单消费者队列

设计一个单生产者单消费者队列&#xff08;SPSC队列&#xff09;&#xff0c;不使用C STL库或操作系统原子操作函数&#xff0c;并且将其放入跨进程共享内存中以便在Ring3&#xff08;用户模式&#xff09;和Ring0&#xff08;内核模式&#xff09;之间传递数据&#xff0c;是一…...

22、PyTorch nn.Conv2d卷积网络使用教程

文章目录 1. 卷积2. python 代码3. notes 1. 卷积 输入A张量为&#xff1a; A [ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ] \begin{equation} A\begin{bmatrix} 0&1&2&3\\\\ 4&5&6&7\\\\ 8&9&10&11\\\\ 12&13&14&15 \end{b…...

智汇云舟参编《城市轨道交通安全防范系统技术要求》国标正式发布

近日&#xff0c;根据国家标准化管理委员会官网&#xff0c;全国标准信息公共服务平台发布的公告&#xff0c;国家标准《城市轨道交通安全防范系统技术要求》&#xff08;GB/T 26718-2024&#xff09;已由全国城市轨道交通标准化技术委员会上报国家标准化管理委员会&#xff0c…...

C# 数据拟合教程:使用 Math.NET Numerics 的简单实现

C# 数据拟合实战&#xff1a;使用 Math.NET Numerics 快速实现 引言 在科学计算、工程建模或数据分析中&#xff0c;数据拟合是一个非常重要的技术。无论是线性拟合还是非线性拟合&#xff0c;借助适当的工具都可以快速解决问题。本文将向您展示如何使用 C# 和强大的数值计算…...

WEB攻防-通用漏洞_XSS跨站_权限维持_捆绑钓鱼_浏览器漏洞

目录 XSS的分类 XSS跨站-后台植入Cookie&表单劫持 【例1】&#xff1a;利用beef或xss平台实时监控Cookie等凭据实现权限维持 【例2】&#xff1a;XSS-Flash钓鱼配合MSF捆绑上线 【例3】&#xff1a;XSS-浏览器网马配合MSF访问上线 XSS的分类 反射型&#xff08;非持久…...

瑞芯微 RK 系列 RK3588 使用 ffmpeg-rockchip 实现 MPP 视频硬件编解码-代码版

前言 在上一篇文章中&#xff0c;我们讲解了如何使用 ffmpeg-rockchip 通过命令来实现 MPP 视频硬件编解码和 RGA 硬件图形加速&#xff0c;在这篇文章&#xff0c;我将讲解如何使用 ffmpeg-rockchip 用户空间库&#xff08;代码&#xff09;实现 MPP 硬件编解码。 本文不仅适…...

MySQL数据库(SQL分类)

SQL分类 分类全称解释DDLData Definition Language数据定义语言&#xff0c;用来定义数据库对象&#xff08;数据库&#xff0c;表&#xff0c;字段&#xff09;DMLData Manipulation Language数据操作语言&#xff0c;用来对数据库表中的数据进行增删改DQLData Query Languag…...

SpringBoot-Day1

1.Springboot入门 创建Maven工程 导入spring-boot-stater-web起步依赖 编写Controller 提供启动类 2.yml配置信息书写与获取 书写 # 发件人信息 email:user: 172349823457qq.comcode: sajdajlwhjfgfkllwhost: smtp.qq.comauth: true ​ # 学生爱好 hobbies:- 打篮球- 踢…...

【JavaScript】基础内容,HTML如何引用JavaScript, JS 常用的数据类型

HTML 嵌入 Javascript 的方式 引入外部 js 文件 <head> <script Language "javaScript" src"index.js"/> </head>内部声明 <head> <script language"javascript">function hello(){alert("hello word&qu…...

mysql中创建计算字段

目录 1、计算字段 2、拼接字段 3、去除空格和使用别名 &#xff08;1&#xff09;去除空格 &#xff08;2&#xff09;使用别名&#xff1a;AS 4、执行算术计算 5、小结 博主用的是mysql8 DBMS&#xff0c;附上示例资料&#xff1a; 百度网盘链接: https://pan.baidu.co…...

如何优化zibll子比主题SEO并设置有效robots文件

如果你不知道 robots.txt 是什么&#xff0c;也不确定如何正确地设置它&#xff0c;本篇文章会向您介绍适用于子比主题的 robots.txt 文件&#xff0c;利用它可以提升 SEO 的效果&#xff0c;避免收录无关页面&#xff0c;从而解决网站被收录但无权重的困境。 作为一款高效的 …...

线程间通信

线程间通信&#xff08;Inter-Thread Communication, 简称ITC&#xff09;是指在多线程编程中&#xff0c;不同线程之间如何交换信息或协调彼此的行为。良好的线程间通信机制是构建高效、可靠的并发程序的关键。Java语言提供了多种内置工具和库来支持线程间的通信&#xff0c;包…...

【实践】操作系统智能助手OS Copilot新功能测评

一、引言 数字化加速发展&#xff0c;尤其人工智能的发展速度越来越快。操作系统智能助手成为提升用户体验与操作效率的关键因素。OS Copilot借助语言模型&#xff0c;人工智能等&#xff0c;对操作系统的自然语言交互操作 推出很多功能&#xff0c;值得开发&#xff0c;尤其运…...

今年的电商年货节,主流的营销策略是怎样?

随着一年的年关将近&#xff0c;新一年的CNY营销也逐渐拉开帷幕。考虑到此时消费需求的膨胀&#xff0c;这个时间不论对于线上还是线下市场而言&#xff0c;都是重要的营销节点。今年CNY营销&#xff0c;电商平台上的主流营销策略是这样&#xff1f;就让我们来简单了解下概况。…...

Java设计模式——单例模式(特性、各种实现、懒汉式、饿汉式、内部类实现、枚举方式、双重校验+锁)

文章目录 单例模式1️⃣特性&#x1f4aa;单例模式的类型与实现&#xff1a;类型懒汉式实现(线程不安全)懒汉式实现(线程安全&#xff09;双重锁校验懒汉式(线程安全)饿汉式实现(线程安全)使用类的内部类实现⭐枚举方式实现单例&#xff08;推荐&#xff09;&#x1f44d; 单例…...

基于 Python 的学生成绩管理系统设计与实现

标题:基于 Python 的学生成绩管理系统设计与实现 内容:1.摘要 摘要&#xff1a;本文介绍了一个基于 Python 的学生成绩管理系统的设计与实现。该系统旨在提高学生成绩管理的效率和准确性&#xff0c;方便教师和学生进行成绩查询和分析。本文详细描述了系统的设计思路、功能模块…...

局域网共享文件夹实现两台Windows电脑之间传输文件

文章目录 1. 启用网络发现和文件共享2. 设置共享文件夹3. 记录主电脑的IP地址4. 在第二台电脑访问共享文件夹5. 故障排查6. 启用文件共享未生效方案1&#xff1a;检查服务状态方案2&#xff1a;检查防火墙设置方案3&#xff1a;检查网络类型方案4&#xff1a;使用“管理员命令提…...

JS的事件循环机制

<script>setTimeout(()>{console.log(1)},1000)setTimeout(()>{console.log(2)},3000)var start Date.now();while ( (Date.now() - start) < 10000 ){}console.log(3)</script>执行如下代码会发现先打印3&#xff0c;再打印1 再打印2。 现象本质还是因为…...

《自动驾驶与机器人中的SLAM技术》ch9:自动驾驶车辆的离线地图构建

目录 1 点云建图的流程 2 前端实现 2.1 前端流程 2.2 前端结果 3 后端位姿图优化与异常值剔除 3.1 两阶段优化流程 3.2 优化结果 ① 第一阶段优化结果 ② 第二阶段优化结果 4 回环检测 4.1 回环检测流程 ① 遍历第一阶段优化轨迹中的关键帧。 ② 并发计算候选回环对…...

环境搭建——Mysql、Redis、Rocket MQ部署

前言 在搭建分布式系统时&#xff0c;MySQL、Redis 和 RocketMQ 是常用的基础服务。每个服务各自的功能不同&#xff0c;但它们在数据存储、缓存、消息队列等方面不可或缺。如果你是初学者&#xff0c;别担心&#xff0c;本文会一步步详细教你如何在服务器上通过 Docker 部署这…...

Pycharm连接远程解释器

这里写目录标题 0 前言1 给项目添加解释器2 通过SSH连接3 找到远程服务器的torch环境所对应的python路径&#xff0c;并设置同步映射&#xff08;1&#xff09;配置服务器的系统环境&#xff08;2&#xff09;配置服务器的conda环境 4 进入到程序入口&#xff08;main.py&#…...

git的基本操作

创建分支&#xff1a; 1&#xff0c;拉去develop代码&#xff1b; 2&#xff0c;git checkout develop切换到develop&#xff1b; 3&#xff0c;git branch lyb/lyb_develop &#xff1b; 4&#xff0c;git push --set-upstream origin lyb/lyb_develop 切换分支&#xff0c;上…...

Linux软件包管理工具概览

目录 RPM&#xff08;RedHat Package Manager&#xff09; DPKG&#xff08;Debian Packager&#xff09; APT&#xff08;Advanced Package Tool&#xff09; YUM&#xff08;Yellowdog Updater, Modified&#xff09; DNF&#xff08;Dandified YUM&#xff09; 总结 在…...

unity学习16:unity里向量的计算,一些方法等

目录 1 unity里的向量&#xff1a; 2 向量加法 2.1 向量加法的几何意义 2.2向量加法的标量算法 3 向量减法 3.1 向量减法的几何意义 3.2 向量减法的标量算法 4 向量的标量乘法 5 向量之间的乘法要注意是左乘 还是右乘 5.1 注意区别 5.2 向量&#xff0c;矩阵&#x…...

HTML拖拽功能(纯html5+JS实现)

1、HTML拖拽--单元行拖动 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title><…...

w158医院资源管理系统的设计与实现

&#x1f64a;作者简介&#xff1a;多年一线开发工作经验&#xff0c;原创团队&#xff0c;分享技术代码帮助学生学习&#xff0c;独立完成自己的网站项目。 代码可以查看文章末尾⬇️联系方式获取&#xff0c;记得注明来意哦~&#x1f339;赠送计算机毕业设计600个选题excel文…...

【计算机网络】lab3 802.11 (无线网络帧)

&#x1f308; 个人主页&#xff1a;十二月的猫-CSDN博客 &#x1f525; 系列专栏&#xff1a; &#x1f3c0;计算机网络_十二月的猫的博客-CSDN博客 &#x1f4aa;&#x1f3fb; 十二月的寒冬阻挡不了春天的脚步&#xff0c;十二点的黑夜遮蔽不住黎明的曙光 目录 1. 前言 2.…...

linux进程

课本概念&#xff1a;程序的⼀个执行实例&#xff0c;正在执行的程序等内核观点&#xff1a;担当分配系统资源&#xff08;CPU时间&#xff0c;内存&#xff09;的实体。 进程信息被放在一个叫做进程控制块的数据结构中&#xff0c;可以理解为进程属性的集合.课本上称之为PCB&…...

pytest-allure框架简单封装----测试报告

安装allure-commandline---可以支持allure命令 把对应的压缩包解压后,把xxx/bin配置到环境变量的path去 可以输入allure -version检查版本 pip install allure-pytest2.11.1 生成测试报告 import pytest pytest_args ["-s","-v","--capturesys…...

【2025最新计算机毕业设计】基于SpringBoot+Vue奶茶点单系统(高质量源码,提供文档,免费部署到本地)

作者简介&#xff1a;✌CSDN新星计划导师、Java领域优质创作者、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行前辈交流。✌ 主要内容&#xff1a;&#x1f31f;Java项目、Python项目、前端项目、PHP、ASP.NET、人工智能…...

HTML中最基本的东西

本文内容的标签&#xff0c;将是看懂HTML的最基本之基本 &#xff0c;是跟您在写文章时候一样内容。一般想掌握极其容易&#xff0c;但是也要懂得如何使用&#xff0c;过目不忘&#xff0c;为手熟尔。才是我们学习的最终目的。其实边看边敲都行&#xff0c;或者是边看边复制粘贴…...