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

网易云信4K 8K RTC助力远程医疗的技术实践

  //  

编者按:随着近年来国家关于缓解医疗资源分配不均的一系列政策出台,远程医疗作为平衡医疗资源分配的有力手段,目前正处于强劲发展阶段。网易云信运用超高清RTC视频技术助力医疗行业实现了远程高清视频病理分析和手术示教等能力。LiveVideoStackCon 2023 上海站邀请了来自网易云信的朱明亮,为大家分享网易云信关于4K、8K RTC助力远程医疗的技术实践 。

文/朱明亮

整理/LiveVideoStack

大家好,我本次分享的主题是云信8K RTC助力远程医疗的技术实践。

首先向大家做一个自我介绍,本人来自网易云信,负责RTC SDK端视频引擎工程团队,主攻的业务方向是视频管线的需求实现和性能优化。历经点播、直播到现在的RTC,我在音视频领域已有十余年工作经验,目前在云信致力于4K、8K RTC技术的研发。

bed4ac2d29fb6cd624b900d147bcba87.png

本次分享将分为以下四部分,一是介绍业务背景,二是我们的远程医疗方案,三是8K RTC实践,最后进行总结展望。

-01-

背景介绍

7113226681b515b1cdbc2552137c1fd5.png

下面将从三个方面介绍我们的业务背景。

首先是医疗资源现状,我国的医疗资源目前高度紧缺且分布极度不均,主要体现为:近85%的资源集中在大中城市的少数二、三甲医院;全国医疗结构的近95%为基层卫生机构,而基层高水平医疗人员数量较少,取得正高/副高资格的医生占比仅为 5.1%。

为了解决资源不均的问题,国家目前正大力推行建立分级医疗和远程医疗体系。

d67335dee6cc4dba51abdc71c6ab3679.png

提到远程医疗,可能大家首先想到的形式是医生通过网络远程操纵机器人完成手术,不过现状与之相比还有一定差距。当下远程医疗更多作为线下实体医院的功能延伸,如通过网络实现患者预约、就医挂号和病例查询等功能。至近期已逐步发展到“互联网+医疗”模式,患者可以利用网络进行图文、视频直播问诊并开单拿药。

我们认为远程医疗未来的发展趋势是实现高清视频问诊,包括多学科会诊(MDT)、手术高清视频示教和视频会议等。今天主要将介绍我们在这方面进行的实践。

a26572e09ce4ba4bb17905e1a7c60beb.png

我们再来了解8K的概念,与当前RTC常用的FHD 1080P和影院、音视频点播成熟化应用的4K分辨率相比,8K超高清分辨率达到了4K的4倍,1080P的16倍。它包括更丰富、更细腻的画面细节,传达的信息量是人眼可识别范围的4.3倍,即使对画面的个别位置进行放大也几乎不会出现细节损失,这更有利于远程医疗病理分析和远程传输等方面的应用。

-02-

远程医疗方案

81b09f3f0440be657fde8aac2d9a2ab8.png

接下来介绍我们现阶段在远程医疗方面应用的一些方案。上图为网易云信互联网医院的架构图,左侧为传统互联网医院就医的闭环流程。中间为本次主要介绍的基于云信RTC SDK打造的智慧协同医疗教学功能模块,它包含远程病理、远程SDT会诊、远程培训和会议等能力。

对于症状轻微的普通疾病通过左侧闭环流程即可完成就医,而对于在基层医疗机构难以决策的疑难杂症、危重疾病、手术等,则可通过智慧协同功能模块与其他医院、其他科室的专家进行会诊。

6260e51a2b71bef60e215e7aa913dcd6.png

云信RTC的SDK架构如上所示,它的分层较为清晰。首先最底层为基础层,在此之上为核心的媒体引擎层,包括视频引擎、音频引擎和传输引擎模块。接着是跨平台封装层,该层会抽象一些跨平台API,包括信令传输等模块,我们在该层还会构建一些通用的音视频逻辑,如视频主辅流双通道分流、主流Simulcast机制等。再上一层为SDK接口层,针对各个平台不同的Native language进行API封装,并提供给客户进行集成。顶层为我们推出的云信易用体系,可以提供 Sample Code、行业解决方案Demo和通用组件,便于客户进行集成。

2da5f3aa47dd050d81442f980befa1d2.png

