iPhone直播流技术

iPhone直播流技术


2024年3月4日发(作者:影驰gtx650显卡)

第I页

iPhone直播流技术

关键词:编码器 流转发 分段 流媒体

摘要:

随着通信业务的迅速发展,高端手机频繁推出。手机看电视被越来越多的人接受,手机电视(Mobile TV),就是利用具有操作系统和流媒体视频功能的智能手机以及现在支持HTTP或者RTSP的非智能机子都能观看电视的业务。现在主流手机以iPhone的ios操作系统,和支持Andriod系统的智能机为主。本文主要讨论iPhone手机进行直播过程,直播流的相关技术。

手机电视直播技术,即将电视直播信号接到编码设备,通过编码设备将直播频道的信号进行音视频编码,编码后的格式可以支持各手机适配的解码环境。并且通过编码设备将原有的SDI信号进行IP封装,使其可以再互联网中进行传输。遵照TCP、IP协议在互联网中对信号进行处理。并最终传递到流媒体服务器,通过流媒体服务器发布到互联网上,终端手机等设备通过链接流媒体地址进行直播流的播放。

第II页

目录

第一章 绪论 .................................................................................................................................... 1

1.1 iphone直播流技术概述 .................................................................................................... 1

1.2 HTTP live streaming架构 .................................................................................................... 1

第二章 服务器组件......................................................................................................................... 3

2.1 直播频道信号源接入 ........................................................................................................ 3

2.2 iPhone直播编码技术参数:............................................................................................. 4

2.3 iPhone输出设置 ................................................................................................................ 4

第三章 媒体流分段器 ..................................................................................................................... 5

3.1 播放列表文件 .................................................................................................................... 5

3.1.1标签介绍 .................................................................................................................. 6

3.1.2 实例......................................................................................................................... 7

3.2文件分段器 ......................................................................................................................... 8

第四章 分发组件............................................................................................................................. 9

4.1 Apache发布服务器设置 .................................................................................................... 9

4.1.1 安装Apache ........................................................................................................... 9

4.1.2 配置Apache ......................................................................................................... 10

第五章 客户端 .............................................................................................................................. 12

第六章 应用实际环境搭建 ........................................................................................................... 13

6.1 http live streaming结构 ................................................................................................... 13

6.2 服务器协同工作具体配置 .............................................................................................. 13

6.2.1 具体编码参数设置如下: ................................................................................... 14

6.2.2 Apache 发布服务器系统定制: .......................................................................... 14

6.2.3 直播数据流的接收 ............................................................................................... 17

参考文献 ........................................................................................................................................ 19

第1页

第一章 绪论

1.1 iphone直播流技术概述

手机电视直播,是三万融合的一个方面,现在已被大多数使用。手机电视直播技术也逐渐成熟起来。由于iPhone操作系统的独特性,iPhone手机直播技术异于其他系统。具有独特的一些技术流程。本文主要讨论一下iPhone直播过程中的一些相关技术实现过程。

目前较为常用的流媒体协议主要有 HTTP 渐进下载和基于 RTSP/RTP 的实时流媒体协议,这二种基本是完全不同的东西。HTTP它最初是苹果公司针对iPhone、iPod、iTouch和iPad等移动设备而开发的流。

我们可以看看 HTTP Live Streaming 是怎么样工作的。平时的直播技术中,播放模式中必须等待整个文件下载完才行,在 HLS 技术中 Web 服务器向客户端提供接近实时的音视频流。但在使用的过程中是使用的标准的 HTTP 协议,所以这时,只要使用 HLS 的技术,就能在普通的 HTTP 的应用上直接提供点播和直播。

HTTP Live Streaming(缩写是 HLS)是一个由苹果公司提出的基于HTTP的流媒体 网络传输协议。是苹果公司QuickTime X和iPhone软件系统的一部分。它的工作原理是把整个流分成一个个小的基于HTTP的文件来下载,每次只下载一些。当媒体流正在播放时,客户端可以选择从许多不同的备用源中以不同的速率下载同样的资源,允许流媒体会话适应不同的数据速率。在开始一个流媒体会话时,客户端会下载一个包含元数据的extended M3U (m3u8) playlist文件,用于寻找可用的媒体流。HLS只请求基本的HTTP报文,与实时传输协议(RTP)不同,HLS可以穿过任何允许HTTP数据通过的防火墙或者代理服务器。它也很容易使用内容分发网络来传输媒体流。

1.2 HTTP live streaming架构

HTTP Live媒体流由三部分组成:服务器组件,分发组件和客户端。

第2页

服务器组件:负责将输入的媒体流进行数字编码,并且以适合发布的格式进行封装,然后准备发布。

分发组件:由标准的Web服务器组成,负责接受客户端的请求并将准备好的媒体内容和相关资源发送到客户端。对于大规模部署,Edge网络或者其他内容分发网络可能会被使用。

客户端:负责请求合适的媒体内容,下载媒体资源,并将媒体内容重新组装,以连续的媒体流形式展现给用户。在iOS 3.0及以后版本的设备,安装了QuickTime X及以后版本的桌面计算机中已经内置了客户端。

在一个典型的配置中,硬件编码器接受音频–视频输入,并使用MPEG-4编码,输出MPEG-2 TS流,然后被分段软件划分为一系列简短的时间段并保存为媒体文件。这些媒体文件部署在Web服务器上。分段软件同时还创建并维护包含这些媒体文件引用的索引文件。索引文件的URL在Web服务器上发布。客户端读取索引文件,然后按顺序向服务器请求媒体文件并无停顿的显示它们。

一个简单的HTTP Live媒体流配置示例如图1-1所示。

图 1-1 基本配置

上图中详细表述了实现http live streaming功能所需要的步骤。

视频采集 ->编码器 -> 流分割 -> 普通 web 服务(索引文件和视频文件)

-> 客户端

第3页

内容准备的过程大约二种,一是视频采集,编码器首先将摄像机实时采集的音视频数据压缩编码为符合特定标准的音视频基本流,也可以拿编码完了的文件,有一点必须保证,就是一定要使用H.264视频和AAC音频,因为发明这个的是苹果公司,只支持这个。然后给这些封装成成为符合MPEG-2(MPEG 2 TS、MPEG2 PS之所以使用这个,主要是因为声音和视频会交织在一起,也会有关键帧来让视频可以直接播放).

流分割部分在这个中,比起 RTSP 之类和普通点播的最大不同,就是他会给

MPEG-2 分割成很多个 ts 的文件。分割过程大多是按时间来切,根据国外的资料,建议切 10s 一个的文件,如果码流高可以 5 秒一次。在分割还有一点不同,就是这时流分割器会生成一个含有指向这些小TS文件指针的索引文件

所以这个文件也必须在 web 服务器上,不能少。每多 10s 时,就会多一个 ts 文件,所以索引也会根着修改成最新的几段视频。

最后,这些切分了的小的一系列的 ts 文件,放到普通的 web 服务器中就行了。这时在 CDN 中也是一样,因为请求这些文件会使用标准的 HTTP 协议。索引文件后缀是.m3u8 ,索引文件采用扩展的M3U播放列表格式,其实就一文本。

第二章 服务器组件

服务器要求一个媒体编码器,这可以是现有的硬件,然后还需要一个将编码好的媒体内容分段并保存成文件的方法,这可以是软件如Apple提供的媒体流分段器。

媒体编码器

媒体编码器从音频视频设备接收实时信息,进行编码和封装。编码应该是客户端设备支持的编码集合之一,例如视频的H.264和音频的HE-AAC。目前,支持的发布格式是音频和视频的MPEG-2 TS流,或者只有音频的MPEG基本流。

编码器在本地网络上将MPEG-2 TS流发布到媒体流分段器。

2.1 直播频道信号源接入

iPhone的信号来源可以由很多种方式,主要概括一下几个方面:

第4页

视频源输入可以是SDI、AV、ASI MPEG2、IP MPEG 2、IP H.264等。IP方式输入不需要采集卡,其它方式输入需要采集卡;

编码设备一般有两种实现方式:

1)通用服务器+采集卡+编码/转码软件+iPhone封包+流推送软件;

2)专用编码器(内置采集卡+编码/转码软件+ iPhone +流推送软件);

2.2 iPhone直播编码技术参数:

1)视频:Extreme H.264 Baseline编码(CBR),音频MPEG-2-AAC

2)总码率(视频码率+音频码率):384Kbps

3)视频码率: 352Kbps

4)音频码率: 32Kbps(单声道)

5)声道:立体声或混合声

6)视频宽:320

7)视频高:240

8)视频帧率:25帧每秒

9)视频宽高比: 4:3

10)象素宽高比: 1:1

11)音频采样率(Hz):不低于22000

2.3 iPhone输出设置

-2 TS格式UDP协议组播输出到网络中,供转发服务器以及监看服务器可以随时拉流使用。广联目前采取这种方式。

2.也可以直接采用iPhone协议 HTTP Live Streaming 方式输出到发布服务器中。这种方式减少中间环节,但是对于发布服务器的压力比较大,而且对于流监看环节的实施比较困难。对于直播频道数量比较少的网络,这种方式还是比较适用的。

第5页

第三章 媒体流分段器

媒体流分段器通常是一个软件,从本地网络读入TS流并将它分成一系列相等时间的媒体文件。即使每段都是一个单独的文件,从连续媒体流中生成的视频文件仍然可以被无缝的重构。

分段器同时会创建一个包含各媒体文件引用的索引文件。每当分段器完成一个新的媒体文件,索引文件就会被更新。索引文件被用来确认媒体文件的可用性和位置。分段器也可以加密每个媒体段并创建一个密钥文件。

媒体分段被保存为.ts文件(MPEG-2媒体流),索引文件被保存为.M3U8文件,这是保存MP3播放列表的.m3u格式的一种扩展。

3.1 播放列表文件

播放列表必须被扩展自M3U 播放列表文件[M3U]。本文件通过定义的其他标记,来扩展M3U 文件格式。

一个M3U 播放列表是一个文本文件,由单独的行组成。行是被一个LF 字符或被一个LF 字符跟随的一个CR字符来终止。每行是一个URI,一片空白,或被注释字符'#'开始。URI标识被播放的媒体文件。空白行会被忽略。

注释字符'#'开始的行是评论或标签。 标签是带‘#EXT’开始的。其他所有以'#'开始的行都是注释,应该被忽略。

扩展的M3U 文件格式定义了两个标签:EXTM3U 和EXTIN F。一个扩展的M3U

文件是通过第一行来区别于一个基本的M3U 文件的,这行必须 #EXTM3U。

EXTINF 是一个记录的标记,它描述了通过如下的URI 标识的媒体文件。每个媒体文件的URI必须由一个EXTINF 标记开始。它的格式是:

#EXTINF: </p><p style="text-indent: 2em;";>“时间”是一个整数,它指定的媒体文件的时间,以秒计。持续时间应该是四舍五入到最接近的整数。逗号后,该行的其余部分是媒体文件的标题。 </p><p style="text-indent: 2em;";>第6页 </p><p style="text-indent: 2em;";>3.1.1标签介绍 </p><p style="text-indent: 2em;";>这个文档定义了7个新的标签:EXT-X-TARGETDURATION,EXT-X-MEDIA-SEQUENCE,EXT-X-KEY,EXT-X-PROGRAM-DATE-TIME,EXT-X-ALLOW-CACHE,EXT-X-STREAM-INF,和EXT-X ENDLIST。 </p><p style="text-indent: 2em;";>-X-TARGETDURATION </p><p style="text-indent: 2em;";>EXT-X-TARGETDURATION 标签表示将被添加到主演示的下一个媒体文件的大致时间。它必须出现在播放列表文件中。它的格式是: </p><p style="text-indent: 2em;";>#EXT-X-TARGETDURATION:<seconds> </p><p style="text-indent: 2em;";>媒体文件的实际时间可能会略有不同目标时间。 </p><p style="text-indent: 2em;";>2.EXT-X-MEDIA-SEQUENCE </p><p style="text-indent: 2em;";>在播放列表中的每个媒体文件的URI 有一个独特的序列号。 一个URI 的序列号是等同于前面的URI 序列号加一。EXT-X-MEDIA-SQUENCE 标签指示了在一个播放列表中出现的第一个URI 的序列号。它的格式是: </p><p style="text-indent: 2em;";>#EXT-X-MEDIA-SQUENCE:<number> </p><p style="text-indent: 2em;";>如果该播放列表文件中不包含一个EXT-X-MEDIA-SQUENCE 标签,那么在播放列表中的第一个URI 的序列号应被认为是1。 </p><p style="text-indent: 2em;";>3. EXT-X-KEY </p><p style="text-indent: 2em;";>媒体文件可能被加密(encrypt)。EXT-X-KEY 标记提供必要的信息来解密(decrypt)它后面的媒体文件。它的格式是: </p><p style="text-indent: 2em;";>#EXT-X-KEY:METHOD=<method> [,URI ="<URI>"] </p><p style="text-indent: 2em;";>该METHOD 参数指定的加密方法。URI 参数,如果存在,指定如何获取key。 </p><p style="text-indent: 2em;";>一个新的EXT-X-KEY 取代任何先前的EXT-X-KEY。 </p><p style="text-indent: 2em;";>如果没有EXT-X-KEY 标记,那么媒体文件是不加密的。 </p><p style="text-indent: 2em;";>对于键(key)文件的格式,看第5节,同时第5.1节,第6.1.2节和第6.2.5节有关于媒体文件加密的其他信息。 </p><p style="text-indent: 2em;";>4.EXT-X-PROGRAM-DATE-TIME </p><p style="text-indent: 2em;";>EXT-X-PROGRAM-DATE-TIME 标记用一个决定的日期和/或时间指示了下一个媒体文件的开始。日期/时间表示是ISO/IEC 8601:2004 [ISO_8601]。例如: </p><p style="text-indent: 2em;";>#EXT-X-PROGRAM-DATE-TIME:<YYYY-MM-DDThh:mm:ss> </p><p style="text-indent: 2em;";>第7页 </p><p style="text-indent: 2em;";>5.EXT-X-ALLOW-CACHE </p><p style="text-indent: 2em;";>EXT-X-ALLOW-CACHE 标记,指明用户端是否可以缓存下载的媒体文件以供日后重播。它的格式是: </p><p style="text-indent: 2em;";>#EXT-X-ALLOW-CACHE:<YES|NO> </p><p style="text-indent: 2em;";>6.EXT-X-ENDLIST </p><p style="text-indent: 2em;";>的EXT-X-ENDLIST 标记,表示没有更多的媒体文件将被添加到播放列表文件。它的格式是: </p><p style="text-indent: 2em;";>#EXT-X-ENDLIST </p><p style="text-indent: 2em;";>7.EXT-X-STREAM-INF </p><p style="text-indent: 2em;";>EXT-X-STREAM-INF 标记,表明在播放列表文件中的下一个URI 标识为另一个播放列表文件。它的格式是: </p><p style="text-indent: 2em;";>#EXT-X-STREAM-INF:[attribute=value] [,attribute=value]*<URI> </p><p style="text-indent: 2em;";>以下属性被定义为EXT-X-STREAM-INF 标签: </p><p style="text-indent: 2em;";>BANDWIDTH=<n> </p><p style="text-indent: 2em;";>其中n 是一个近似的流比特率的上约束,表示为比特每秒。 </p><p style="text-indent: 2em;";>PROGRAM-ID=<i> </p><p style="text-indent: 2em;";>其中i 是一个数字,唯一标识在播放列表文件的范围内的一个特定的介绍。 </p><p style="text-indent: 2em;";>一个播放列表文件可能含有带有相同的PROGRAM-ID 的多个EXT-X-STREAM-INF 的URIs 来描述同样呈现的不同流。 </p><p style="text-indent: 2em;";>注意:因为索引文件格式是.m3u格式的扩展,并且系统也支持.mp3的音频文件,所以客户端也兼容传统的MP3播放列表。 </p><p style="text-indent: 2em;";>3.1.2 实例 </p><p style="text-indent: 2em;";>下面是一个非常简单的.M3U8文件示例,该示例包含三个未加密10秒钟媒体文件: </p><p style="text-indent: 2em;";>#EXTM3U </p><p style="text-indent: 2em;";>#EXT-X-MEDIA-SEQUENCE:0 </p><p style="text-indent: 2em;";>第8页 </p><p style="text-indent: 2em;";>#EXT-X-TARGETDURATION:10 </p><p style="text-indent: 2em;";>#EXTINF:10, </p><p style="text-indent: 2em;";>/#EXTINF:10, </p><p style="text-indent: 2em;";>/#EXTINF:10, </p><p style="text-indent: 2em;";>/#EXT-X-ENDLIST </p><p style="text-indent: 2em;";> </p><p style="text-indent: 2em;";>索引文件可能会包含密钥文件的URL和可切换的索引文件以支持不同的带宽。 </p><p style="text-indent: 2em;";>3.2文件分段器 </p><p style="text-indent: 2em;";>如果您已经有媒体文件,且该媒体文件使用了支持的编解码器编码,您可以使用文件分段器来将它封装成MPEG媒体流并划分成相等长度的时间段(如果文件已经封装在MPEG-2 TS流中,文件分段器将会略过这步)。文件分段器允许您使用利用现有的视频和音频通过HTTP Live媒体流来提供视频点播。文件分段器完成媒体流分段器同样的任务,但是是以文件而不是媒体流为输入。 </p><p style="text-indent: 2em;";>利用medianstreamsegmenter获取ts流并进行分片的设置 </p><p style="text-indent: 2em;";>首先将软件默认安装在linux的/usr/bin下。 </p><p style="text-indent: 2em;";>具体使用方法: </p><p style="text-indent: 2em;";> /usr/bin/mediastreamsegmenter -s 3 -t 5 -D -f /usr/frank/stream </p><p style="text-indent: 2em;";>127.0.0.1:8000 </p><p style="text-indent: 2em;";>判断是否成功分片:如果终端显示 : Finalized 存储路径 file </p><p style="text-indent: 2em;";>,则说明分片成功了。 </p><p style="text-indent: 2em;";>第9页 </p><p style="text-indent: 2em;";>说明: </p><p style="text-indent: 2em;";>-s 3 设定index文件中记录几个分片。 </p><p style="text-indent: 2em;";>-t 5 设定多长时间(秒)产生一个分片,默认为10秒。 </p><p style="text-indent: 2em;";>-D 删除过期的分片文件 </p><p style="text-indent: 2em;";>-f /usr/frank/stream设置存储分片文件和index文件的文件夹 </p><p style="text-indent: 2em;";>127.0.0.1:8000 设置获取ts流的地址 </p><p style="text-indent: 2em;";>第四章 分发组件 </p><p style="text-indent: 2em;";>分发系统可以是一个Web服务器或者Web缓存系统,基于HTTP协议发布媒体文件和索引文件。不需要定制的服务器模块,只需要对Web服务器进行很少的配置。 </p><p style="text-indent: 2em;";>推荐的配置通常只限于指定.M3U8文件和.ts文件的MIME类型关联。 </p><p style="text-indent: 2em;";>文件扩展名 </p><p style="text-indent: 2em;";>MIME类型 </p><p style="text-indent: 2em;";>.M3U8 </p><p style="text-indent: 2em;";>application/x-mpegURL或者L </p><p style="text-indent: 2em;";>.ts video/MP2T </p><p style="text-indent: 2em;";>调整.M3U8文件的存活时间属性(Time-to-Live)对于下载流的Web缓存机制来说可能是必须的,因为这些文件会被频繁的覆盖,每个请求下载的应该是最新版本。 </p><p style="text-indent: 2em;";>4.1 Apache发布服务器设置 </p><p style="text-indent: 2em;";>4.1.1 安装Apache </p><p style="text-indent: 2em;";>下载地址:/ </p><p style="text-indent: 2em;";>1. 安装Apache </p><p style="text-indent: 2em;";># tar zxvf </p><p style="text-indent: 2em;";>第10页 </p><p style="text-indent: 2em;";># cd httpd-2.2.11 </p><p style="text-indent: 2em;";># ./configure --prefix=/usr/local/apache --enable-so </p><p style="text-indent: 2em;";>//编译时加上加载模块参数--enable-so </p><p style="text-indent: 2em;";># make </p><p style="text-indent: 2em;";># make install </p><p style="text-indent: 2em;";> </p><p style="text-indent: 2em;";>2. 配置系统启动时自动启动Apache服务。 </p><p style="text-indent: 2em;";># vi /etc/rc.d/ </p><p style="text-indent: 2em;";> //在上加入一行/usr/local/apache/bin/apachectl –k </p><p style="text-indent: 2em;";>start。 </p><p style="text-indent: 2em;";> </p><p style="text-indent: 2em;";> </p><p style="text-indent: 2em;";>4.1.2 配置Apache </p><p style="text-indent: 2em;";>1. 修改文件 </p><p style="text-indent: 2em;";># vi /usr/local/apache/conf/ </p><p style="text-indent: 2em;";>1) 设置根目录的路径 </p><p style="text-indent: 2em;";>根目录是指Apache存放配置文件和日志文件的目录,配置参数为ServerRoot,默认位于“/usr/local/apache”。命令如下: </p><p style="text-indent: 2em;";> </p><p style="text-indent: 2em;";>2) 设置监听IP地址及端口号 </p><p style="text-indent: 2em;";>默认侦听本机所有IP地址的TCP80端口,命令如下: </p><p style="text-indent: 2em;";>Listen 80 </p><p style="text-indent: 2em;";>第11页 </p><p style="text-indent: 2em;";>用户也可以按自己的需求,使用多个Listen语句在多个地址和端口上侦听客户端请求。比如: </p><p style="text-indent: 2em;";>Listen 192.168.99.9:80 </p><p style="text-indent: 2em;";>Linsten 172.16.0.20:8080 </p><p style="text-indent: 2em;";>3) 设置系统管理员E-mail </p><p style="text-indent: 2em;";>使用ServerAdmin参数设置管理员E-mail,比如管理员的Email地址为root@: </p><p style="text-indent: 2em;";># </p><p style="text-indent: 2em;";>ServerAdmin root@ </p><p style="text-indent: 2em;";> </p><p style="text-indent: 2em;";>4) 设置服务器主机的名称 </p><p style="text-indent: 2em;";>参数ServerName用来设置服务器的主机名称,如果没有域名则填入服务器的IP地址,比如服务器的IP地址为192.168.99.9: </p><p style="text-indent: 2em;";># </p><p style="text-indent: 2em;";>ServerName 192.168.99.9 </p><p style="text-indent: 2em;";> </p><p style="text-indent: 2em;";>5) 设置主目录的路径 </p><p style="text-indent: 2em;";>用户可以使用参数DocumentRoot配置服务器主目录默认路径,比如,主目录路径为: </p><p style="text-indent: 2em;";>DocumentRoot “/usr/local/apache/htdocs” </p><p style="text-indent: 2em;";>主路径主要用来存放分片服务器的ts分片文件以及m3u8引导文件。例如我们在htdocs目录下建立文件夹iPhone31并将分片文件以及index.m3u8文件存在31文件夹中。 </p><p style="text-indent: 2em;";> </p><p style="text-indent: 2em;";>6)测试: </p><p style="text-indent: 2em;";>打开浏览器,输入地址:192.168.99.9,可以打开站点了: </p><p style="text-indent: 2em;";>第12页 </p><p style="text-indent: 2em;";> </p><p style="text-indent: 2em;";>目前为止iPhone手机直播发布服务器就已经配置完成了。 </p><p style="text-indent: 2em;";>第五章 客户端 </p><p style="text-indent: 2em;";>客户端从获取索引文件开始,并基于URL来标识一个媒体流。索引文件指定了可用媒体文件的位置,解密的密钥,以及可切换的媒体流。对于选定的媒体流,客户端按顺序下载每个可用的媒体文件。每个文件包含媒体流的一个连续的段。一旦足够的数据下载完毕,客户端开始向用户播放重新组合的媒体流。 </p><p style="text-indent: 2em;";>客户端负责获取解密密钥,验证用户,或者按需要显示用户验证和解密媒体文件的用户界面。 </p><p style="text-indent: 2em;";>这个过程将一直重复直到遇到索引文件中的#EXT-X-ENDLIST标签。如果没有遇到#EXT-X-ENDLIST 标签,则认为该索引文件是正在进行的广播的一部分,客户端会周期性的重新加载新的索引文件。客户端会在更新后的索引文件中查找新的媒体文件以及加密密钥并将这些URL加到播放列表中。 </p><p style="text-indent: 2em;";>我们现在可以通过用手机或者VLC软件进行拉流测试。通过链接地址栏输入:http://192.168.99.9:80/iPhone/31/index.m3u8则可以播放我们存在这里的直播流文件。或者利用 </p><p style="text-indent: 2em;";>在iPhone终端的safari中输入此链接也可以进行播放。 </p><p style="text-indent: 2em;";>第13页 </p><p style="text-indent: 2em;";>第六章 应用实际环境搭建 </p><p style="text-indent: 2em;";>6.1 http live streaming结构 </p><p style="text-indent: 2em;";>HTTP自适应流技术是一种能够提高在IP网络上传输流式内容的视频体检质量技术。该技术使用基于HTTP的纯Web机制,由客户端应用程序按顺序请求组成媒体流的大小文件块序列。这种方法最重要的创新是对相同的视频内容提供多码率的备份,允许客户端播放器在这些不同码率之间动态、无缝的切换。而且切换过程中不需要服务器干预,由客户端负责实现如何选择最合适的备份。目前使用HTTP自适应流技术的主要有微软公司的Smooth Streaming、苹果公司提出的HTTP Live Streaming以及Adobe公司HTTP Dynamic Streaming技术。其中Smooth </p><p style="text-indent: 2em;";>Streaming必须使用微软公司的IIS服务器,而HTTP Live Streaming只需要普通的Web服务器。HTTP Dynamic Streaming比较特殊,使用基于HTTP协议的RTMP协议,要使用专门的服务器,支持音视频格式比较多。 </p><p style="text-indent: 2em;";>Envivio编码器是可以编码适配iPhone手机的直播流,因为envivio编码器可以输出http live Streaming协议,所以envivio编码器编码出的直播流可以直接发布到发布服务器,只需要将envivio编码器的部分协议模块装载如apache服务器的配置文件中便可以与apahce发布服务器可直接实现iPhone的直播流发布。因为iphone网络接入为NET方式接入,在进行iPhone手机电视直播时候,可以采取利用wifi接入的方式。Wifi则可以接受码率较高的直播流。为了达到这一目的,我们在利用envivio编码器进行直播编码的时候,可以将同一个频道同时编码出不同码率的多路流,采用码率自适应的方式,即可适配不同网络条件下观看手机电视获得更好体验。之前已经搭建过http live streaming直播环境。Apache发布服务器采用windows的操作系统来搭建。 </p><p style="text-indent: 2em;";>6.2 服务器协同工作具体配置 </p><p style="text-indent: 2em;";>需要用到envivio编码器一台,一台windows操作系统的服务器,一台装有VLC软件的终端PC机或者是iPhone手机终端。利用envivio编码器产生直播源,将直播信号接入envivio编码器,并按照iPhone手机电视直播编码参数进行编</p><p style="text-indent: 2em;";>第14页 </p><p style="text-indent: 2em;";>码参数的设置,为了获取更好的直播体验,我们采用了码率自适应的方式,在编码器端同时编码三种码率即384Kbps,256 Kbps,512 Kbps。 </p><p style="text-indent: 2em;";>6.2.1 具体编码参数设置如下: </p><p style="text-indent: 2em;";> </p><p style="text-indent: 2em;";>音频统一采用32 Kbps的码率,采用44100HZ的采样率。输出采用了http </p><p style="text-indent: 2em;";>live streaming协议,输出的直播流直接进行了TS流文件切片,并将切片文件与生成的引导文件同时发布到设置的输出目录中。 </p><p style="text-indent: 2em;";> </p><p style="text-indent: 2em;";>6.2.2 Apache 发布服务器系统定制: </p><p style="text-indent: 2em;";>首先将apache软件安装在此windows操作系统上。之后执行以下操作: </p><p style="text-indent: 2em;";>解压缩附件文件,并拷贝到C盘根目录,如:c:iliveTV. </p><p style="text-indent: 2em;";>进入:C:Program FilesApache Software FoundationApache2.2conf </p><p style="text-indent: 2em;";>目录,备份现有的文件,并用附件的文件替代以前的文件。 </p><p style="text-indent: 2em;";>重新启动Apache服务,使新的 文件生效. </p><p style="text-indent: 2em;";>新的的默认http端口为:8084,你可以更改文件,使其端口为你所需要的端口。更改地址:第46行 Listen 80 ,更改后需要重启Apache服务。 </p><p style="text-indent: 2em;";>检测该Apache服务是否正常,可以用IE登陆到如下地址: url = </p><p style="text-indent: 2em;";>localhost:80/, 如果你看到如下界面,则表示安装Apache服务成功,否则就需要检查相关配置。 </p><p style="text-indent: 2em;";>第15页 </p><p style="text-indent: 2em;";> </p><p style="text-indent: 2em;";> </p><p style="text-indent: 2em;";>在C:Program FilesApache Software FoundationApache2.2htdocs 目录下,建立一个« iPhone 100»目录,用于接收4CasterC4打出的http TS 流。 </p><p style="text-indent: 2em;";>并确保该« iPhone100 »目录具有可写权限。 </p><p style="text-indent: 2em;";>在4CasterC4编码器上,配置如下发布点: </p><p style="text-indent: 2em;";><apache-IP-address>:80/iPhone/100 </p><p style="text-indent: 2em;";>(注意:需要在4CasterC4系统配置中,配置相应的Credentials,如下图:) </p><p style="text-indent: 2em;";> </p><p style="text-indent: 2em;";>注:用户名及密码为PC登录的用户名及密码。 </p><p style="text-indent: 2em;";>启动4CasterC4的该Profile的编码业务,如果20秒内没有任何告警信息。说明编码器推送流成功。同时再检查一下« iPhone100 »目录,看是否用相应的文件生成。如下图: </p><p style="text-indent: 2em;";>第16页 </p><p style="text-indent: 2em;";> </p><p style="text-indent: 2em;";>可以看到当envivio编码器开始编码时候,在apache发布服务器的接收目录中,同时生成了01.m3u8, 02.m3u8, 03.m3u8, index.m3u8四个引导文件。内容分别如下: </p><p style="text-indent: 2em;";> </p><p style="text-indent: 2em;";>三个引导文件分别引导三路直播流切片文件,即从编码器设置的三路编码参数生成。 </p><p style="text-indent: 2em;";>总引导文件内容包含三路直播流生成的三个m3u8文件,当终端连接此地址时候,根据网络环境情况,选取其中的某个m3u8文件进行播放。 </p><p style="text-indent: 2em;";>检测该内容是否可以能够用iPhone/iPad进行接收: </p><p style="text-indent: 2em;";>方法1 使用以太网连接以太Mac OS + Quicktime播放器或者是VLC2.0以上版本也可以接收http协议的直播流。 </p><p style="text-indent: 2em;";>方法2 使用iPhone/iPad 连接到同一网络的wifi系统内,使用Safari, 并键入如下地址:<apache-IP-address>:80/iPhone/100/index.m3u8 </p><p style="text-indent: 2em;";>第17页 </p><p style="text-indent: 2em;";> </p><p style="text-indent: 2em;";>6.2.3 直播数据流的接收 </p><p style="text-indent: 2em;";> </p><p style="text-indent: 2em;";>这里采用VLC2.0以上的版本进行测试,低于2.0的版本不支持http协议播放。在这里我们只需要打开VLC的网络串流,在地址栏输入:192.168.6.16/iPhone/100/index.m3u8这个地址点击播放就可以播放我们测试推出的直播流。一下为测试播放直播流时候得截图。 </p><p style="text-indent: 2em;";> </p><p style="text-indent: 2em;";>为了便于分析对于所拉取直播流的相关媒体信息,利用VLC录制一段直播流: </p><p style="text-indent: 2em;";> </p><p style="text-indent: 2em;";>第18页 </p><p style="text-indent: 2em;";>可以看到这里VLC所取流为所编码的最高码率512Kbps,加上网络开销会达到截图中的数据总量。因为我们应用PC机利用软件进行播放测试,网络条件比较好,所以会选择比较高的码率进行播放。若是在网络条件比较差的环境下进行播放,则会自动切换到384Kbps和256Kbps进行播放。 </p><p style="text-indent: 2em;";> </p><p style="text-indent: 2em;";>第19页 </p><p style="text-indent: 2em;";>参考文献 </p><p style="text-indent: 2em;";>[1] 张顺利.移动流媒体业务在3G通信时代的应用.软件导刊,2009,(9);120-122 </p><p style="text-indent: 2em;";>[2] 谢希仁.计算机网络(第四版).北京:电子工业出版社,2003.380-381 </p><p style="text-indent: 2em;";>[3] 孙毅,林涛,林争辉.新一代视频编码标准H.264/AVC的特点及应用.广播电视信息,2006,12:67-68 </p><p style="text-indent: 2em;";>[4] Live ,Internet-Draft </p><p style="text-indent: 2em;";>draft-pantos-HTTP-live-streamming-05,2010 </p><p style="text-indent: 2em;";>[5] ISO/IEC 14496-10 and ITU-T Rec.H.264:Advanced video coding,2005 </p><p style="text-indent: 2em;";>[6] Thomas Schierl,Yago Sanchez de la Fuente,Ralf Globisch et ty-based </p><p style="text-indent: 2em;";>Media Delivery using SVC with RTP and HTTP edia Tools and </p><p style="text-indent: 2em;";>Applications,2010,49(3):457-476 </p></div><br><p><h2></h2></p><div class=entry-copyright><p> 发布者:admin,转转请注明出处:<span>http://www.yc00.com/num/1709525438a1633783.html</span></p></div></div><div class=entry-tag><a href="/tag/146755.html" rel=tag>文件</a><a href="/tag/94901.html" rel=tag>服务器</a><a href="/tag/308507.html" rel=tag>直播</a><a href="/tag/616471.html" rel=tag>媒体文件</a></div><div class=entry-bar><div class="linxie7ede2-1841entry-bar-inner clearfix"><div class="linxie7ede2-1841author pull-left"><a target=_blank href="/user/1.html" class="avatar"><img alt="admin" src="/upload/avatar/000/1.png?1687492101" class='avatar avatar-60 photo' height=60 width=60><span class=author-name>admin</span></a></div><div class="linxie7ede2-1841info pull-right"><div class="linxie7ede2-1841info-item meta"><a class=meta-item href=#comments><i class="wpcom-icon wi"><svg aria-hidden=true><use xlink:href=#wi-comment></use></svg></i><span class=data>0</span></a></div><div class="linxie7ede2-1841info-item share"><a class="meta-item wechat" data-share=wechat target=_blank rel=nofollow href=#><i class="wpcom-icon wi"><svg aria-hidden=true><use xlink:href=#wi-wechat></use></svg></i></a><a class="meta-item weibo" data-share=weibo target=_blank rel=nofollow href=#><i class="wpcom-icon wi"><svg aria-hidden=true><use xlink:href=#wi-weibo></use></svg></i></a><a class="meta-item qq" data-share=qq target=_blank rel=nofollow href=#><i class="wpcom-icon wi"><svg aria-hidden=true><use xlink:href=#wi-qq></use></svg></i></a><a class="meta-item qzone" data-share=qzone target=_blank rel=nofollow href=#><i class="wpcom-icon wi"><svg aria-hidden=true><use xlink:href=#wi-qzone></use></svg></i></a></div><div class="linxie7ede2-1841info-item act"><a href=javascript:; id=j-reading><i class="wpcom-icon wi"><svg aria-hidden=true><use xlink:href=#wi-article></use></svg></i></a></div></div></div></div></div><div class=entry-related-posts><h3 class="entry-related-title">相关推荐</h3><ul class="entry-related cols-3 post-loop post-loop-default"><li class="item "><div class=item-img><a class=item-img-inner href="/web/1754951937a5220206.html" title="【免费下载】 RHEL 7.9 官方镜像ISO文件下载" target="_blank"><img width=480 height=300 src="/view/template/justnews/img/lazy-480x300.png" class="attachment-default size-default wp-post-image j-lazy" alt="【免费下载】 RHEL 7.9 官方镜像ISO文件下载" decoding=async data-original="/view/img/nopic.png"></a><a class=item-category href="/web" target=_blank>网站建设</a></div><div class=item-content><h2 class="item-title"><a href="/web/1754951937a5220206.html" target=_blank rel=bookmark>【免费下载】 RHEL 7.9 官方镜像ISO文件下载</a></h2><div class=item-excerpt><p>RHEL 7.9 官方镜像ISO文件下载 【下载地址】RHEL7.9官方镜像ISO文件下载分享 RHEL 7.9 官方镜像ISO文件下载本仓库提供了一个资源文件的下载&#xff0c;该文件为RHEL 7.9的官方镜像ISO文件</p></div><div class=item-meta><div class="item-meta-li author"><a target=_blank href="/user/1.html" class="avatar j-user-card"><img alt="admin" src="/upload/avatar/000/1.png?1687492101" class='avatar avatar-60 photo' height=60 width=60><span>admin</span></a></div><span class="item-meta-li date">1月前</span><div class=item-meta-right><span class="item-meta-li views" title="阅读数"><i class="wpcom-icon wi"><svg aria-hidden=true><use xlink:href=#wi-eye></use></svg></i>20</span><span class="item-meta-li comments" title=评论数><i class="wpcom-icon wi"><svg aria-hidden=true><use xlink:href=#wi-comment></use></svg></i>0</span></div></div></div></li><li class="item "><div class=item-img><a class=item-img-inner href="/web/1754952661a5220356.html" title="【亲测免费】 WindowsServer原生镜像ISO下载:高效、安全的服务器操作系统选择" target="_blank"><img width=480 height=300 src="/view/template/justnews/img/lazy-480x300.png" class="attachment-default size-default wp-post-image j-lazy" alt="【亲测免费】 WindowsServer原生镜像ISO下载:高效、安全的服务器操作系统选择" decoding=async data-original="/view/img/nopic.png"></a><a class=item-category href="/web" target=_blank>网站建设</a></div><div class=item-content><h2 class="item-title"><a href="/web/1754952661a5220356.html" target=_blank rel=bookmark>【亲测免费】 WindowsServer原生镜像ISO下载:高效、安全的服务器操作系统选择</a></h2><div class=item-excerpt><p>WindowsServer原生镜像ISO下载&#xff1a;高效、安全的服务器操作系统选择 【下载地址】WindowsServer原生镜像ISO下载分享 本仓库提供了一个WindowsServer原生镜像ISO文件的下载。该镜像文件</p></div><div class=item-meta><div class="item-meta-li author"><a target=_blank href="/user/1.html" class="avatar j-user-card"><img alt="admin" src="/upload/avatar/000/1.png?1687492101" class='avatar avatar-60 photo' height=60 width=60><span>admin</span></a></div><span class="item-meta-li date">1月前</span><div class=item-meta-right><span class="item-meta-li views" title="阅读数"><i class="wpcom-icon wi"><svg aria-hidden=true><use xlink:href=#wi-eye></use></svg></i>24</span><span class="item-meta-li comments" title=评论数><i class="wpcom-icon wi"><svg aria-hidden=true><use xlink:href=#wi-comment></use></svg></i>0</span></div></div></div></li><li class="item "><div class=item-img><a class=item-img-inner href="/web/1754958099a5221539.html" title="在ubuntu中恢复误删除的文件" target="_blank"><img width=480 height=300 src="/view/template/justnews/img/lazy-480x300.png" class="attachment-default size-default wp-post-image j-lazy" alt="在ubuntu中恢复误删除的文件" decoding=async data-original="/view/img/nopic.png"></a><a class=item-category href="/web" target=_blank>网站建设</a></div><div class=item-content><h2 class="item-title"><a href="/web/1754958099a5221539.html" target=_blank rel=bookmark>在ubuntu中恢复误删除的文件</a></h2><div class=item-excerpt><p>1、安装 TestDisk 在 Ubuntu 上&#xff0c;可以使用以下命令安装 TestDisk&#xff1a; sudo apt-get install testdisk2、查询你删除的文件所在那个分区 #查询分</p></div><div class=item-meta><div class="item-meta-li author"><a target=_blank href="/user/1.html" class="avatar j-user-card"><img alt="admin" src="/upload/avatar/000/1.png?1687492101" class='avatar avatar-60 photo' height=60 width=60><span>admin</span></a></div><span class="item-meta-li date">1月前</span><div class=item-meta-right><span class="item-meta-li views" title="阅读数"><i class="wpcom-icon wi"><svg aria-hidden=true><use xlink:href=#wi-eye></use></svg></i>26</span><span class="item-meta-li comments" title=评论数><i class="wpcom-icon wi"><svg aria-hidden=true><use xlink:href=#wi-comment></use></svg></i>0</span></div></div></div></li><li class="item "><div class=item-img><a class=item-img-inner href="/web/1754958370a5221593.html" title="Windows数据恢复大师:文件恢复工具.zip" target="_blank"><img width=480 height=300 src="/view/template/justnews/img/lazy-480x300.png" class="attachment-default size-default wp-post-image j-lazy" alt="Windows数据恢复大师:文件恢复工具.zip" decoding=async data-original="/view/img/nopic.png"></a><a class=item-category href="/web" target=_blank>网站建设</a></div><div class=item-content><h2 class="item-title"><a href="/web/1754958370a5221593.html" target=_blank rel=bookmark>Windows数据恢复大师:文件恢复工具.zip</a></h2><div class=item-excerpt><p>本文还有配套的精品资源&#xff0c;点击获取简介&#xff1a;本文件恢复工具.zip是为Windows操作系统设计的&#xff0c;它提供了一个全面的解决方案来恢复因意外删除而丢失的文件和文件夹。通过扫描</p></div><div class=item-meta><div class="item-meta-li author"><a target=_blank href="/user/1.html" class="avatar j-user-card"><img alt="admin" src="/upload/avatar/000/1.png?1687492101" class='avatar avatar-60 photo' height=60 width=60><span>admin</span></a></div><span class="item-meta-li date">1月前</span><div class=item-meta-right><span class="item-meta-li views" title="阅读数"><i class="wpcom-icon wi"><svg aria-hidden=true><use xlink:href=#wi-eye></use></svg></i>22</span><span class="item-meta-li comments" title=评论数><i class="wpcom-icon wi"><svg aria-hidden=true><use xlink:href=#wi-comment></use></svg></i>0</span></div></div></div></li><li class="item "><div class=item-img><a class=item-img-inner href="/web/1754974583a5223459.html" title="如何把mac照片导入u盘_苹果电脑怎么拷贝文件到u盘_苹果电脑拷贝文件到u盘的方法-系统城..." target="_blank"><img width=480 height=300 src="/view/template/justnews/img/lazy-480x300.png" class="attachment-default size-default wp-post-image j-lazy" alt="如何把mac照片导入u盘_苹果电脑怎么拷贝文件到u盘_苹果电脑拷贝文件到u盘的方法-系统城..." decoding=async data-original="/view/img/nopic.png"></a><a class=item-category href="/web" target=_blank>网站建设</a></div><div class=item-content><h2 class="item-title"><a href="/web/1754974583a5223459.html" target=_blank rel=bookmark>如何把mac照片导入u盘_苹果电脑怎么拷贝文件到u盘_苹果电脑拷贝文件到u盘的方法-系统城...</a></h2><div class=item-excerpt><p>如果有重要资料或者文件需要随身携带&#xff0c;很多用户都会选择拷贝到U盘上。不过苹果电脑怎么拷贝文件到u盘呢&#xff1f;有的小伙伴不是很了解&#xff0c;所以今天小编就来教大家关于苹果电脑拷贝文件到u盘的方</p></div><div class=item-meta><div class="item-meta-li author"><a target=_blank href="/user/1.html" class="avatar j-user-card"><img alt="admin" src="/upload/avatar/000/1.png?1687492101" class='avatar avatar-60 photo' height=60 width=60><span>admin</span></a></div><span class="item-meta-li date">1月前</span><div class=item-meta-right><span class="item-meta-li views" title="阅读数"><i class="wpcom-icon wi"><svg aria-hidden=true><use xlink:href=#wi-eye></use></svg></i>22</span><span class="item-meta-li comments" title=评论数><i class="wpcom-icon wi"><svg aria-hidden=true><use xlink:href=#wi-comment></use></svg></i>0</span></div></div></div></li><li class="item "><div class=item-img><a class=item-img-inner href="/web/1754997076a5225213.html" title="微信授权登陆服务器,微信公众号开发流程--微信第三方授权登陆流程" target="_blank"><img width=480 height=300 src="/view/template/justnews/img/lazy-480x300.png" class="attachment-default size-default wp-post-image j-lazy" alt="微信授权登陆服务器,微信公众号开发流程--微信第三方授权登陆流程" decoding=async data-original="/view/img/nopic.png"></a><a class=item-category href="/web" target=_blank>网站建设</a></div><div class=item-content><h2 class="item-title"><a href="/web/1754997076a5225213.html" target=_blank rel=bookmark>微信授权登陆服务器,微信公众号开发流程--微信第三方授权登陆流程</a></h2><div class=item-excerpt><p>登陆微信公众号平台https:mp.weixin.qqcgi-binloginpage?url%2Fcgi-bin%2Fframe%3Ft%3Dadvanced%2Fdev_tools_frame%26nav%3D10049%26t</p></div><div class=item-meta><div class="item-meta-li author"><a target=_blank href="/user/1.html" class="avatar j-user-card"><img alt="admin" src="/upload/avatar/000/1.png?1687492101" class='avatar avatar-60 photo' height=60 width=60><span>admin</span></a></div><span class="item-meta-li date">1月前</span><div class=item-meta-right><span class="item-meta-li views" title="阅读数"><i class="wpcom-icon wi"><svg aria-hidden=true><use xlink:href=#wi-eye></use></svg></i>20</span><span class="item-meta-li comments" title=评论数><i class="wpcom-icon wi"><svg aria-hidden=true><use xlink:href=#wi-comment></use></svg></i>0</span></div></div></div></li><li class="item "><div class=item-img><a class=item-img-inner href="/web/1754999250a5225426.html" title="学会PDF转换器使用方法,再也不会熬夜整理PDF文件了" target="_blank"><img width=480 height=300 src="/view/template/justnews/img/lazy-480x300.png" class="attachment-default size-default wp-post-image j-lazy" alt="学会PDF转换器使用方法,再也不会熬夜整理PDF文件了" decoding=async data-original="/view/img/nopic.png"></a><a class=item-category href="/web" target=_blank>网站建设</a></div><div class=item-content><h2 class="item-title"><a href="/web/1754999250a5225426.html" target=_blank rel=bookmark>学会PDF转换器使用方法,再也不会熬夜整理PDF文件了</a></h2><div class=item-excerpt><p>相信大多数人都和我一样&#xff0c;当年在写毕业论文时&#xff0c;找了无数相关资料&#xff0c;只为查重是减少概率。而在网上的资料大多都是PDF格式的文件&#xff0c;有的甚至是全英文的&#</p></div><div class=item-meta><div class="item-meta-li author"><a target=_blank href="/user/1.html" class="avatar j-user-card"><img alt="admin" src="/upload/avatar/000/1.png?1687492101" class='avatar avatar-60 photo' height=60 width=60><span>admin</span></a></div><span class="item-meta-li date">1月前</span><div class=item-meta-right><span class="item-meta-li views" title="阅读数"><i class="wpcom-icon wi"><svg aria-hidden=true><use xlink:href=#wi-eye></use></svg></i>31</span><span class="item-meta-li comments" title=评论数><i class="wpcom-icon wi"><svg aria-hidden=true><use xlink:href=#wi-comment></use></svg></i>0</span></div></div></div></li><li class="item "><div class=item-img><a class=item-img-inner href="/web/1754999394a5225438.html" title="PDF转换:PDF文件怎么转换成JPG图片?" target="_blank"><img width=480 height=300 src="/view/template/justnews/img/lazy-480x300.png" class="attachment-default size-default wp-post-image j-lazy" alt="PDF转换:PDF文件怎么转换成JPG图片?" decoding=async data-original="/view/img/nopic.png"></a><a class=item-category href="/web" target=_blank>网站建设</a></div><div class=item-content><h2 class="item-title"><a href="/web/1754999394a5225438.html" target=_blank rel=bookmark>PDF转换:PDF文件怎么转换成JPG图片?</a></h2><div class=item-excerpt><p>PDF文件大家工作中经常会用到了&#xff0c;但是有些时候工作需要&#xff0c;还是需要将PDF文件转换成其他格式&#xff0c;比如想要将PDF转换成jpg图片&#xff0c;今天给大家总结方法&</p></div><div class=item-meta><div class="item-meta-li author"><a target=_blank href="/user/1.html" class="avatar j-user-card"><img alt="admin" src="/upload/avatar/000/1.png?1687492101" class='avatar avatar-60 photo' height=60 width=60><span>admin</span></a></div><span class="item-meta-li date">1月前</span><div class=item-meta-right><span class="item-meta-li views" title="阅读数"><i class="wpcom-icon wi"><svg aria-hidden=true><use xlink:href=#wi-eye></use></svg></i>23</span><span class="item-meta-li comments" title=评论数><i class="wpcom-icon wi"><svg aria-hidden=true><use xlink:href=#wi-comment></use></svg></i>0</span></div></div></div></li><li class="item "><div class=item-img><a class=item-img-inner href="/web/1755010723a5225922.html" title="qq邮箱发送邮件服务器类型,设置QQ邮箱为发送邮件服务器的详细带图步骤" target="_blank"><img width=480 height=300 src="/view/template/justnews/img/lazy-480x300.png" class="attachment-default size-default wp-post-image j-lazy" alt="qq邮箱发送邮件服务器类型,设置QQ邮箱为发送邮件服务器的详细带图步骤" decoding=async data-original="/view/img/nopic.png"></a><a class=item-category href="/web" target=_blank>网站建设</a></div><div class=item-content><h2 class="item-title"><a href="/web/1755010723a5225922.html" target=_blank rel=bookmark>qq邮箱发送邮件服务器类型,设置QQ邮箱为发送邮件服务器的详细带图步骤</a></h2><div class=item-excerpt><p>2020-09-18补充&#xff1a;如果你设置QQ邮箱发送邮件失败&#xff0c;可以试试腾讯企业邮&#xff0c;这个成功率高一点&#xff0c;教程&#xff1a;https:www.tx</p></div><div class=item-meta><div class="item-meta-li author"><a target=_blank href="/user/1.html" class="avatar j-user-card"><img alt="admin" src="/upload/avatar/000/1.png?1687492101" class='avatar avatar-60 photo' height=60 width=60><span>admin</span></a></div><span class="item-meta-li date">1月前</span><div class=item-meta-right><span class="item-meta-li views" title="阅读数"><i class="wpcom-icon wi"><svg aria-hidden=true><use xlink:href=#wi-eye></use></svg></i>16</span><span class="item-meta-li comments" title=评论数><i class="wpcom-icon wi"><svg aria-hidden=true><use xlink:href=#wi-comment></use></svg></i>0</span></div></div></div></li><li class="item "><div class=item-img><a class=item-img-inner href="/web/1755015362a5226259.html" title="腾讯云轻量级服务器导出镜像并下载到本地" target="_blank"><img width=480 height=300 src="/view/template/justnews/img/lazy-480x300.png" class="attachment-default size-default wp-post-image j-lazy" alt="腾讯云轻量级服务器导出镜像并下载到本地" decoding=async data-original="/view/img/nopic.png"></a><a class=item-category href="/web" target=_blank>网站建设</a></div><div class=item-content><h2 class="item-title"><a href="/web/1755015362a5226259.html" target=_blank rel=bookmark>腾讯云轻量级服务器导出镜像并下载到本地</a></h2><div class=item-excerpt><p>我胡汉三回来了&#xff0c;最近一直没更新是因为事太多今天遇到的小问题&#xff0c;想把云服务器放到移动硬盘里随时随地用&#xff0c;但是制作镜像的时候懵了 我的服务器是轻量级云服务器&#xff0</p></div><div class=item-meta><div class="item-meta-li author"><a target=_blank href="/user/1.html" class="avatar j-user-card"><img alt="admin" src="/upload/avatar/000/1.png?1687492101" class='avatar avatar-60 photo' height=60 width=60><span>admin</span></a></div><span class="item-meta-li date">1月前</span><div class=item-meta-right><span class="item-meta-li views" title="阅读数"><i class="wpcom-icon wi"><svg aria-hidden=true><use xlink:href=#wi-eye></use></svg></i>22</span><span class="item-meta-li comments" title=评论数><i class="wpcom-icon wi"><svg aria-hidden=true><use xlink:href=#wi-comment></use></svg></i>0</span></div></div></div></li><li class="item "><div class=item-img><a class=item-img-inner href="/web/1755016153a5226378.html" title="Windows 资源保护找到了损坏文件,但其中有一些文件无法修复。" target="_blank"><img width=480 height=300 src="/view/template/justnews/img/lazy-480x300.png" class="attachment-default size-default wp-post-image j-lazy" alt="Windows 资源保护找到了损坏文件,但其中有一些文件无法修复。" decoding=async data-original="/view/img/nopic.png"></a><a class=item-category href="/web" target=_blank>网站建设</a></div><div class=item-content><h2 class="item-title"><a href="/web/1755016153a5226378.html" target=_blank rel=bookmark>Windows 资源保护找到了损坏文件,但其中有一些文件无法修复。</a></h2><div class=item-excerpt><p>打开管理员命令行输入sfc scannow命令尝试验证系统并修复受损文件&#xff08;如果不行&#xff0c;用下面两行代码&#xff09; DISM.exe Online Cleanup-image Sc</p></div><div class=item-meta><div class="item-meta-li author"><a target=_blank href="/user/1.html" class="avatar j-user-card"><img alt="admin" src="/upload/avatar/000/1.png?1687492101" class='avatar avatar-60 photo' height=60 width=60><span>admin</span></a></div><span class="item-meta-li date">1月前</span><div class=item-meta-right><span class="item-meta-li views" title="阅读数"><i class="wpcom-icon wi"><svg aria-hidden=true><use xlink:href=#wi-eye></use></svg></i>21</span><span class="item-meta-li comments" title=评论数><i class="wpcom-icon wi"><svg aria-hidden=true><use xlink:href=#wi-comment></use></svg></i>0</span></div></div></div></li><li class="item "><div class=item-img><a class=item-img-inner href="/web/1755017088a5226554.html" title="解决 Windows资源保护找到了损坏文件但无法修复问题" target="_blank"><img width=480 height=300 src="/view/template/justnews/img/lazy-480x300.png" class="attachment-default size-default wp-post-image j-lazy" alt="解决 Windows资源保护找到了损坏文件但无法修复问题" decoding=async data-original="/view/img/nopic.png"></a><a class=item-category href="/web" target=_blank>网站建设</a></div><div class=item-content><h2 class="item-title"><a href="/web/1755017088a5226554.html" target=_blank rel=bookmark>解决 Windows资源保护找到了损坏文件但无法修复问题</a></h2><div class=item-excerpt><p>项目场景&#xff1a;解决方案&#xff1a;DISM.exe Online Cleanup-image ScanhealthDISM.exe Online Cleanup-image Restorehea</p></div><div class=item-meta><div class="item-meta-li author"><a target=_blank href="/user/1.html" class="avatar j-user-card"><img alt="admin" src="/upload/avatar/000/1.png?1687492101" class='avatar avatar-60 photo' height=60 width=60><span>admin</span></a></div><span class="item-meta-li date">1月前</span><div class=item-meta-right><span class="item-meta-li views" title="阅读数"><i class="wpcom-icon wi"><svg aria-hidden=true><use xlink:href=#wi-eye></use></svg></i>21</span><span class="item-meta-li comments" title=评论数><i class="wpcom-icon wi"><svg aria-hidden=true><use xlink:href=#wi-comment></use></svg></i>0</span></div></div></div></li><li class="item "><div class=item-img><a class=item-img-inner href="/web/1755020925a5227241.html" title="电脑重装系统会清空哪些文件" target="_blank"><img width=480 height=300 src="/view/template/justnews/img/lazy-480x300.png" class="attachment-default size-default wp-post-image j-lazy" alt="电脑重装系统会清空哪些文件" decoding=async data-original="/view/img/nopic.png"></a><a class=item-category href="/web" target=_blank>网站建设</a></div><div class=item-content><h2 class="item-title"><a href="/web/1755020925a5227241.html" target=_blank rel=bookmark>电脑重装系统会清空哪些文件</a></h2><div class=item-excerpt><p>电脑重装系统是一种常见的解决电脑问题或恢复系统性能的方法。然而&#xff0c;重装系统会导致某些文件的丢失&#xff0c;因此在进行重装之前&#xff0c;了解哪些文件可能会被清空是很重要的。工具原料&#x</p></div><div class=item-meta><div class="item-meta-li author"><a target=_blank href="/user/1.html" class="avatar j-user-card"><img alt="admin" src="/upload/avatar/000/1.png?1687492101" class='avatar avatar-60 photo' height=60 width=60><span>admin</span></a></div><span class="item-meta-li date">1月前</span><div class=item-meta-right><span class="item-meta-li views" title="阅读数"><i class="wpcom-icon wi"><svg aria-hidden=true><use xlink:href=#wi-eye></use></svg></i>24</span><span class="item-meta-li comments" title=评论数><i class="wpcom-icon wi"><svg aria-hidden=true><use xlink:href=#wi-comment></use></svg></i>0</span></div></div></div></li><li class="item "><div class=item-img><a class=item-img-inner href="/web/1755021837a5227423.html" title="手机浏览器加载不出来css,如何解决浏览器不加载css文件的问题" target="_blank"><img width=480 height=300 src="/view/template/justnews/img/lazy-480x300.png" class="attachment-default size-default wp-post-image j-lazy" alt="手机浏览器加载不出来css,如何解决浏览器不加载css文件的问题" decoding=async data-original="/view/img/nopic.png"></a><a class=item-category href="/web" target=_blank>网站建设</a></div><div class=item-content><h2 class="item-title"><a href="/web/1755021837a5227423.html" target=_blank rel=bookmark>手机浏览器加载不出来css,如何解决浏览器不加载css文件的问题</a></h2><div class=item-excerpt><p>解决浏览器不加载css文件的方法&#xff1a;1、检查css路径是否错误并修改&#xff1b;2、将css文件中指定的编码与页面设置统一&#xff1b;3、修改文件后缀的minetype类型&#xff1b;</p></div><div class=item-meta><div class="item-meta-li author"><a target=_blank href="/user/1.html" class="avatar j-user-card"><img alt="admin" src="/upload/avatar/000/1.png?1687492101" class='avatar avatar-60 photo' height=60 width=60><span>admin</span></a></div><span class="item-meta-li date">1月前</span><div class=item-meta-right><span class="item-meta-li views" title="阅读数"><i class="wpcom-icon wi"><svg aria-hidden=true><use xlink:href=#wi-eye></use></svg></i>22</span><span class="item-meta-li comments" title=评论数><i class="wpcom-icon wi"><svg aria-hidden=true><use xlink:href=#wi-comment></use></svg></i>0</span></div></div></div></li><li class="item "><div class=item-img><a class=item-img-inner href="/web/1755023152a5227653.html" title="关于打开浏览器jsp文件显示源代码的问题" target="_blank"><img width=480 height=300 src="/view/template/justnews/img/lazy-480x300.png" class="attachment-default size-default wp-post-image j-lazy" alt="关于打开浏览器jsp文件显示源代码的问题" decoding=async data-original="/view/img/nopic.png"></a><a class=item-category href="/web" target=_blank>网站建设</a></div><div class=item-content><h2 class="item-title"><a href="/web/1755023152a5227653.html" target=_blank rel=bookmark>关于打开浏览器jsp文件显示源代码的问题</a></h2><div class=item-excerpt><p>关于打开浏览器jsp文件显示源代码的问题让jsp文件正常显示的方法让jsp文件正常显示的方法 这是我的情况。 首先确定你的tomcat正常运行&#xff0c;网上配置tomcat的方法很多&#xff0c;我就不讲了。 注意</p></div><div class=item-meta><div class="item-meta-li author"><a target=_blank href="/user/1.html" class="avatar j-user-card"><img alt="admin" src="/upload/avatar/000/1.png?1687492101" class='avatar avatar-60 photo' height=60 width=60><span>admin</span></a></div><span class="item-meta-li date">1月前</span><div class=item-meta-right><span class="item-meta-li views" title="阅读数"><i class="wpcom-icon wi"><svg aria-hidden=true><use xlink:href=#wi-eye></use></svg></i>22</span><span class="item-meta-li comments" title=评论数><i class="wpcom-icon wi"><svg aria-hidden=true><use xlink:href=#wi-comment></use></svg></i>0</span></div></div></div></li><li class="item "><div class=item-img><a class=item-img-inner href="/web/1755023522a5227726.html" title="SSM框架整合上传图片到服务器成功,浏览器却加载不出来问题" target="_blank"><img width=480 height=300 src="/view/template/justnews/img/lazy-480x300.png" class="attachment-default size-default wp-post-image j-lazy" alt="SSM框架整合上传图片到服务器成功,浏览器却加载不出来问题" decoding=async data-original="/view/img/nopic.png"></a><a class=item-category href="/web" target=_blank>网站建设</a></div><div class=item-content><h2 class="item-title"><a href="/web/1755023522a5227726.html" target=_blank rel=bookmark>SSM框架整合上传图片到服务器成功,浏览器却加载不出来问题</a></h2><div class=item-excerpt><p>SSM框架整合上传图片到服务器成功&#xff0c;浏览器却加载不出来问题今天用SSM框架整合了一个购物网站&#xff0c;在上传文件到tomcat服务器后&#xff0c;文件上传成功&#xff0c;但是浏览</p></div><div class=item-meta><div class="item-meta-li author"><a target=_blank href="/user/1.html" class="avatar j-user-card"><img alt="admin" src="/upload/avatar/000/1.png?1687492101" class='avatar avatar-60 photo' height=60 width=60><span>admin</span></a></div><span class="item-meta-li date">1月前</span><div class=item-meta-right><span class="item-meta-li views" title="阅读数"><i class="wpcom-icon wi"><svg aria-hidden=true><use xlink:href=#wi-eye></use></svg></i>19</span><span class="item-meta-li comments" title=评论数><i class="wpcom-icon wi"><svg aria-hidden=true><use xlink:href=#wi-comment></use></svg></i>0</span></div></div></div></li><li class="item "><div class=item-img><a class=item-img-inner href="/web/1755048138a5233029.html" title="如果在 IntelliJ IDEA 中没有找到 “Add as Library“ 选项,你可以通过以下步骤手动将 JAR 文件添加到项目中:方法一:使用 Project Structure 添加库" target="_blank"><img width=480 height=300 src="/view/template/justnews/img/lazy-480x300.png" class="attachment-default size-default wp-post-image j-lazy" alt="如果在 IntelliJ IDEA 中没有找到 “Add as Library“ 选项,你可以通过以下步骤手动将 JAR 文件添加到项目中:方法一:使用 Project Structure 添加库" decoding=async data-original="/view/img/nopic.png"></a><a class=item-category href="/web" target=_blank>网站建设</a></div><div class=item-content><h2 class="item-title"><a href="/web/1755048138a5233029.html" target=_blank rel=bookmark>如果在 IntelliJ IDEA 中没有找到 “Add as Library“ 选项,你可以通过以下步骤手动将 JAR 文件添加到项目中:方法一:使用 Project Structure 添加库</a></h2><div class=item-excerpt><p>如果在 IntelliJ IDEA 中没有找到 "Add as Library" 选项&#xff0c;你可以通过以下步骤手动将 JAR 文件添加到项目中&#xff1a;方法一&#xff1a;使用</p></div><div class=item-meta><div class="item-meta-li author"><a target=_blank href="/user/1.html" class="avatar j-user-card"><img alt="admin" src="/upload/avatar/000/1.png?1687492101" class='avatar avatar-60 photo' height=60 width=60><span>admin</span></a></div><span class="item-meta-li date">1月前</span><div class=item-meta-right><span class="item-meta-li views" title="阅读数"><i class="wpcom-icon wi"><svg aria-hidden=true><use xlink:href=#wi-eye></use></svg></i>21</span><span class="item-meta-li comments" title=评论数><i class="wpcom-icon wi"><svg aria-hidden=true><use xlink:href=#wi-comment></use></svg></i>0</span></div></div></div></li><li class="item "><div class=item-img><a class=item-img-inner href="/web/1755051883a5233556.html" title="用友nc系统服务器是云端吗,用友NC服务器硬件配置要求" target="_blank"><img width=480 height=300 src="/view/template/justnews/img/lazy-480x300.png" class="attachment-default size-default wp-post-image j-lazy" alt="用友nc系统服务器是云端吗,用友NC服务器硬件配置要求" decoding=async data-original="/view/img/nopic.png"></a><a class=item-category href="/web" target=_blank>网站建设</a></div><div class=item-content><h2 class="item-title"><a href="/web/1755051883a5233556.html" target=_blank rel=bookmark>用友nc系统服务器是云端吗,用友NC服务器硬件配置要求</a></h2><div class=item-excerpt><p>用友NC服务器硬件配置要求 内容精选 换一换 硬件要求如表1所示。软件要求如表2所示。物理组网方式如图1所示。集群部署如表3所示。客户端部署如表4所示。管理IP:用于远程SSH机器管理配置使用的IP。内部集群IP(cluster netwo</p></div><div class=item-meta><div class="item-meta-li author"><a target=_blank href="/user/1.html" class="avatar j-user-card"><img alt="admin" src="/upload/avatar/000/1.png?1687492101" class='avatar avatar-60 photo' height=60 width=60><span>admin</span></a></div><span class="item-meta-li date">1月前</span><div class=item-meta-right><span class="item-meta-li views" title="阅读数"><i class="wpcom-icon wi"><svg aria-hidden=true><use xlink:href=#wi-eye></use></svg></i>25</span><span class="item-meta-li comments" title=评论数><i class="wpcom-icon wi"><svg aria-hidden=true><use xlink:href=#wi-comment></use></svg></i>0</span></div></div></div></li><li class="item "><div class=item-img><a class=item-img-inner href="/web/1755051993a5233567.html" title="diy服务器个人主机_DIY配置参考(四):多核超线程CPU组建个人小型服务器配置参考..." target="_blank"><img width=480 height=300 src="/view/template/justnews/img/lazy-480x300.png" class="attachment-default size-default wp-post-image j-lazy" alt="diy服务器个人主机_DIY配置参考(四):多核超线程CPU组建个人小型服务器配置参考..." decoding=async data-original="/view/img/nopic.png"></a><a class=item-category href="/web" target=_blank>网站建设</a></div><div class=item-content><h2 class="item-title"><a href="/web/1755051993a5233567.html" target=_blank rel=bookmark>diy服务器个人主机_DIY配置参考(四):多核超线程CPU组建个人小型服务器配置参考...</a></h2><div class=item-excerpt><p>端午节了&#xff0c;在这里首先祝大家端午安康。在前面所发配置参考中&#xff0c;有网友要求&#xff0c;想看下线程撕裂者29?0X系处理器组建个人小型服务器的配置参考&#xff0c;这里应要求给一些配</p></div><div class=item-meta><div class="item-meta-li author"><a target=_blank href="/user/1.html" class="avatar j-user-card"><img alt="admin" src="/upload/avatar/000/1.png?1687492101" class='avatar avatar-60 photo' height=60 width=60><span>admin</span></a></div><span class="item-meta-li date">1月前</span><div class=item-meta-right><span class="item-meta-li views" title="阅读数"><i class="wpcom-icon wi"><svg aria-hidden=true><use xlink:href=#wi-eye></use></svg></i>20</span><span class="item-meta-li comments" title=评论数><i class="wpcom-icon wi"><svg aria-hidden=true><use xlink:href=#wi-comment></use></svg></i>0</span></div></div></div></li><li class="item "><div class=item-img><a class=item-img-inner href="/web/1755517027a5236733.html" title="Windows 10 系统 Windows Defender 自动删文件? 保姆级教程来了" target="_blank"><img width=480 height=300 src="/view/template/justnews/img/lazy-480x300.png" class="attachment-default size-default wp-post-image j-lazy" alt="Windows 10 系统 Windows Defender 自动删文件? 保姆级教程来了" decoding=async data-original="/view/img/nopic.png"></a><a class=item-category href="/web" target=_blank>网站建设</a></div><div class=item-content><h2 class="item-title"><a href="/web/1755517027a5236733.html" target=_blank rel=bookmark>Windows 10 系统 Windows Defender 自动删文件? 保姆级教程来了</a></h2><div class=item-excerpt><p>前言用 Windows 10 系统时&#xff0c;文件经常莫名消失。原因是系统安全中心 Windows Defender “误判”&#xff0c;把正常文件当威胁自动删除。下面是详细操作步骤&#xff0c;解决</p></div><div class=item-meta><div class="item-meta-li author"><a target=_blank href="/user/1.html" class="avatar j-user-card"><img alt="admin" src="/upload/avatar/000/1.png?1687492101" class='avatar avatar-60 photo' height=60 width=60><span>admin</span></a></div><span class="item-meta-li date">29天前</span><div class=item-meta-right><span class="item-meta-li views" title="阅读数"><i class="wpcom-icon wi"><svg aria-hidden=true><use xlink:href=#wi-eye></use></svg></i>18</span><span class="item-meta-li comments" title=评论数><i class="wpcom-icon wi"><svg aria-hidden=true><use xlink:href=#wi-comment></use></svg></i>0</span></div></div></div></li><script> var _hmt = _hmt || []; (function() { var hm = document.createElement("script"); hm.src ="https://hm.baidu.com/hm.js?f186ba0b24e70e8971256f6532580d33"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })(); </script> </ul></div><div id=comments class=entry-comments><div id="respond" class="comment-respond"><h3 id="reply-title" class="comment-reply-title">发表回复<small><a rel="nofollow" id="cancel-comment-reply-link" href="/justnews/353.html#respond" style="display:none;"><i class="wpcom-icon wi"><svg aria-hidden="true"><use xlink:href="#wi-close"></use></svg></i></a></small></h3><form action="/comment/create/1633783.html?safe_token=vdCXHrQaRidMExryNO04L3m_2F9_2BNDYm_2FlE1YFftc5fBAptdaiosgD7LE6R3Sdpth1IO7FuflFvuk7Z2egWy4f1g_3D_3D" method="post" id="commentform" class="comment-form"><div class="linxie7ede2-1841comment-form-comment"><textarea id="comment" name="message" class="required" rows="4" placeholder="写下你的评论…"></textarea></div><div class="linxie7ede2-1841form-submit"><button name="submit" type="submit" id="submit" class="btn btn-primary btn-xs submit">提交</button><input type="hidden" name="doctype" value="1" /><input type="hidden" name="quotepid" value="0" /></div></form></div><h3 class="comments-title">评论列表(0条)</h3><ul class=comments-list><li class="sn-empty">暂无评论</li></ul></div></article></main><aside class=sidebar><div class="linxie7ede2-1841widget widget_profile"><div class=profile-cover><img src="/view/template/justnews/img/avatar_bg.jpg" alt="admin"></div><div class=avatar-wrap><a target=_blank href="/user/1.html" class=avatar-link><img alt="admin" src="/upload/avatar/000/1.png?1687492101" class='avatar avatar-120 photo' height=120 width=120></a></div><div class=profile-info><a target=_blank href="/user/1.html" class=profile-name><span class=author-name>admin</span><span class=user-group>管理员组</span></a><p class=author-description>Enjoy coding, enjoy life!</p><div class=profile-stats><div class=profile-stats-inner><div class=user-stats-item><b>2868823</b><span>文章</span></div><div class=user-stats-item><b>0</b><span>评论</span></div></div></div></div><div class=profile-posts><h3 class="widget-title"><span>最近文章</span></h3><ul><li><a href="/news/1726813566a3547961.html" title="python re库用法">python re库用法</a></li><li><a href="/news/1726642346a3546263.html" title="VBA列表和下拉菜单的设计和应用">VBA列表和下拉菜单的设计和应用</a></li><li><a href="/xiaochengxu/1691040819a493072.html" title="使用多项式函数进行拟合">使用多项式函数进行拟合</a></li><li><a href="/xiaochengxu/1691040665a493033.html" title="分段多项式拟合">分段多项式拟合</a></li><li><a href="/web/1755564226a5243298.html" title="【WIN10】清除图标缓存">【WIN10】清除图标缓存</a></li><li><a href="/web/1755562607a5243079.html" title="win10 无法删除 注册表 蓝牙_编辑设置Win10删除蓝牙设备后无法重新添加的修复办法...">win10 无法删除 注册表 蓝牙_编辑设置Win10删除蓝牙设备后无法重新添加的修复办法...</a></li><li><a href="/num/1725041053a3519634.html" title="如何在CAD图纸一个布局里头的几十张图纸实现快速打印">如何在CAD图纸一个布局里头的几十张图纸实现快速打印</a></li><li><a href="/num/1725041052a3519633.html" title="肿么将多张CAD图形打印成一张PDF">肿么将多张CAD图形打印成一张PDF</a></li><li><a href="/xitong/1716142309a2726173.html" title="订货会设备准备组工作流程">订货会设备准备组工作流程</a></li><li><a href="/xitong/1716142255a2726168.html" title="的粤语怎么写">的粤语怎么写</a></li><li><a href="/questions/1749257988a4819086.html" title="Omit specific product categories from WooCommerce shortcode">Omit specific product categories from WooCommerce shortcode</a></li><li><a href="/questions/1749257922a4819075.html" title="Updating Posts table in database without overwriting user generated content">Updating Posts table in database without overwriting user generated content</a></li></ul></div></div><div class="linxie7ede2-1841widget widget_post_hot"><h3 class="widget-title"><span>热门文章</span></h3><ul><li class="item"><div class="linxie7ede2-1841item-img"><a class="item-img-inner" href="/web/1754943627a5218550.html" title="循环队列基本操作(解决队列假溢出)"><img width="480" height="300" src="/view/template/justnews/img/lazy-480x300.png" class="attachment-default size-default wp-post-image j-lazy" alt="循环队列基本操作(解决队列假溢出)" decoding="async" data-original="/view/img/nopic.png"></a></div><div class="linxie7ede2-1841item-content"><p class="item-title"><a href="/web/1754943627a5218550.html" title="循环队列基本操作(解决队列假溢出)">循环队列基本操作(解决队列假溢出)</a></p></div></li><li class="item"><div class="linxie7ede2-1841item-img"><a class="item-img-inner" href="/web/1754969856a5222972.html" title="Excel POI设置自适应宽度和poi创建excel表格的代码DEMO,泛型对象T extends OrdeInfoVo赋值"><img width="480" height="300" src="/view/template/justnews/img/lazy-480x300.png" class="attachment-default size-default wp-post-image j-lazy" alt="Excel POI设置自适应宽度和poi创建excel表格的代码DEMO,泛型对象T extends OrdeInfoVo赋值" decoding="async" data-original="/view/img/nopic.png"></a></div><div class="linxie7ede2-1841item-content"><p class="item-title"><a href="/web/1754969856a5222972.html" title="Excel POI设置自适应宽度和poi创建excel表格的代码DEMO,泛型对象T extends OrdeInfoVo赋值">Excel POI设置自适应宽度和poi创建excel表格的代码DEMO,泛型对象T extends OrdeInfoVo赋值</a></p></div></li><li class="item"><div class="linxie7ede2-1841item-img"><a class="item-img-inner" href="/web/1754992261a5224747.html" title="android dff播放器,无损音乐解码播放器"><img width="480" height="300" src="/view/template/justnews/img/lazy-480x300.png" class="attachment-default size-default wp-post-image j-lazy" alt="android dff播放器,无损音乐解码播放器" decoding="async" data-original="/view/img/nopic.png"></a></div><div class="linxie7ede2-1841item-content"><p class="item-title"><a href="/web/1754992261a5224747.html" title="android dff播放器,无损音乐解码播放器">android dff播放器,无损音乐解码播放器</a></p></div></li><li class="item"><div class="linxie7ede2-1841item-img"><a class="item-img-inner" href="/web/1754992301a5224750.html" title="基于微信小程序音乐播放器-[计算机毕业设计]"><img width="480" height="300" src="/view/template/justnews/img/lazy-480x300.png" class="attachment-default size-default wp-post-image j-lazy" alt="基于微信小程序音乐播放器-[计算机毕业设计]" decoding="async" data-original="/view/img/nopic.png"></a></div><div class="linxie7ede2-1841item-content"><p class="item-title"><a href="/web/1754992301a5224750.html" title="基于微信小程序音乐播放器-[计算机毕业设计]">基于微信小程序音乐播放器-[计算机毕业设计]</a></p></div></li><li class="item"><div class="linxie7ede2-1841item-img"><a class="item-img-inner" href="/web/1755000092a5225445.html" title="【Spring】使用 @Schedule 完成定时任务"><img width="480" height="300" src="/view/template/justnews/img/lazy-480x300.png" class="attachment-default size-default wp-post-image j-lazy" alt="【Spring】使用 @Schedule 完成定时任务" decoding="async" data-original="/view/img/nopic.png"></a></div><div class="linxie7ede2-1841item-content"><p class="item-title"><a href="/web/1755000092a5225445.html" title="【Spring】使用 @Schedule 完成定时任务">【Spring】使用 @Schedule 完成定时任务</a></p></div></li><li class="item"><div class="linxie7ede2-1841item-img"><a class="item-img-inner" href="/web/1755000830a5225506.html" title="python schedule多线程_Python-43-schedule 定时执行"><img width="480" height="300" src="/view/template/justnews/img/lazy-480x300.png" class="attachment-default size-default wp-post-image j-lazy" alt="python schedule多线程_Python-43-schedule 定时执行" decoding="async" data-original="/view/img/nopic.png"></a></div><div class="linxie7ede2-1841item-content"><p class="item-title"><a href="/web/1755000830a5225506.html" title="python schedule多线程_Python-43-schedule 定时执行">python schedule多线程_Python-43-schedule 定时执行</a></p></div></li><li class="item"><div class="linxie7ede2-1841item-img"><a class="item-img-inner" href="/web/1755026772a5228344.html" title="MySQL登录报错 Can’t connect to local MySQL server through socket"><img width="480" height="300" src="/view/template/justnews/img/lazy-480x300.png" class="attachment-default size-default wp-post-image j-lazy" alt="MySQL登录报错 Can’t connect to local MySQL server through socket" decoding="async" data-original="/view/img/nopic.png"></a></div><div class="linxie7ede2-1841item-content"><p class="item-title"><a href="/web/1755026772a5228344.html" title="MySQL登录报错 Can’t connect to local MySQL server through socket">MySQL登录报错 Can’t connect to local MySQL server through socket</a></p></div></li><li class="item"><div class="linxie7ede2-1841item-img"><a class="item-img-inner" href="/web/1755034639a5230152.html" title="用于学习中的记录:因为没有NFS服务,需要将win11家庭版升级专业版"><img width="480" height="300" src="/view/template/justnews/img/lazy-480x300.png" class="attachment-default size-default wp-post-image j-lazy" alt="用于学习中的记录:因为没有NFS服务,需要将win11家庭版升级专业版" decoding="async" data-original="/view/img/nopic.png"></a></div><div class="linxie7ede2-1841item-content"><p class="item-title"><a href="/web/1755034639a5230152.html" title="用于学习中的记录:因为没有NFS服务,需要将win11家庭版升级专业版">用于学习中的记录:因为没有NFS服务,需要将win11家庭版升级专业版</a></p></div></li><li class="item"><div class="linxie7ede2-1841item-img"><a class="item-img-inner" href="/web/1755042363a5231804.html" title="Windows2008r2的iis7服务器升级网站ssl证书"><img width="480" height="300" src="/view/template/justnews/img/lazy-480x300.png" class="attachment-default size-default wp-post-image j-lazy" alt="Windows2008r2的iis7服务器升级网站ssl证书" decoding="async" data-original="/view/img/nopic.png"></a></div><div class="linxie7ede2-1841item-content"><p class="item-title"><a href="/web/1755042363a5231804.html" title="Windows2008r2的iis7服务器升级网站ssl证书">Windows2008r2的iis7服务器升级网站ssl证书</a></p></div></li><li class="item"><div class="linxie7ede2-1841item-img"><a class="item-img-inner" href="/web/1755056803a5234017.html" title="PHP 中的几种主要加密方式原创"><img width="480" height="300" src="/view/template/justnews/img/lazy-480x300.png" class="attachment-default size-default wp-post-image j-lazy" alt="PHP 中的几种主要加密方式原创" decoding="async" data-original="/view/img/nopic.png"></a></div><div class="linxie7ede2-1841item-content"><p class="item-title"><a href="/web/1755056803a5234017.html" title="PHP 中的几种主要加密方式原创">PHP 中的几种主要加密方式原创</a></p></div></li></ul></div></aside></div></div><footer class="footer"><div class="container"><div class="footer-col-wrap footer-with-logo-icon"><div class="footer-col footer-col-logo"><img src="/view/template/justnews/img/logo-footer.png" alt="江阴网站建设,江阴网站制作,江阴网站设计,江阴SEO优化,江阴小程序开发-江阴雨辰互联"></div><div class="footer-col footer-col-copy"><ul class="footer-nav hidden-xs"><li id=menu-item-152 class="menu-item menu-item-152"><a href="/lianxi/1145089.html">联系我们</a></li><li id=menu-item-130 class="menu-item menu-item-130"><a href="#">行业动态</a></li><li id=menu-item-157 class="menu-item menu-item-157"><a href="#">专题列表</a></li><li id=menu-item-129 class="menu-item menu-item-129"><a href="#">用户列表</a></li><li id=menu-item-4252 class="menu-item menu-item-4252"><a href="#">网址导航</a></li></ul><div class="copyright"><p> CopyRight © 2022 All Rights Reserved. Powered by <a href="/">江阴网站建设,江阴网站制作,江阴网站设计,江阴SEO优化,江阴小程序开发-江阴雨辰互联</a></p><p><a target="_blank" rel="nofollow" href="https://beian.miit.gov.cn/" style="font-size: 12px;">豫ICP备2021025688号-30</a>| <p><a href="https://www.fzithome.com/xitong/">福州电脑网</a></p></p></div></div><div class="footer-col footer-col-sns"><div class=footer-sns><a class=sns-wx href=javascript:; aria-label=icon><i class="wpcom-icon fa fa-apple sns-icon"></i><span style="background-image:url('/view/template/justnews/img/qrcode.jpg');"></span></a><a class=sns-wx href=javascript:; aria-label=icon><i class="wpcom-icon fa fa-android sns-icon"></i><span style="background-image:url('/view/template/justnews/img/qrcode.jpg');"></span></a><a class=sns-wx href=javascript:; aria-label=icon><i class="wpcom-icon fa fa-weixin sns-icon"></i><span style="background-image:url('/view/template/justnews/img/qrcode.jpg');"></span></a><a href=/ target=_blank rel=nofollow aria-label=icon><i class="wpcom-icon fa fa-weibo sns-icon"></i></a></div></div></div></div></footer><div class="action action-style-0 action-color-1 action-pos-1" style=bottom:120px;><div class=action-item><i class="wpcom-icon fa fa-comments action-item-icon"></i><div class="action-item-inner action-item-type-2"><h3 style="text-align: center;">联系我们</h3><h5 style="text-align: center;"><span style="color: #2d6ded; font-size: 24px; line-height: 2;"><strong>400-800-8888</strong></span></h5><p> 在线咨询: <a class="btn btn-primary btn-xs" href="http://wpa.qq.com/msgrd?uin=99999" target=_blank rel="noopener noreferrer"><i class="wpcom-icon fa fa-qq"></i> QQ交谈 </a></p><p>邮件:admin@example.com</p><p>工作时间:周一至周五,9:30-18:30,节假日休息</p></div></div><div class=action-item><i class="wpcom-icon fa fa-wechat action-item-icon"></i><div class="action-item-inner action-item-type-1"><img class=action-item-img src="/view/template/justnews/img/qrcode.jpg" alt=关注微信></div></div><div class="action-item j-share"><i class="wpcom-icon wi action-item-icon"><svg aria-hidden=true><use xlink:href=#wi-share></use></svg></i></div><div class="action-item gotop j-top"><i class="wpcom-icon wi action-item-icon"><svg aria-hidden=true><use xlink:href=#wi-arrow-up-2></use></svg></i></div></div><script> var _wpcom_js = { "slide_speed":"5000", "is_admin":"0", "video_height":"484", "fixed_sidebar":"1", "dark_style":"0", "user_card":"1" }; var _wpmx_js = {}; </script><script src="/view/template/justnews/js/bind.js?2.3.0"></script><script src="/view/template/justnews/js/chunk.js?2.3.0"></script><script src="/view/template/justnews/js/utils.js?2.3.0"></script><script>jQuery(function($) {setup_share(1);});</script></body></html>