云信RTC SDK的视频引擎Pipeline如上所示。顶部为网络传输模块,左侧为视频上行流程,历经视频源采集、前处理至编码、上传,支持主辅流双路通道。VQC模块会通过QoS评估网络带宽动态调整编码器参数。

右侧为视频下行流程,支持N路下行,可满足多人视频会议等场景的需求。

7d96df75775efe638dc454a48d302511.png

接下来具体介绍视频引擎的上行Pipeline,其中左侧的视频采集模块支持桌面采集、摄像头采集和第三方输入等方式,输入的视频经过前处理将分为两路,一路经过叠加水印、打码等额外处理后进行本地渲染以供预览。另一路将经过额外处理传输至编码器。VQC模块会根据网络条件动态调整视频分辨率、码率、帧率等编码参数,提高观看体验。

-03-

8K RTC实践

5a5a053cdc8b7ac8f0dca590168362db.png

下面将从以上几方面介绍我们关于8K RTC的技术实践。

4a5a44cda7c7ac23bdf0e73d031fd3ac.png

我们的8K RTC系统在选定的一般硬件平台落地。CPU是Intel 11 代i5,显卡是 集成显卡 iRIS Xe Graphics,系统是 Windows11,显示设备为8K显示屏,使用8K 摄像头进行采集。

2b6c592e01290b932505c2fa4b67fb9f.png

8K RTC 对视频引擎Pipeline的优化点主要集中在屏幕共享、摄像头采集、前处理、编码和VQC五大方面。

42a3606caabdf0b5c438ae289babea4d.png

首先介绍8K摄像头采集方案。由于USB3.0摄像头存在450 MB/s的传输速率上限,而8K原始YUV 420P码流每帧的数据量达到了47 M字节,照此估算视频帧率只能达到7~8fps,流畅度显然不能满足要求。目前我们采用的方案为从8K摄像头采集8K H.265或MJPEG压缩码流,视频规格为20Mbps@20fps。

从摄像头采集的数据在解码后将按照正常的上行Pipeline处理,下行端解码器会接收8K H.265码流进行解码。1V1 会议场景下,主播端会同时存在两路 8K 解码、一路 8K 编码,这对系统造成的压力较大。

eebdbcc8dc4954faf802e67928956c86.png

我们对上述问题进行了优化,改为向网络端直接发送摄像头采集的码流,此时摄像头既是视频源又是编码器,避免了反复编解码。但这对摄像头的硬件要求较高,需摄像头具备稳高质量的编码能力,并要保证摄像头编码器能够接收VQC模块的指令,调整编码参数。

因此我们使用Dshow在采集模块中加入了摄像头指令控制模块,基于Windows UVC Driver增加了可查询Control接口的Extension Unit,使采集模块能通过Extension Unit动态调整编码参数。同时我们还增加了IDR请求能力,使中途加入会议的用户能够快速接收I帧,显示画面。

86c3ac8c2858e5ea59e66690c51fc069.png

针对8K桌面采集我们目前采用高效率的DXGI方案,在指定硬件平台可实现8K 30fps视频采集,其他流程与基本的视频引擎Pipeline一致。

cfecbd4478f7ad5fc33a7e305f6dad14.png

接下来介绍我们针对8K桌面采集的优化。DXGI是微软推出的基于硬件驱动层的图形操作接口,可以支持不同图形库间的互操作。右侧为大致的采集流程,在创建D3DDevice后,利用IDXGIOutputDuplication接口的AcquireNextFrame函数获取屏幕画面,将Texture转为RGBA数据,再使用Libyuv 把 RGBA 转为 I420,并将其发送至编码器。

我们对红框圈出的两个环节进行了优化,第一是在调用AcquireNextFrame函数时注意延时参数控制,避免因时延过低导致出现大量重复帧,或是时延过高导致画面帧数不足。

第二是在RGBA数据转换时,由于8K RGBA数据量很大,直接将RGBA数据复制到前处理线程耗费的时间过长,因此我们进行了多线程优化,后续又发现使用Libyuv 直接将 RGBA 转到 I420 所需的时间更短,便改为采用这种方式。

c954211bacd37b30b647069790952824.png

接下来介绍视频编解码方面的优化,首先对于落地的硬件平台而言,8K软编软解是不可能的,需要考虑硬编硬解。其次在质量方面,H.264已经不能胜任4K/8K视频的编码,因此编码器改为使用H.265。最后是延时,由于8K编码对系统性能和延时的压力很大,因此要尽可能优化前处理流程,去掉不必要的环节,从而降低延时。

790042daef7fb0ce468a6b17235e6754.png

接下来介绍关于Windows端硬编硬解的优化,我们的SDK支持Nvidia、Intel和AMD三大厂商的硬件平台,最下层为基于不同平台抽象的硬编解码器,在此之上为BitrateAdjuster和BitstreamAdapter,用于动态平滑码率发送和过滤码率中额外的NALU。在引擎层会抽象不同的硬编解码器供SDK使用。

8b54b53a08c37a58a15073bd5bbdbc77.png

接下里介绍针对网络模块的优化。由于8K编解码的画质和码率都较高,很多传统针对1080P RTC码流的优化策略不再适用。

因此在拥塞控制方面我们采用自适应灵敏度来提升优质传输率;对于抗丢包优先使用ARQ,尽量减少使用FEC,防止恶性拥塞;在端到端时延的优化上采用高精度JitterBuffer控制,综合平衡抗性和时延。右图为优化效果的前后对比图,可以看到时延和卡顿率进一步降低,抗性和带宽利用率得到了提升。

f5e8f758fc9298199fbcd76d8d20c2ca.png

接下来介绍针对VQC模块的优化策略。VQC是视频引擎的质量控制模块,用于平衡RTC系统视频的清晰度、流畅度和延时三个质量指标,提升视频QoE。三个指标由上图中视频编码、QoS和VQS的互相作用决定。

QoS会依据网络状况动态评估适合的码率,将其分配至VQC。VQC 会依据QoS 的反馈动态调整视频模块的编码码率,同时也可依据编码器的QP反馈和系统负载率动态调整编码分辨率/帧率。其中分辨率最低可降至640x360,8K以上分辨率的帧率最低可降至20fps。

5709318c9aaeaba1c52b957aa7dd6123.png

接下来介绍关于Simulcast(大小流)的优化。考虑到网络状况和接收端的性能限制,服务端会同时发送一个大流和小流,接收端可以依据自身性能选择接收合适的视频流,服务端也可依据网络条件选择发送合适的流。我们针对小流的质量进行了优化,将小流分辨率从180p提升到360p,码率从120k提升到300k。

3b35f9b3a0e20fb3e43236d6455e16d2.png

接下来展示云信RTC方案在客户侧的落地效果。我们与浙江一家三甲医院达成了合作,上图为院方进行MDT会诊的实景照片。可以看到,院方借助超高清RTC系统可以实现细致的远程病理切片分析。

68e793303f3c3970b07f2fad31fa4147.png

上图展示了医院远程示教的实景效果,各地不同的医疗机构可以远程共同观看病理分析。除此之外还包括RTC方案还包括视频会议等应用场景。

155baaa1e9ba4cb6ad4b9416b74d6335.png

上图展示了 8K 摄像头的实测采集传输数据,其中编码器采用Intel集成显卡H.265硬编码器,上行分辨率为8K。可以看到,视频实际的上行帧率为20fps左右,这基本满足医院病理分析等相对静态场景的需求。视频实际上行码率为10Mbps左右。

d01b7644f761598b56843426d3521a3f.png

8K屏幕共享的实测结果与摄像头采集类似。

-04-

总结展望

c5f74c1956a0f75883683564c1006aca.png

接下来进行总结和展望。本次分享主要介绍了网易云信针对远程医疗提出的解决方案。8K RTC不仅是对分辨率的提升,也是对RTC视频管线的全面升级。我们在各方面进行了一些技术改进,介绍了落地过程中的技术挑战、解决方案以及最终实际的落地效果。

5b85e859456b7bfe6cd422751e322696.png

未来在技术优化方面,我们会进一步探索将摄像头/桌面采集的画面直接以Texture方式传输至硬编码器的方案。同时4K、8K RTC技术在云游戏、远程协作领域也有应用前景。

当前云信4K/8K RTC技术已成熟并在部分场景落地,我们将携手合作伙伴开拓更多极致高清的商业场景。我今天的分享就到这里,谢谢大家!


575a93efaf58d2aba81ee3dfe1f59b21.jpeg

扫描图中二维码或点击“阅读原文 

直通LiveVideoStackCon 2023深圳站 9折购票通道

相关文章:

网易云信4K 8K RTC助力远程医疗的技术实践

// 编者按:随着近年来国家关于缓解医疗资源分配不均的一系列政策出台,远程医疗作为平衡医疗资源分配的有力手段,目前正处于强劲发展阶段。网易云信运用超高清RTC视频技术助力医疗行业实现了远程高清视频病理分析和手术示教等能力。LiveVide…...

【排序算法】冒泡排序、插入排序、归并排序、希尔排序、选择排序、堆排序、快速排序

目录 几大排序汇总 1.冒泡排序 性能: 思路和代码: 2.插入排序 性能: 思路和代码: 3.归并排序 性能: 思路和代码: 4.希尔排序 性能: 思路和代码: 5.选择排序 性能: 思路和代码: 6.堆排序 性能: 思路和代码: topK问题 7.快速排序 性能: 思路和代码: 几大排…...

Linux学习笔记-应用层篇

1、Linux进程、线程概念/区别 Linux进程和线程是计算机系统中两种不同的资源分配和调度单位。 进程是计算机系统进行资源分配和调度的基本单位,也被认为是正在运行的程序。在面向线程的计算机结构中,进程是线程的容器。进程拥有独立的内存和系统资源&am…...

MySQL数据库的存储引擎

目录 一、存储引擎概念 二、存储引擎 2.1MyISAM 2.11MyISAM的特点 2.12MyISAM表支持3种不同的存储格式: 2.2 InnoDB 2.21InnoDB特点介绍 三、InnoDB与MyISAM 区别 四、怎么样选择存储引擎 五、查看存储引擎 六、查看表使用的存储引擎 七、修改存储引擎 …...

Linux-多路转接-epoll

epoll 接口认识epoll_createepoll_ctlepoll_wait epoll工作原理在内核中创建的数据结构epoll模型的一个完整工作流程 epoll工作模式LT-水平触发ET-边缘触发两种方式的对比 epoll的使用场景对于poll的改进惊群效应什么是惊群效应如何解决惊群效应原子操作/mutex/spinlock如何选择…...

Java面试被问了几个简单的问题,却回答的不是很好

作者:逍遥Sean 简介:一个主修Java的Web网站\游戏服务器后端开发者 主页:https://blog.csdn.net/Ureliable 觉得博主文章不错的话,可以三连支持一下~ 如有需要我的支持,请私信或评论留言! 前言 前几天参加了…...

概率论几种易混淆的形式

正态分布标准型 x − μ σ \frac{x - \mu}{\sigma} σx−μ​ 大数定律形式 P { X ≤ ∑ i 1 n x i − n μ n σ 2 } ∫ − ∞ X 1 2 π e − x 2 2 d x P\{X \le \frac{\sum_{i 1}^{n}x_i -n\mu}{\sqrt{n\sigma^2}} \} \int _{-\infty}^{X}\frac{1}{\sqrt{2\pi}}e^{-\fr…...

PyTorch数据增强后的结果展示

from PIL import Image import torch from torchvision import transformstrans transforms.Compose([transforms.ToTensor(), transforms.RandomErasing(p0.9, value 120, inplaceTrue)]) # 这里Compose是所做的变换img_path 02-56-45-060-1454-camra1.bmp img Image.open…...

指定程序在哪个GPU上运行

摘要: 当本地(或服务器)有个多个GPU时,需要指定程序在指定GPU上运行,需要做以下设置。 目录 一、在终端上指定GPU二、在程序中指定GPU三、系统变量指定GPU四、pytorch中指定GPU 一、在终端上指定GPU 在终端运行程序时…...

Linux CentOS7 vim多文件编辑

使用vim编辑多个文件,十分常用的操作。本文从打开、显示、切换文件到退出,进行简单讨论。 一、打开文件 1.一次打开多个文件 vim还没有启动的时候,在终端里输入vim file1 file2 … filen便可以打开所有想要打开的文件。 执行命令 vim fil…...

PAT甲级真题1153: 解码PAT准考证

🕺作者: 主页 我的专栏C语言从0到1探秘C数据结构从0到1探秘Linux菜鸟刷题集 😘欢迎关注:👍点赞🙌收藏✍️留言 🏇码字不易,你的👍点赞🙌收藏❤️关注对我真的…...

linux信号

title: linux信号 createTime: 2020-10-29 18:05:52 updateTime: 2020-10-29 18:05:52 categories: linux tags: SIGHUP 终止进程 终端线路挂断[喝小酒的网摘]http://blog.hehehehehe.cn/a/16999.htm SIGINT 终止进程 中断进程 SIGQUIT 建立CORE文件终止进程,并且生…...

JavaWeb开发-05-SpringBootWeb请求响应

一.请求 1.Postman 2.简单参数 ​ package com.wjh.controller;import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController;import javax.servlet.http.HttpServletRequest;/** 测试请求参数接受*/ R…...

Ubuntu下载

参考文档: 镜像文件:VMware下安装ubuntu 16.04(全步骤)_vmwaubuntu-16.04.4-desktop-amd64.iso_ST0new的博客-CSDN博客 vmware tools使用安装:VMware——VMware Tools的介绍及安装方法_William.csj的博客-CSDN博客 …...

Vue 的组件加载顺序和渲染顺序

1、结论先行 组件的加载顺序是自上而下的,也就是先加载父组件,再递归地加载其所有的子组件。 而组件渲染顺序是按照深度优先遍历的方式,也就是先渲染最深层的子组件,再依次向上渲染其父组件。 2、案例 下面是一个简单的示例代…...

leetcode Top100(17)矩阵置零

给定一个 m x n 的矩阵,如果一个元素为 0 ,则将其所在行和列的所有元素都设为 0 。请使用 原地 算法。 示例 1: 输入:matrix [[1,1,1],[1,0,1],[1,1,1]] 输出:[[1,0,1],[0,0,0],[1,0,1]]示例 2: 输入&…...

论文精读(2)—基于稀疏奖励强化学习的机械臂运动规划算法设计与实现(内含实现机器人控制的方法)

目录 1.作者提出的问题及解决方向 2.延深-用如何用强化学习对机器人进行控制 2.1思路 2.2DQN和DDPG在机器人控制中的应用 3.解决方案 3.1思路 3.2实验 3.3创新点 4.展望 1.作者提出的问题及解决方向 目的:使机械臂在非结构化环境下实现端到端的自主学习控制…...

快速安装keepalive

快速安装keepalive #安装 yum install keepalived -y# 查看版本: rpm -q -a keepalived#修改配置文件 vim /etc/keepalived.conf虚拟 ip :随意选一个,不被占用的ip即可。...

nginx实现反向代理实例

1 前言 1.1 演示内容 在服务器上访问nginx端口然后跳转到tomcat服务器 1.2 前提条件 前提条件:利用docker安装好nginx、tomcat、jdk8(tomcat运行需要jdk环境) 只演示docker安装tomcat: 默认拉取最新版tomcat docker pull t…...

使用Freemarker填充模板导出复杂Excel,其实很简单哒!

文章目录 1. 需求分析2. 对象生成3. 列表插值4. 另存xml格式化5. ftl修改6. 程序转化7. 犯的错误8. 总结 1. 需求分析 类似这样的一个表格 我们需要从数据库中查询对应的数据,将其汇总进该表格,并且可能还需要复制表格项,我这个案例中没有&a…...

windows环境下安装logstash同步数据,注册系统服务

windows环境下安装logstash同步数据,注册系统服务 此方法适用于Windows环境,同一个配置文件配置多个管道,并且配置系统服务,防止程序被杀进程 一、安装logstash (1)下载压缩包,解压后修改con…...

java服务内存说明及配置详解

java进程内存 JVM内存分布图: 【java进程内存】【堆外内存】 【jvm堆内存】 【堆外内存】 【Metaspace】 【Direct Memory】【JNI Memory】【code_cache】 … 堆外内存泄漏的排查在于【本地内存(Native Memory)】【Direct Memory】【JNI Memory】 一般…...

Mybatis-MyBatis的缓存

Mybatis-MyBatis的缓存 一、MyBatis的一级缓存二、MyBatis的二级缓存二级缓存的相关配置 三、MyBatis缓存查询的顺序 一、MyBatis的一级缓存 一级缓存是SqlSession级别的,通过同一个SqlSession查询的数据会被缓存,下次查询相同的数据,就 会从…...

计算机组成原理之硬件的基本组成,深入介绍两大计算机结构体系,从底层出发认识计算机。

大家好,欢迎阅读《计算机组成原理》的系列文章,本系列文章主要的内容是从零学习计算机组成原理,内容通俗易懂,大家好好学习吧!!! 更多的优质内容,请点击以下链接查看哦~~ ↓ ↓ ↓ …...

二十五、MySQL事务的四大特性和常见的并发事务问题

1、事务的四大特性 2、常见的并发事务问题 (1)并发事务问题分类: (2)脏读: 一个事务正在对一条记录做修改,在这个事务完成并提交前,这条记录的数据就处于不一致的状态;…...

辨析常见的医学数据分析(相关性分析回归分析)

目录 1 常见的三种分类结果? 2 什么是相关性分析? 相关性分析的结果怎么看? 3 什么是回归分析? 1)前提 2)常见的回归模型 4 对于存在对照组实验的医学病例如何分析? 1)卡方检验…...

SpringBoot项目中只执行一次的任务写法

SpringBoot项目中只执行一次的任务写法 有时候我们需要进行初始化工作,就说明只要进行一次的工作,那么,在Springboot项目中如何做到任务只进行一次呢 利用定时任务 在Spring Boot项目中,你可以使用Spring框架提供的Scheduled注解…...

TCK、TMS、TDI、TDO的含义

这四个信号是JTAG(Joint Test Action Group)界面的一部分。JTAG是一种用于测试和验证集成电路和印刷电路板的技术,也用于进行设备编程和调试。这四个信号分别是: TCK (Test Clock): 意义:测试时钟&#xff…...

R语言RSTAN MCMC:NUTS采样算法用LASSO 构建贝叶斯线性回归模型分析职业声望数据...

全文链接:http://tecdat.cn/?p24456 如果你正在进行统计分析:想要加一些先验信息,最终你想要的是预测。所以你决定使用贝叶斯(点击文末“阅读原文”获取完整代码数据)。 相关视频 但是,你没有共轭先验。你…...

【PowerShell】PowerShell的Core版本的额外配置

在PowerShell 7.1 安装完成后,默认情况下打开PowerShell 会直接进入到系统内置的PowerShell,如果希望通过远程连接或者PowerShell Web Access 进入到PowerShell 7环境的界面,就需要进行环境的再配置才能实现PowerShell 7.1 的环境连接。需要为外部的环境提供连接的话需要按照…...

网站备案名称更改/武汉seo公司出 名

首先先创建一个班学生的信息,并插入一些数据来解释用法:create table student(id int not null,name varchar(20) not null,chinese float(5,2) not null default 0.0,math float(5,2) not null default 0.0,english float(5,2) not null default 0.0);i…...

随州市住房和城乡建设委员会网站/企业官网

20165302 缓冲区溢出漏洞实验 1.实验简介 缓冲区溢出是指程序试图向缓冲区写入超出预分配固定长度数据的情况。这一漏洞可以被恶意用户利用来改变程序的流控制,甚至执行代码的任意片段。这一漏洞的出现是由于数据缓冲器和返回地址的暂时关闭,溢出会引起返…...

一键安装wordpress/深圳十大网络推广公司排名

在**Notepad**中执行列输入操作方法: 点击开始列输入操作的地方按住shiftAlt不放点击结束列输入操作的地方即可...

shopnc本地生活o2o网站系统/网站创建免费用户

Android美化之全局透明背景我们上次在《Android美化综述》中向大家简单的介绍了Android美化的大致脉络,相信看过的朋友都有一定的了解。今天我们就来看看一个实例——全局透明背景的实现方法。所谓全局背景,就是设置背景和其他等都是同一张图片&#xff…...

网站建设服务器/seo网络营销课程

du -sh*查看当前目录下的文件夹大小 u 命令 用途 概述磁盘使用。 语法 du [ -a | -s ] [ -k ] [ -m ] [ -g ][ -l ] [ -r ] [ -x ] [ -H | -L ][ File ... ] 描述 du命令显示用于文件的块的数量。如果指定的File参数实际上是一个目录,就要报…...

江西南昌建设厅网站/郑州网络营销与网站推广

一、目录结构详解: 以下是Tomcat默认装完以后的目录结构:/bin #存放各种平台下启动和关闭Tomcat的脚本文件; /conf #Tomcat的各种配置文件,最重要的是 server.xml; /lib #存…...