m3u8详解

一、概念

1. Playlist file

    一个M3U的 Playlist 就是一个由多个独立行组成的文本文件,每行由回车/换行区分。每一行可以是一个URI  空白行或

是以”#“号开头的字符串,并且空格只能存在于一行中不同元素间的分隔。

   一个URI 表示一个媒体段或是”variant Playlist file“(最多支持一层嵌套,即一个mm3u8文件中嵌套另一个m3u8),

以”#EXT“开头的表示一个”tag“,否则表示注释,直接忽略

属性:
BANDWIDTH              指定码率
PROGRAM-ID            唯一ID
CODECS                    指定流的编码类型
#EXT-X-DISCONTINUITY

2. Tags


    #EXTM3U:  每个M3U文件第一行必须是这个tag。

    #EXTINF:指定每个媒体段(ts)的持续时间,这个仅对其后面的URI有效,每两个媒体段URI间被这个tag分隔开,其格式如下:

                     #EXTINF:,  :</p> <blockquote style="color:rgb(51,51,51);font-family:Arial;font-size:14px;"> <blockquote> <p>  duration表示持续的时间(秒)”Durations MUST be integers if the protocol version of the Playlist file is less<br></p> <p>than 3“,否则可以是浮点数。</p> </blockquote> </blockquote> <p style="color:rgb(51,51,51);font-family:Arial;font-size:14px;">   <span style="color:rgb(0,0,153);"> #EXT-X-BYTERANGE:</span>表示媒体段是一个媒体URI资源中的一段,只对其后的media URI有效,格式如下:</p> <p style="color:rgb(51,51,51);font-family:Arial;font-size:14px;">                     #EXT-X-BYTERANGE:<n>[@o]:</p> <blockquote style="color:rgb(51,51,51);font-family:Arial;font-size:14px;"> <blockquote> <p>  其中n表示这个区间的大小,o表在URI中的offset;”The EXT-X-BYTERANGE tag appeared in version 4 of the protocol“。</p> </blockquote> </blockquote> <p style="color:rgb(51,51,51);font-family:Arial;font-size:14px;">    <span style="color:rgb(0,0,153);">#EXT-X-TARGETDURATION:</span>指定最大的媒体段时间长(秒)。所以#EXTINF中指定的时间长度必须小于或是等于这个最大</p> <p style="color:rgb(51,51,51);font-family:Arial;font-size:14px;">值。这个tag在整个PlayList文件中只能出现一 次(在嵌套的情况下,一般有真正ts url的m3u8才会出现该tag)。格式如下:</p> <p style="color:rgb(51,51,51);font-family:Arial;font-size:14px;">                     #EXT-X-TARGETDURATION:<s>:s表示最大的秒数。<br></p> <p style="color:rgb(51,51,51);font-family:Arial;font-size:14px;">  <span style="color:rgb(0,0,153);">  #EXT-X-MEDIA-SEQUENCE:</span>每一个media URI 在 PlayList中只有唯一的序号,相邻之间序号+1。</p> <p style="color:rgb(51,51,51);font-family:Arial;font-size:14px;">                     #EXT-X-MEDIA-SEQUENCE:<number>:</p> <p style="color:rgb(51,51,51);font-family:Arial;font-size:14px;">                    一个media URI并不是必须要包含的,如果没有,默认为0。</p> <p style="color:rgb(51,51,51);font-family:Arial;font-size:14px;"> <span style="color:rgb(0,0,153);"> </span><span style="color:rgb(0,0,153);">  #EXT-X-KEY</span>:表示怎么对media segments进行解码。其作用范围是下次该tag出现前的所有media URI,格式如下:</p> <p style="color:rgb(51,51,51);font-family:Arial;font-size:14px;">                     #EXT-X-KEY:<attribute-list>:</p> <p style="color:rgb(51,51,51);font-family:Arial;font-size:14px;">                    NONE 或者 AES-128。如果是NONE,则URI以及IV属性必须不存在,如果是AES-128(Advanced Encryption<br></p> <p style="color:rgb(51,51,51);font-family:Arial;font-size:14px;">                    Standard),则URI必须存在,IV可以不存在。</p> <p style="color:rgb(51,51,51);font-family:Arial;font-size:14px;">                    对于AES-128的情况,keytag和URI属性共同表示了一个key文件,通过URI可以获得这个key,如果没有</p> <p style="color:rgb(51,51,51);font-family:Arial;font-size:14px;">                    IV(Initialization Vector),则使用序列号作为IV进行编解码,将序列号的高位赋到16个字节的buffer中,左边补0;如果</p> <p style="color:rgb(51,51,51);font-family:Arial;font-size:14px;">                    有IV,则将改值当成16个字节的16进制数。</p> <p style="color:rgb(51,51,51);font-family:Arial;font-size:14px;"><br></p> <p style="color:rgb(51,51,51);font-family:Arial;font-size:14px;">  <span style="color:rgb(0,0,153);">  #EXT-X-PROGRAM-DATE-TIME</span>:将一个绝对时间或是日期和一个媒体段中的第一个sample相关联,只对下一个meida URI有效,格式如下:</p> <p style="color:rgb(51,51,51);font-family:Arial;font-size:14px;">                     #EXT-X-PROGRAM-DATE-TIME:<YYYY-MM-DDThh:mm:ssZ></p> <p style="color:rgb(51,51,51);font-family:Arial;font-size:14px;">                     For example:<br>                      #EXT-X-PROGRAM-DATE-TIME:2010-02-19T14:54:23.031+08:00</p> <p style="color:rgb(51,51,51);font-family:Arial;font-size:14px;">  <span style="color:rgb(0,0,153);"> #EXT-X-ALLOW-CACHE</span>:是否允许做cache,这个可以在PlayList文件中任意地方出现,并且最多出现一次,作用效果是所有的媒体段。格式如下:</p> <p style="color:rgb(51,51,51);font-family:Arial;font-size:14px;">                     #EXT-X-ALLOW-CACHE:<YES|NO></p> <p style="color:rgb(51,51,51);font-family:Arial;font-size:14px;">  <span style="color:rgb(0,0,153);"> #EXT-X-PLAYLIST-TYPE</span>: 提供关于PlayList的可变性的信息, 这个对整个PlayList文件有效,是可选的,格式如下:</p> <p style="color:rgb(51,51,51);font-family:Arial;font-size:14px;">                     #EXT-X-PLAYLIST-TYPE:<EVENT|VOD> :如果是VOD,则服务器不能改变PlayList 文件;如果是EVENT,则</p> <p style="color:rgb(51,51,51);font-family:Arial;font-size:14px;">服务器不能改变或是删除PlayList文件中的任何部分,但是可以向该文件中增加新的一行内容。</p> <p style="color:rgb(51,51,51);font-family:Arial;font-size:14px;">   <span style="color:rgb(0,0,153);">#EXT-X-ENDLIST</span>:表示PlayList的末尾了,它可以在PlayList中任意位置出现,但是只能出现一个,格式如下:</p> <p style="color:rgb(51,51,51);font-family:Arial;font-size:14px;">                     #EXT-X-ENDLIST</p> <p style="color:rgb(51,51,51);font-family:Arial;font-size:14px;">  <span style="color:rgb(0,0,153);"> #EXT-X-MEDIA</span>:被用来在PlayList中表示相同内容的不用语种/译文的版本,比如可以通过使用3个这种tag表示3中不用语音的音</p> <p style="color:rgb(51,51,51);font-family:Arial;font-size:14px;">频,或者用2个这个tag表示不同角度的video在PlayLists中。这个标签是独立存在的,其格式如下:</p> <p style="color:rgb(51,51,51);font-family:Arial;font-size:14px;">                    #EXT-X-MEDIA:<attribute-list>:该属性列表中包含:URI、TYPE、GROUP-ID、LANGUAGE、NAME、DEFAULT、AUTOSELECT。</p> <p style="color:rgb(51,51,51);font-family:Arial;font-size:14px;">                    URI:如果没有,则表示这个tag描述的可选择版本在主PlayList的EXT-X-STREAM-INF中存在;</p> <p style="color:rgb(51,51,51);font-family:Arial;font-size:14px;">                    TYPE:AUDIO and VIDEO;</p> <p style="color:rgb(51,51,51);font-family:Arial;font-size:14px;">                    GROUP-ID:具有相同ID的MEDIAtag,组成一组样式;</p> <p style="color:rgb(51,51,51);font-family:Arial;font-size:14px;">                    LANGUAGE:identifies the primary language used in the rendition。</p> <p style="color:rgb(51,51,51);font-family:Arial;font-size:14px;">                    NAME:The value is a quoted-string containing a human-readable description of the rendition. If the LANGUAGE attribute is present then this description SHOULD be in that language。</p> <p style="color:rgb(51,51,51);font-family:Arial;font-size:14px;">                    DEFAULT: YES或是NO,默认是No,如果是YES,则客户端会以这种选项来播放,除非用户自己进行选择。</p> <p style="color:rgb(51,51,51);font-family:Arial;font-size:14px;">                    AUTOSELECT:YES或是NO,默认是No,如果是YES,则客户端会根据当前播放环境来进行选择(用户没有根据自己偏好进行选择的前提下)。</p> <p style="color:rgb(51,51,51);font-family:Arial;font-size:14px;">        The EXT-X-MEDIA tag appeared in version 4 of the protocol。</p> <blockquote style="color:rgb(51,51,51);font-family:Arial;font-size:14px;"> <p>o All EXT-X-MEDIA tags in the same group MUST have the same TYPE<br> attribute.<br> o All EXT-X-MEDIA tags in the same group MUST have different NAME<br> attributes.<br> o A group MUST NOT have more than one member with a DEFAULT<br> attribute of YES.<br> o All members of a group whose AUTOSELECT attribute has a value of<br> YES MUST have LANGUAGE [RFC5646] attributes with unique values.<br> o All members of a group with TYPE=AUDIO MUST use the same audio<br> sample format.<br> o All members of a group with TYPE=VIDEO MUST use the same video<br> sample format。</p> <p><span style="color:rgb(0,0,153);"><br></span></p> </blockquote> <p style="color:rgb(51,51,51);font-family:Arial;font-size:14px;"><span style="color:rgb(0,0,153);">  #</span><span style="color:rgb(0,0,153);">EXT-X-STREAM-INF:<span style="color:rgb(0,0,0);">指定一个包含多媒体信息的 media URI 作为PlayList,一般做M3U8的嵌套使用,它只对紧跟后面的URI有</span></span></p> <p style="color:rgb(51,51,51);font-family:Arial;font-size:14px;"><span style="color:rgb(0,0,153);"><span style="color:rgb(0,0,0);">效,格式如下:</span></span></p> <p style="color:rgb(51,51,51);font-family:Arial;font-size:14px;"><span style="color:rgb(0,0,153);"><span style="color:rgb(0,0,0);">#EXT-X-STREAM-INF:<attribute-list><br> <URI></span></span></p> <p style="color:rgb(51,51,51);font-family:Arial;font-size:14px;"><span style="color:rgb(0,0,153);"><span style="color:rgb(0,0,0);">有以下属性:</span></span></p> <p style="color:rgb(51,51,51);font-family:Arial;font-size:14px;">BANDWIDTH:带宽,必须有。</p> <p style="color:rgb(51,51,51);font-family:Arial;font-size:14px;">PROGRAM-ID:该值是一个十进制整数,惟一地标识一个在PlayList文件范围内的特定的描述。一个PlayList 文件中可</p> <p style="color:rgb(51,51,51);font-family:Arial;font-size:14px;">能包含多个有相同ID的此tag。</p> <p style="color:rgb(51,51,51);font-family:Arial;font-size:14px;">CODECS:不是必须的。</p> <p style="color:rgb(51,51,51);font-family:Arial;font-size:14px;">RESOLUTION:分辨率。</p> <p style="color:rgb(51,51,51);font-family:Arial;font-size:14px;">AUDIO:这个值必须和AUDIO类别的“EXT-X-MEDIA”标签中“GROUP-ID”属性值相匹配。</p> <p style="color:rgb(51,51,51);font-family:Arial;font-size:14px;">VIDEO:同上</p> <p style="color:rgb(51,51,51);font-family:Arial;font-size:14px;"><br></p> <p style="color:rgb(51,51,51);font-family:Arial;font-size:14px;">例:</p> <p style="color:rgb(51,51,51);font-family:Arial;font-size:14px;"><span style="color:rgb(51,51,51);font-family:Arial;font-size:18px;"></span></p> <p style="color:rgb(51,51,51);font-family:Arial;font-size:14px;">一个实际使用中的顶级M3U8文件如下 :<br></p> <p style="color:rgb(51,51,51);font-family:Arial;font-size:14px;"><span style="font-size:18px;">#EXTM3U<br> #EXT-X-STREAM-INF:PROGRAM-ID=201273221265,BANDWIDTH=358400<br> 11.m3u8<br> #EXT-X-STREAM-INF:PROGRAM-ID=201273221265,BANDWIDTH=972800<br> 22.m3u8</span></p> <p style="color:rgb(51,51,51);font-family:Arial;font-size:14px;"><span style="font-size:24px;"><strong>上面顶级M3U8文件中又定义了 11.m3u8 和 22.m3u8 两个二级文件,客户端会选择其中一个获取其内容。</strong></span></p> <p style="color:rgb(51,51,51);font-family:Arial;font-size:14px;"><span style="font-size:24px;"><strong>二级M3U8文件内容如下:</strong></span></p> <p style="color:rgb(51,51,51);font-family:Arial;font-size:14px;"><span style="color:rgb(51,51,51);font-family:Arial;font-size:18px;">#EXTM3U</span><br style="color:rgb(51,51,51);font-family:Arial;font-size:18px;"><span style="color:rgb(51,51,51);font-family:Arial;font-size:18px;">#EXT-X-VERSION:1</span><br style="color:rgb(51,51,51);font-family:Arial;font-size:18px;"><span style="color:rgb(51,51,51);font-family:Arial;font-size:18px;">#EXT-X-TARGETDURATION:10</span><br style="color:rgb(51,51,51);font-family:Arial;font-size:18px;"><span style="color:rgb(51,51,51);font-family:Arial;font-size:18px;">#EXT-X-MEDIA-SEQUENCE:0</span><br style="color:rgb(51,51,51);font-family:Arial;font-size:18px;"><span style="color:rgb(51,51,51);font-family:Arial;font-size:18px;">#EXTINF:3,</span><br style="color:rgb(51,51,51);font-family:Arial;font-size:18px;"><span style="color:rgb(51,51,51);font-family:Arial;font-size:18px;">1-4.ts</span><br style="color:rgb(51,51,51);font-family:Arial;font-size:18px;"><span style="color:rgb(51,51,51);font-family:Arial;font-size:18px;">#EXTINF:8,</span><br style="color:rgb(51,51,51);font-family:Arial;font-size:18px;"><span style="color:rgb(51,51,51);font-family:Arial;font-size:18px;">1-6.ts</span><br style="color:rgb(51,51,51);font-family:Arial;font-size:18px;"><span style="color:rgb(51,51,51);font-family:Arial;font-size:18px;">#EXTINF:8,</span><br style="color:rgb(51,51,51);font-family:Arial;font-size:18px;"><span style="color:rgb(51,51,51);font-family:Arial;font-size:18px;">1-8.ts</span><br style="color:rgb(51,51,51);font-family:Arial;font-size:18px;"><span style="color:rgb(51,51,51);font-family:Arial;font-size:18px;">#EXTINF:8,</span><br style="color:rgb(51,51,51);font-family:Arial;font-size:18px;"><span style="color:rgb(51,51,51);font-family:Arial;font-size:18px;">1-10.ts</span><br style="color:rgb(51,51,51);font-family:Arial;font-size:18px;"><span style="color:rgb(51,51,51);font-family:Arial;font-size:18px;">#EXTINF:8,</span><br style="color:rgb(51,51,51);font-family:Arial;font-size:18px;"><span style="color:rgb(51,51,51);font-family:Arial;font-size:18px;">1-12.ts</span><br style="color:rgb(51,51,51);font-family:Arial;font-size:18px;"><span style="color:rgb(51,51,51);font-family:Arial;font-size:18px;">#EXTINF:8,</span><br style="color:rgb(51,51,51);font-family:Arial;font-size:18px;"><span style="color:rgb(51,51,51);font-family:Arial;font-size:18px;">1-14.ts</span><br style="color:rgb(51,51,51);font-family:Arial;font-size:18px;"><span style="color:rgb(51,51,51);font-family:Arial;font-size:18px;">#EXTINF:8,</span><br style="color:rgb(51,51,51);font-family:Arial;font-size:18px;"><span style="color:rgb(51,51,51);font-family:Arial;font-size:18px;">1-16.ts</span><br style="color:rgb(51,51,51);font-family:Arial;font-size:18px;"><span style="color:rgb(51,51,51);font-family:Arial;font-size:18px;">#EXTINF:9,</span><br style="color:rgb(51,51,51);font-family:Arial;font-size:18px;"><span style="color:rgb(51,51,51);font-family:Arial;font-size:18px;">1-18.ts</span><br style="color:rgb(51,51,51);font-family:Arial;font-size:18px;"><span style="color:rgb(51,51,51);font-family:Arial;font-size:18px;">#EXTINF:6,</span><br style="color:rgb(51,51,51);font-family:Arial;font-size:18px;"><span style="color:rgb(51,51,51);font-family:Arial;font-size:18px;">1-20.ts</span><br style="color:rgb(51,51,51);font-family:Arial;font-size:18px;"><span style="color:rgb(51,51,51);font-family:Arial;font-size:18px;">#EXTINF:8,</span><br style="color:rgb(51,51,51);font-family:Arial;font-size:18px;"><span style="color:rgb(51,51,51);font-family:Arial;font-size:18px;">1-22.ts</span><br style="color:rgb(51,51,51);font-family:Arial;font-size:18px;"><span style="color:rgb(51,51,51);font-family:Arial;font-size:18px;">#EXTINF:9,</span><br style="color:rgb(51,51,51);font-family:Arial;font-size:18px;"><span style="color:rgb(51,51,51);font-family:Arial;font-size:18px;">1-24.ts</span><br style="color:rgb(51,51,51);font-family:Arial;font-size:18px;"><span style="color:rgb(51,51,51);font-family:Arial;font-size:18px;">#EXTINF:3,</span><br style="color:rgb(51,51,51);font-family:Arial;font-size:18px;"><span style="color:rgb(51,51,51);font-family:Arial;font-size:18px;">1-26.ts</span><br style="color:rgb(51,51,51);font-family:Arial;font-size:18px;"><span style="color:rgb(51,51,51);font-family:Arial;font-size:18px;">#EXT-X-ENDLIST</span><br></p> <div> <br> </div> </div> </div> </div> </div> </div> <!--PC和WAP自适应版--> <div id="SOHUCS" sid="1290370805741461504"></div> <script type="text/javascript" src="/views/front/js/chanyan.js"></script> <!-- 文章页-底部 动态广告位 --> <div class="youdao-fixed-ad" id="detail_ad_bottom"></div> </div> <div class="col-md-3"> <div class="row" id="ad"> <!-- 文章页-右侧1 动态广告位 --> <div id="right-1" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad"> <div class="youdao-fixed-ad" id="detail_ad_1"> </div> </div> <!-- 文章页-右侧2 动态广告位 --> <div id="right-2" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad"> <div class="youdao-fixed-ad" id="detail_ad_2"></div> </div> <!-- 文章页-右侧3 动态广告位 --> <div id="right-3" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad"> <div class="youdao-fixed-ad" id="detail_ad_3"></div> </div> </div> </div> </div> </div> </div> <div class="container"> <h4 class="pt20 mb15 mt0 border-top">你可能感兴趣的:(直播技术,HLS,m3u8)</h4> <div id="paradigm-article-related"> <div class="recommend-post mb30"> <ul class="widget-links"> <li><a href="/article/1942039369175068672.htm" title="Unreal Engine开发:高级渲染技术_4.高级着色器编程" target="_blank">Unreal Engine开发:高级渲染技术_4.高级着色器编程</a> <span class="text-muted">chenlz2007</span> <a class="tag" taget="_blank" href="/search/%E6%B8%B8%E6%88%8F%E5%BC%80%E5%8F%91/1.htm">游戏开发</a><a class="tag" taget="_blank" href="/search/%E8%99%9A%E5%B9%BB/1.htm">虚幻</a><a class="tag" taget="_blank" href="/search/%E7%9D%80%E8%89%B2%E5%99%A8/1.htm">着色器</a><a class="tag" taget="_blank" href="/search/%E6%B8%B8%E6%88%8F%E5%BC%95%E6%93%8E/1.htm">游戏引擎</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%BA%93/1.htm">数据库</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C/1.htm">网络</a><a class="tag" taget="_blank" href="/search/rpc/1.htm">rpc</a> <div>4.高级着色器编程在上一节中,我们探讨了UnrealEngine中的基础渲染技术,包括光照、阴影和材质系统。本节将深入探讨高级着色器编程,帮助您掌握更复杂的渲染效果和优化技术。UnrealEngine的着色器系统是基于HLSL(High-LevelShadingLanguage)和USF(UnrealShaderFormat)的,这两种语言允许开发者编写高效的着色器代码,以实现各种视觉效果。4.1</div> </li> <li><a href="/article/1941360662605262848.htm" title="一个 可以在线播放 m3u8 的网页(非常实用)" target="_blank">一个 可以在线播放 m3u8 的网页(非常实用)</a> <span class="text-muted">西门吹雪1998</span> <a class="tag" taget="_blank" href="/search/%E8%85%BE%E8%AE%AF%E4%BA%91/1.htm">腾讯云</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a> <div>之前在做安卓直播流hls播放的功能,有时候失败了,不知道啥问题,就一直想着找一个可以在线播放的地方测试一下,找了好久终于找到一个,记录一下,以防下次需要用到。地址:https://m3u8player.org</div> </li> <li><a href="/article/1941258418140540928.htm" title="谷歌Google抓取视频使用受支持的视频文件类型" target="_blank">谷歌Google抓取视频使用受支持的视频文件类型</a> <span class="text-muted">阿酷tony</span> <a class="tag" taget="_blank" href="/search/Google/1.htm">Google</a><a class="tag" taget="_blank" href="/search/%E8%A7%86%E9%A2%91%E5%BA%94%E7%94%A8%E4%B8%93%E6%A0%8F/1.htm">视频应用专栏</a><a class="tag" taget="_blank" href="/search/%E9%9F%B3%E8%A7%86%E9%A2%91/1.htm">音视频</a><a class="tag" taget="_blank" href="/search/chrome/1.htm">chrome</a><a class="tag" taget="_blank" href="/search/%E8%B0%B7%E6%AD%8C%E8%A7%86%E9%A2%91/1.htm">谷歌视频</a> <div>谷歌Google抓取视频使用受支持的视频文件类型:若要能够使用视频功能,请使用受支持的视频文件类型。Google可处理以下类型的视频文件:3GP、3G2、ASF、AVI、DivX、M2V、M3U、M3U8、M4V、MKV、MOV、MP4、MPEG、OGV、QVT、RAM、RM、VOB、WebM、WMV和XAP。结构化数据类型定义本部分介绍了与Google搜索中的视频功能相关的结构化数据类型。若要使</div> </li> <li><a href="/article/1940783806604701696.htm" title="主流视频流格式及 Vue3 实现方案" target="_blank">主流视频流格式及 Vue3 实现方案</a> <span class="text-muted">玛卡巴卡半夜不睡觉</span> <a class="tag" taget="_blank" href="/search/html5/1.htm">html5</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/vue.js/1.htm">vue.js</a> <div>1.HLS(HTTPLiveStreaming)技术原理:基于HTTP的流媒体协议,使用.m3u8索引文件+.ts分片文件。特点:高兼容性(尤其iOS)、10+秒延迟、支持自适应码率。Vue3实现(video.js):npminstallvideo.jsvideojs-contrib-hlsimport{ref,onMounted,onUnmounted}from'vue';importvideo</div> </li> <li><a href="/article/1940588621748826112.htm" title="vscode配置vim" target="_blank">vscode配置vim</a> <span class="text-muted">silenci</span> <a class="tag" taget="_blank" href="/search/vscode/1.htm">vscode</a><a class="tag" taget="_blank" href="/search/vim/1.htm">vim</a><a class="tag" taget="_blank" href="/search/excel/1.htm">excel</a> <div>{"editor.fontSize":16,"editor.fontWeight":"normal","editor.fontFamily":"'FiraCode'","C_Cpp.enhancedColorization":"enabled","vim.normalModeKeyBindings":[{"before":["g","d"],"after":["*"]}],"vim.hlsearc</div> </li> <li><a href="/article/1940329364134621184.htm" title="Vue3 - 详解播放m3u8视频流+HLS拉流推流完整方案,vue3如何播放m3u8格式文件实时视频播放教程(流媒体播放、直播视频流、实时摄像头监控视频流对接、后端服务器切片分片传输视频流边下边播)" target="_blank">Vue3 - 详解播放m3u8视频流+HLS拉流推流完整方案,vue3如何播放m3u8格式文件实时视频播放教程(流媒体播放、直播视频流、实时摄像头监控视频流对接、后端服务器切片分片传输视频流边下边播)</a> <span class="text-muted">王二红</span> <a class="tag" taget="_blank" href="/search/%2B/1.htm">+</a><a class="tag" taget="_blank" href="/search/Vue3/1.htm">Vue3</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E9%97%AE%E9%A2%98%E6%B1%87%E6%80%BB/1.htm">开发问题汇总</a><a class="tag" taget="_blank" href="/search/vue3/1.htm">vue3</a><a class="tag" taget="_blank" href="/search/m3u8/1.htm">m3u8</a><a class="tag" taget="_blank" href="/search/hls/1.htm">hls</a><a class="tag" taget="_blank" href="/search/vue3%E6%92%AD%E6%94%BEm3u8%E8%A7%86%E9%A2%91%E6%B5%81%E6%95%99%E7%A8%8B/1.htm">vue3播放m3u8视频流教程</a><a class="tag" taget="_blank" href="/search/vue%E6%92%AD%E6%94%BEm3u8%E6%96%87%E4%BB%B6/1.htm">vue播放m3u8文件</a><a class="tag" taget="_blank" href="/search/vue3%E7%9B%B4%E6%92%AD%E8%A7%86%E9%A2%91%E6%B5%81%E6%92%AD%E6%94%BE/1.htm">vue3直播视频流播放</a><a class="tag" taget="_blank" href="/search/%E6%91%84%E5%83%8F%E5%A4%B4%E5%AE%9E%E6%97%B6%E7%9B%91%E6%8E%A7%E7%94%BB%E9%9D%A2%E8%A7%86%E9%A2%91%E6%B5%81/1.htm">摄像头实时监控画面视频流</a> <div>前言如果您需要Vue2版本,请访问这篇文章。在vue3(PC端+移动端H5)项目开发中,实现m3u8+hls视频流播放、实时流媒体播放高性能无延迟方案及源码,vue3播放3mu8文件/直播视频流,实时流媒体播放需求、做直播实时传输播放、摄像头监控画面视频流、服务器后端视频切片分段返给前端+边下边播等需求,解决前端网页播放视频流卡顿加载慢、无法载入黑屏、播放不流畅、CORS跨域、安卓苹果浏览器兼容等</div> </li> <li><a href="/article/1938150864258658304.htm" title="Vitis HLS 学习笔记--hls::stream(理解串流:基础)" target="_blank">Vitis HLS 学习笔记--hls::stream(理解串流:基础)</a> <span class="text-muted">hi94</span> <a class="tag" taget="_blank" href="/search/Vitis/1.htm">Vitis</a><a class="tag" taget="_blank" href="/search/HLS/1.htm">HLS</a><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0/1.htm">学习</a><a class="tag" taget="_blank" href="/search/%E7%AC%94%E8%AE%B0/1.htm">笔记</a><a class="tag" taget="_blank" href="/search/c%2B%2B/1.htm">c++</a><a class="tag" taget="_blank" href="/search/fpga%E5%BC%80%E5%8F%91/1.htm">fpga开发</a><a class="tag" taget="_blank" href="/search/HLS/1.htm">HLS</a> <div>目录1.介绍2.示例2.1代码解析2.2定义串流2.3串流的综合报告3.总结1.介绍在VitisHLS中,hls::stream是一个用于在C/C++中进行高级合成的关键数据结构。它类似于C++标准库中的std::stream,但是专门设计用于硬件描述语言(如Verilog或VHDL)中的数据流。hls::stream提供了一种方便的方法来处理数据流,使得在设计硬件加速器时更加灵活和可控。hls:</div> </li> <li><a href="/article/1937095774760398848.htm" title="Vue3+TS 视频播放器组件封装(Video.js + Hls.js 最佳组合,从零基础到精通,收藏这篇就够了!" target="_blank">Vue3+TS 视频播放器组件封装(Video.js + Hls.js 最佳组合,从零基础到精通,收藏这篇就够了!</a> <span class="text-muted"></span> <div>.hljs-comment,.hljs-quote{color:#b6b18b}.hljs-deletion,.hljs-name,.hljs-regexp,.hljs-selector-class,.hljs-selector-id,.hljs-tag,.hljs-template-variable,.hljs-variable{color:#eb3c54}.hljs-built_in,.hlj</div> </li> <li><a href="/article/1936979672634028032.htm" title="SRS(Simple Realtime Server) 开源直播/双录服务器" target="_blank">SRS(Simple Realtime Server) 开源直播/双录服务器</a> <span class="text-muted">@井九</span> <a class="tag" taget="_blank" href="/search/%E5%BC%80%E6%BA%90/1.htm">开源</a><a class="tag" taget="_blank" href="/search/%E6%9C%8D%E5%8A%A1%E5%99%A8/1.htm">服务器</a><a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4/1.htm">运维</a> <div>一、SRS是什么?SRS(SimpleRealtimeServer)是一个纯C++编写的高性能开源流媒体服务器,目标是打造简单、高效、易用、支持多协议的直播服务系统。自2013年开源以来,已成为国内外广泛使用的RTMP/WebRTC服务端方案之一。核心特性:支持主流直播协议:RTMP、HTTP-FLV、HLS、WebRTC、SRT、GB28181⚡支持亚秒级延迟:特别是WebRTC和HTTP-FL</div> </li> <li><a href="/article/1936479600364285952.htm" title="【以及好久没上号的闲聊】Unity记录8.1-地图-重构与优化" target="_blank">【以及好久没上号的闲聊】Unity记录8.1-地图-重构与优化</a> <span class="text-muted">MWHLS</span> <a class="tag" taget="_blank" href="/search/Unity/1.htm">Unity</a><a class="tag" taget="_blank" href="/search/unity/1.htm">unity</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E6%BA%90/1.htm">开源</a> <div>最近几年越来越懒,要是能分身多好哇,大家教教我懒得更CSDN了,所以不是很常上号,而CSDN的两周前私信显示的灰灰的也就是虽然我每次上号都有看私信,但是搞笑的是前面四个明显的消息全是CSDN的广告,我压根没看到两周前未读的私信很抱歉各位私信的好同志们这么久没回所以我特意找出了我这个游戏的开源起始篇,这篇我甚至在我自己博客上都还没发出来我的博客:mwhls.top虽然这个游戏可能还得再做好几年吧,反</div> </li> <li><a href="/article/1935867434355453952.htm" title="FPGA基础 -- Verilog函数" target="_blank">FPGA基础 -- Verilog函数</a> <span class="text-muted">sz66cm</span> <a class="tag" taget="_blank" href="/search/FPGA%E5%9F%BA%E7%A1%80/1.htm">FPGA基础</a><a class="tag" taget="_blank" href="/search/fpga%E5%BC%80%E5%8F%91/1.htm">fpga开发</a> <div>Verilog函数(function)目标:让具备一般RTL经验的工程师,系统掌握Verilog函数的语法、约束、可综合写法以及在实际项目中的高效用法,为后续SystemVerilog及HLS设计奠定基础。1为什么要用函数?设计痛点函数带来的价值重复逻辑:CRC、Parity、优先编码等往往在多个模块出现将共用运算封装为函数,避免复制粘贴,减少Bug概率可读性差:长表达式嵌套写在连线或always</div> </li> <li><a href="/article/1935839319306596352.htm" title="流媒体之LL-HLS 低延时HLS协议" target="_blank">流媒体之LL-HLS 低延时HLS协议</a> <span class="text-muted">艾浅觅</span> <a class="tag" taget="_blank" href="/search/%E6%B5%81%E5%AA%92%E4%BD%93%E5%8D%8F%E8%AE%AE%E5%BC%80%E5%8F%91%E7%9F%A5%E8%AF%86/1.htm">流媒体协议开发知识</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C/1.htm">网络</a> <div>文章目录1背景2LL-HLS协议2.1部分分段(PartialSegments)2.2播放列表增量更新(PlaylistDeltaUpdates)2.3阻止播放列表重新加载(BlockingofPlaylistReloads)2.4预加载提示(PreloadHints)2.5完整示例3总结LL-HLS是一个低延时HLS协议,它与HLS协议相比,在传输时,将视频数据分成多个小片,每个小片大小为1MB</div> </li> <li><a href="/article/1935577448234151936.htm" title="MMDet实例分割loss_rpn_bbox为nan但其它loss正常的解决" target="_blank">MMDet实例分割loss_rpn_bbox为nan但其它loss正常的解决</a> <span class="text-muted">MWHLS</span> <a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/pytorch/1.htm">pytorch</a><a class="tag" taget="_blank" href="/search/%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0/1.htm">深度学习</a><a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a> <div>文章首发见博客:https://mwhls.top/4901.html。无图/格式错误/后续更新请见首发页。更多更新请到mwhls.top查看欢迎留言提问或批评建议,私信不回。昨天还以为这个月无活可整,没想到第二天就来事了,下个月还好久,留到下月发也不大好(º﹃º)。问题描述使用MMDetection训练实例分割,训练可执行,测试可执行,但loss_rpn_bbox为nan,loss_bbox却有</div> </li> <li><a href="/article/1935279809064136704.htm" title="ffmpeg ,结合 SSRF任意文件读取漏洞" target="_blank">ffmpeg ,结合 SSRF任意文件读取漏洞</a> <span class="text-muted">德古拉的杂货铺</span> <a class="tag" taget="_blank" href="/search/%E6%B8%97%E9%80%8F%E6%B5%8B%E8%AF%95%E7%AF%87/1.htm">渗透测试篇</a><a class="tag" taget="_blank" href="/search/ffmpeg/1.htm">ffmpeg</a><a class="tag" taget="_blank" href="/search/%E5%AE%89%E5%85%A8%E6%BC%8F%E6%B4%9E/1.htm">安全漏洞</a><a class="tag" taget="_blank" href="/search/%E8%A7%86%E9%A2%91%E5%A4%84%E7%90%86/1.htm">视频处理</a> <div>ffmpeg,结合SSRF任意文件读取漏洞前言一、ffmpeg是什么?FFmpeg背景知识简介HLS(HTTPLiveStreaming)二、使用步骤CentOS7下的安装三、ffmpeg任意文件读取漏洞复现环境搭建漏洞利用修复建议前言初衷:最近空闲,想通过vulhub靶场进行学习,猛的看到ffmpeg,很熟悉。在2018年开发的堡垒机时,曾经用过它进行视频文件的处理。于是决定从它开始练习写博客。</div> </li> <li><a href="/article/1934287801411497984.htm" title="MATLAB基础应用精讲-【数模应用】RGB三色合成与分离(附MATLAB代码实现)" target="_blank">MATLAB基础应用精讲-【数模应用】RGB三色合成与分离(附MATLAB代码实现)</a> <span class="text-muted">林聪木</span> <a class="tag" taget="_blank" href="/search/opencv/1.htm">opencv</a><a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a><a class="tag" taget="_blank" href="/search/%E8%AE%A1%E7%AE%97%E6%9C%BA%E8%A7%86%E8%A7%89/1.htm">计算机视觉</a> <div>目录知识储备RGB三色原理HLS(色相、亮度、饱和度)原理算法原理什么是RGB彩色合成RGB三色的合成与分离图片的色彩空间转换色彩空间转换通道分离、合并图像rgb通道分离通道的拆分与合并通过函数拆分通道合并图像处理——颜色算子实验配置准备实验代码代码实现MATLAB知识储备RGB三色原理在中学的物理课中我们可能做过棱镜的试验,白光通过棱镜后被分解成多种颜色逐渐过渡的色谱,颜色依次为红、橙、黄、绿、</div> </li> <li><a href="/article/1934158595125997568.htm" title="【ffmpeg】将多段ts视频片段合成一个mp4" target="_blank">【ffmpeg】将多段ts视频片段合成一个mp4</a> <span class="text-muted">Evenurs</span> <a class="tag" taget="_blank" href="/search/ffmpeg/1.htm">ffmpeg</a><a class="tag" taget="_blank" href="/search/%E9%9F%B3%E8%A7%86%E9%A2%91/1.htm">音视频</a> <div>一、ffmpeg命令:ffmpeg-allowed_extensionsALL-protocol_whitelist"file,http,crypto,tcp"-i"D:\bb\media.m3u8"-ccopy-bsf:aaac_adtstoasc"D:\bb\output.mp4"二、python工具importosimportsysdefadd_ts_suffix_to_files():""</div> </li> <li><a href="/article/1934125068019888128.htm" title="全面掌握SRS服务器在CentOS7上的安装与配置" target="_blank">全面掌握SRS服务器在CentOS7上的安装与配置</a> <span class="text-muted">seiji morisako</span> <div>本文还有配套的精品资源,点击获取简介:SRS(SimpleRealtimeServer)是一个高效实时视频流服务服务器,尤其在LinuxCentOS764位操作系统上运行良好。它的5.0版本支持包括RTMP、WebRTC、HLS、HTTP-FLV、SRT和MPEG-DASH在内的多种网络协议,满足不同直播场景的视频传输需求。此压缩包包含安装和配置SRS所需的所有文件和文档。用户可通过修改配置参数,</div> </li> <li><a href="/article/1934124815388569600.htm" title="2020 cr节目源_2020/8月最新IPTV M3U8直播源分享" target="_blank">2020 cr节目源_2020/8月最新IPTV M3U8直播源分享</a> <span class="text-muted">seiji morisako</span> <a class="tag" taget="_blank" href="/search/2020/1.htm">2020</a><a class="tag" taget="_blank" href="/search/cr%E8%8A%82%E7%9B%AE%E6%BA%90/1.htm">cr节目源</a> <div>最新移动IPTV直播源,失效的已经去除了基本上全部可用!纯享4K20M2160,http://39.134.157.199/PLTV/88888888/224/3221225670/index.m3u8CCTV14M1080,http://39.134.157.205/PLTV/88888888/224/3221225591/index.m3u8CCTV18M1080,http://39.134.</div> </li> <li><a href="/article/1934108545763045376.htm" title="macOS上利用FFmpeg将m3u8转化为mp4实现播放" target="_blank">macOS上利用FFmpeg将m3u8转化为mp4实现播放</a> <span class="text-muted">Kaede0326</span> <a class="tag" taget="_blank" href="/search/%23/1.htm">#</a><a class="tag" taget="_blank" href="/search/macOS/1.htm">macOS</a><a class="tag" taget="_blank" href="/search/macos/1.htm">macos</a><a class="tag" taget="_blank" href="/search/ffmpeg/1.htm">ffmpeg</a><a class="tag" taget="_blank" href="/search/%E7%BB%8F%E9%AA%8C%E5%88%86%E4%BA%AB/1.htm">经验分享</a> <div>我们经常在浏览网页视频的时候试图下载,但是将文件打开后发现扩展名是.m3u8,使得系统默认或是常见的播放器无法打开它,这时候就需要借助转码工具,我经过查找,发现大部分可以实现上述功能的软件需要收费,要么就是不好用,所以特别推荐大家使用FFmpeg概要操作系统:macOS15.3设备:MacBookAir什么是FFmpeg?FFmpeg是一个开源跨平台的音视频处理工具,它可以用来录制、转换和流式播放</div> </li> <li><a href="/article/1932008178455736320.htm" title="Shader编写指南(六十): Shader运行时性能优化" target="_blank">Shader编写指南(六十): Shader运行时性能优化</a> <span class="text-muted">小李也疯狂</span> <a class="tag" taget="_blank" href="/search/%23/1.htm">#</a><a class="tag" taget="_blank" href="/search/%E7%90%86%E8%A7%A3%E7%9D%80%E8%89%B2%E5%99%A8%E3%80%90Shader%E3%80%91%E6%80%A7%E8%83%BD/1.htm">理解着色器【Shader】性能</a><a class="tag" taget="_blank" href="/search/%E6%80%A7%E8%83%BD%E4%BC%98%E5%8C%96/1.htm">性能优化</a><a class="tag" taget="_blank" href="/search/unity/1.htm">unity</a><a class="tag" taget="_blank" href="/search/shader/1.htm">shader</a> <div>不同平台的GPU性能差异显著(如高端PCGPU与低端移动GPU),为确保游戏在各类设备上流畅运行,需针对性优化着色器,减少计算量和纹理读取。以下是关键优化策略及实践建议:一、按需计算,避免冗余操作1.精简计算逻辑移除无效参数:若材质属性(如颜色)始终为固定值,直接在着色器中硬编码,避免动态计算。hlsl//反例:始终使用白色,仍从材质获取颜色fixed4color=_MainColor;//优化:</div> </li> <li><a href="/article/1931402117210238976.htm" title="视频爬虫的Python库" target="_blank">视频爬虫的Python库</a> <span class="text-muted">英英_</span> <a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a><a class="tag" taget="_blank" href="/search/%E9%9F%B3%E8%A7%86%E9%A2%91/1.htm">音视频</a> <div>1.请求与网络库最基础的HTTP请求库,用于发送GET/POST请求获取网页内容。示例:获取视频页面HTML或API响应。importrequestsresponse=requests.get('https://example.com/video/123')aiohttp异步HTTP请求库,适合大规模并发下载视频片段(如m3u8流)。优势:大幅提升下载速度。importaiohttpasyncwi</div> </li> <li><a href="/article/1931055070892322816.htm" title="SpringBoot实现简易直播" target="_blank">SpringBoot实现简易直播</a> <span class="text-muted">风象南</span> <a class="tag" taget="_blank" href="/search/%E5%8E%9F%E5%88%9B%E9%9A%8F%E7%AC%94/1.htm">原创随笔</a><a class="tag" taget="_blank" href="/search/%E5%90%8E%E7%AB%AF/1.htm">后端</a><a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/boot/1.htm">boot</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a> <div>当下直播技术已经成为各类应用不可或缺的一部分,从社交媒体到在线教育,再到电子商务和游戏领域,直播功能正在被广泛应用。本文将介绍如何使用SpringBoot框架构建一个直播流推拉系统。一、直播技术基础1.1推流与拉流概念直播系统的核心环节包括推流和拉流:推流(Push):指主播将采集的音视频数据通过特定协议发送到流媒体服务器的过程拉流(Pull):指观众从流媒体服务器获取音视频数据并播放的过程1.2</div> </li> <li><a href="/article/1930380844610940928.htm" title="婚恋小程序直播系统框架搭建" target="_blank">婚恋小程序直播系统框架搭建</a> <span class="text-muted">ALLSectorSorft</span> <a class="tag" taget="_blank" href="/search/%E5%B0%8F%E7%A8%8B%E5%BA%8F/1.htm">小程序</a> <div>逻辑分析直播流管理:需要处理主播端的直播流推送,确保直播流能够稳定、高效地传输到各个观看用户的设备上。这涉及到选择合适的流媒体协议,如RTMP(Real-TimeMessagingProtocol)、HLS(HTTPLiveStreaming)等。用户连接与互动:管理观众的连接,让他们能够顺利进入直播间观看直播。同时,提供互动功能,如聊天、点赞、送礼物等,增强用户之间以及用户与主播之间的互动性。直</div> </li> <li><a href="/article/1929162589405769728.htm" title="使用jessibuca+wvp+zlm实现html无插件播放摄像头实时画面" target="_blank">使用jessibuca+wvp+zlm实现html无插件播放摄像头实时画面</a> <span class="text-muted">nov4th</span> <a class="tag" taget="_blank" href="/search/webrtc/1.htm">webrtc</a><a class="tag" taget="_blank" href="/search/html/1.htm">html</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/%E5%AE%9E%E6%97%B6%E9%9F%B3%E8%A7%86%E9%A2%91/1.htm">实时音视频</a> <div>使用jessibuca+wvp+zlm实现html无插件播放摄像头实时画面环境一、flv、hls简易版二、进阶操作环境wvp+zlmjessibuca.jshtml5+jquerycrypto-js.min.js一、flv、hls简易版简易版播放停止销毁varshowOperateBtns=true;//是否显示按钮varjessibuca=null;//播放器对象//初始化播放器function</div> </li> <li><a href="/article/1928671529680302080.htm" title="nginx搭建直播推流服务&推流拉流鉴权" target="_blank">nginx搭建直播推流服务&推流拉流鉴权</a> <span class="text-muted">NaughtyBo</span> <a class="tag" taget="_blank" href="/search/%E8%A7%86%E9%A2%91%26amp%3B%E6%B5%81%E5%AA%92%E4%BD%93/1.htm">视频&流媒体</a><a class="tag" taget="_blank" href="/search/nginx/1.htm">nginx</a> <div>文章目录学习链接步骤使用nginx搭建直播推流服务安装依赖库下载nginx-http-flv-module模块下载nginx解压nginx,进入nginx目录设置nginx编译配置编译并安装配置nginxrtmp服务启动nginx准备另外一台电脑下载OBS下载OBSwindows|linux安装vlc观看直播flv协议hls协议使用ffmpeg命令行推流推流鉴权&拉流鉴权1、版本2、安装步骤3、n</div> </li> <li><a href="/article/1928481019355262976.htm" title="从零搭建云点播系统(一):开源组件选型、安全加密与成本优化" target="_blank">从零搭建云点播系统(一):开源组件选型、安全加密与成本优化</a> <span class="text-muted">Ai财富密码</span> <a class="tag" taget="_blank" href="/search/%E5%89%AF%E4%B8%9A%E9%A1%B9%E7%9B%AE/1.htm">副业项目</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E6%BA%90/1.htm">开源</a><a class="tag" taget="_blank" href="/search/%E5%AE%89%E5%85%A8/1.htm">安全</a> <div>笔者最近在开发几个项目,需要内网搭建在线视频系统,于是做了相关调研分析了领课在线教育、酷瓜云等,其中主要用的技术是云点播,云点播系统的实现依赖于多项关键技术:流媒体协议(如HLS、DASH)通过自适应码率技术保障流畅播放;分布式存储(如FastDFS)与智能转码(FFmpeg)实现海量资源的弹性管理与多端适配;P2P网络与CDN边缘计算突破带宽瓶颈,降低分发延迟;多级加密方案(AES、DRM)与数</div> </li> <li><a href="/article/1927546104782581760.htm" title="vue+ThreeJs 创建过渡圆圈效果" target="_blank">vue+ThreeJs 创建过渡圆圈效果</a> <span class="text-muted">资深前端之路</span> <a class="tag" taget="_blank" href="/search/threeJs/1.htm">threeJs</a><a class="tag" taget="_blank" href="/search/vue.js/1.htm">vue.js</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a> <div>嗨,我是小路。今天主要和大家分享的主题是“vue+ThreeJs创建过渡圆圈效果”。今天在做着色器过渡效果练习,发现出现了很多新的函数,这些都超出了js之外,需要更多的掌握和学习。以下是自己的复盘和梳理。1.获取距离定义:distance获取两个点之间的距离2.平滑过渡定义:smoothstep函数是用来平滑插值的函数。在HLSL或者其他着色语言中,smoothstep可能用于生成平滑的过渡效果,</div> </li> <li><a href="/article/1927229910741479424.htm" title="WebRTC与RTSP|RTMP的技术对比:低延迟与稳定性如何决定音视频直播的未来" target="_blank">WebRTC与RTSP|RTMP的技术对比:低延迟与稳定性如何决定音视频直播的未来</a> <span class="text-muted">音视频牛哥</span> <a class="tag" taget="_blank" href="/search/%E5%A4%A7%E7%89%9B%E7%9B%B4%E6%92%ADSDK/1.htm">大牛直播SDK</a><a class="tag" taget="_blank" href="/search/RTSP%E6%92%AD%E6%94%BE%E5%99%A8/1.htm">RTSP播放器</a><a class="tag" taget="_blank" href="/search/RTMP%E6%8E%A8%E6%B5%81/1.htm">RTMP推流</a><a class="tag" taget="_blank" href="/search/WebRTC%E8%BF%98%E6%98%AFRTMP/1.htm">WebRTC还是RTMP</a><a class="tag" taget="_blank" href="/search/%E9%9F%B3%E8%A7%86%E9%A2%91/1.htm">音视频</a><a class="tag" taget="_blank" href="/search/WebRTC%E8%BF%98%E6%98%AFRTSP/1.htm">WebRTC还是RTSP</a><a class="tag" taget="_blank" href="/search/WebRTC%E5%92%8CRTMP%E5%AF%B9%E6%AF%94/1.htm">WebRTC和RTMP对比</a><a class="tag" taget="_blank" href="/search/RTMP/1.htm">RTMP</a><a class="tag" taget="_blank" href="/search/RTSP/1.htm">RTSP</a><a class="tag" taget="_blank" href="/search/%E5%A4%A7%E7%89%9B%E7%9B%B4%E6%92%ADSDK/1.htm">大牛直播SDK</a> <div>引言音视频直播技术已经深刻影响了我们的生活方式,尤其是在教育、医疗、安防、娱乐等行业中,音视频技术成为了行业发展的重要推动力。近年来,WebRTC作为一种开源的实时通信技术,成为了音视频领域的重要选择,它使得浏览器和移动设备之间的音视频通信变得更加简便和高效。然而,WebRTC并非在所有情况下都是最优选择,尤其在高并发、大规模直播、低延迟和高稳定性的应用场景下,WebRTC的局限性逐渐显现。在这方</div> </li> <li><a href="/article/1926962984719020032.htm" title="通过vivado HLS设计一个FIR低通滤波器" target="_blank">通过vivado HLS设计一个FIR低通滤波器</a> <span class="text-muted">fpga和matlab</span> <a class="tag" taget="_blank" href="/search/Vivado/1.htm">Vivado</a><a class="tag" taget="_blank" href="/search/HLS%E5%BC%80%E5%8F%91/1.htm">HLS开发</a><a class="tag" taget="_blank" href="/search/vivado/1.htm">vivado</a><a class="tag" taget="_blank" href="/search/HLS/1.htm">HLS</a><a class="tag" taget="_blank" href="/search/FIR%E4%BD%8E%E9%80%9A%E6%BB%A4%E6%B3%A2%E5%99%A8/1.htm">FIR低通滤波器</a> <div>目录1.FIR参数确定2.FIR系数计算3.C/C++代码实现4.VivadoHLS项目创建与配置4.1在VivadoHLS中创建新项目并配置4.2在VivadoHLS中执行C仿真4.3执行C综合以将C代码转换为RTL4.4进行RTL级仿真验证4.5导出IP4.6在Vivado中集成IPVivadoHLS是一款强大的高层次综合工具,可将C/C++代码转换为硬件描述语言(HDL),显著提升FPGA开</div> </li> <li><a href="/article/1926383763655290880.htm" title="数字人直播项目可行性分析,文章最后附免费开源项目地址!" target="_blank">数字人直播项目可行性分析,文章最后附免费开源项目地址!</a> <span class="text-muted">劲爽小猴头</span> <a class="tag" taget="_blank" href="/search/%E5%A4%A7%E6%95%B0%E6%8D%AE/1.htm">大数据</a><a class="tag" taget="_blank" href="/search/AIGC/1.htm">AIGC</a><a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a><a class="tag" taget="_blank" href="/search/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0/1.htm">机器学习</a><a class="tag" taget="_blank" href="/search/%E7%A5%9E%E7%BB%8F%E7%BD%91%E7%BB%9C/1.htm">神经网络</a> <div>数字人直播项目可行性分析报告导航目录数字人直播项目可行性分析报告引言互动式数字人直播技术的当前发展水平现有数字人直播项目案例分析实时直播评论分析的技术方案驱动数字人做出相应反应的技术实现该项目可能面临的技术门槛项目投入成本评估实际应用中的潜在优势和挑战行业洞察与未来趋势结论建议引用的著作相关开源技术数字人是什么?技术门槛警告:为什么要用数字人?如何打造数字人?哪些领域正在爆发?谁在闷声发财?现在入</div> </li> <li><a href="/article/38.htm" title="ASM系列六 利用TreeApi 添加和移除类成员" target="_blank">ASM系列六 利用TreeApi 添加和移除类成员</a> <span class="text-muted">lijingyao8206</span> <a class="tag" taget="_blank" href="/search/jvm/1.htm">jvm</a><a class="tag" taget="_blank" href="/search/%E5%8A%A8%E6%80%81%E4%BB%A3%E7%90%86/1.htm">动态代理</a><a class="tag" taget="_blank" href="/search/ASM/1.htm">ASM</a><a class="tag" taget="_blank" href="/search/%E5%AD%97%E8%8A%82%E7%A0%81%E6%8A%80%E6%9C%AF/1.htm">字节码技术</a><a class="tag" taget="_blank" href="/search/TreeAPI/1.htm">TreeAPI</a> <div>    同生成的做法一样,添加和移除类成员只要去修改fields和methods中的元素即可。这里我们拿一个简单的类做例子,下面这个Task类,我们来移除isNeedRemove方法,并且添加一个int 类型的addedField属性。   package asm.core; /** * Created by yunshen.ljy on 2015/6/</div> </li> <li><a href="/article/165.htm" title="Springmvc-权限设计" target="_blank">Springmvc-权限设计</a> <span class="text-muted">bee1314</span> <a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/Web/1.htm">Web</a><a class="tag" taget="_blank" href="/search/jsp/1.htm">jsp</a> <div> 万丈高楼平地起。 权限管理对于管理系统而言已经是标配中的标配了吧,对于我等俗人更是不能免俗。同时就目前的项目状况而言,我们还不需要那么高大上的开源的解决方案,如Spring Security,Shiro。小伙伴一致决定我们还是从基本的功能迭代起来吧。 目标: 1.实现权限的管理(CRUD) 2.实现部门管理 (CRUD) 3.实现人员的管理 (CRUD) 4.实现部门和权限</div> </li> <li><a href="/article/292.htm" title="算法竞赛入门经典(第二版)第2章习题" target="_blank">算法竞赛入门经典(第二版)第2章习题</a> <span class="text-muted">CrazyMizzz</span> <a class="tag" taget="_blank" href="/search/c/1.htm">c</a><a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95/1.htm">算法</a> <div>2.4.1 输出技巧 #include <stdio.h> int main() { int i, n; scanf("%d", &n); for (i = 1; i <= n; i++) printf("%d\n", i); return 0; } 习题2-2 水仙花数(daffodil</div> </li> <li><a href="/article/419.htm" title="struts2中jsp自动跳转到Action" target="_blank">struts2中jsp自动跳转到Action</a> <span class="text-muted">麦田的设计者</span> <a class="tag" taget="_blank" href="/search/jsp/1.htm">jsp</a><a class="tag" taget="_blank" href="/search/webxml/1.htm">webxml</a><a class="tag" taget="_blank" href="/search/struts2/1.htm">struts2</a><a class="tag" taget="_blank" href="/search/%E8%87%AA%E5%8A%A8%E8%B7%B3%E8%BD%AC/1.htm">自动跳转</a> <div>1、在struts2的开发中,经常需要用户点击网页后就直接跳转到一个Action,执行Action里面的方法,利用mvc分层思想执行相应操作在界面上得到动态数据。毕竟用户不可能在地址栏里输入一个Action(不是专业人士)   2、<jsp:forward page="xxx.action" /> ,这个标签可以实现跳转,page的路径是相对地址,不同与jsp和j</div> </li> <li><a href="/article/546.htm" title="php 操作webservice实例" target="_blank">php 操作webservice实例</a> <span class="text-muted">IT独行者</span> <a class="tag" taget="_blank" href="/search/PHP/1.htm">PHP</a><a class="tag" taget="_blank" href="/search/webservice/1.htm">webservice</a> <div>首先大家要简单了解了何谓webservice,接下来就做两个非常简单的例子,webservice还是逃不开server端与client端。我测试的环境为:apache2.2.11 php5.2.10做这个测试之前,要确认你的php配置文件中已经将soap扩展打开,即extension=php_soap.dll; OK 现在我们来体验webservice //server端 serve</div> </li> <li><a href="/article/673.htm" title="Windows下使用Vagrant安装linux系统" target="_blank">Windows下使用Vagrant安装linux系统</a> <span class="text-muted">_wy_</span> <a class="tag" taget="_blank" href="/search/windows/1.htm">windows</a><a class="tag" taget="_blank" href="/search/vagrant/1.htm">vagrant</a> <div>准备工作: 下载安装 VirtualBox :https://www.virtualbox.org/ 下载安装 Vagrant :http://www.vagrantup.com/ 下载需要使用的 box : 官方提供的范例:http://files.vagrantup.com/precise32.box 还可以在 http://www.vagrantbox.es/ </div> </li> <li><a href="/article/800.htm" title="更改linux的文件拥有者及用户组(chown和chgrp)" target="_blank">更改linux的文件拥有者及用户组(chown和chgrp)</a> <span class="text-muted">无量</span> <a class="tag" taget="_blank" href="/search/c/1.htm">c</a><a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/chgrp/1.htm">chgrp</a><a class="tag" taget="_blank" href="/search/chown/1.htm">chown</a> <div>本文(转) http://blog.163.com/yanenshun@126/blog/static/128388169201203011157308/ http://ydlmlh.iteye.com/blog/1435157 一、基本使用: 使用chown命令可以修改文件或目录所属的用户:        命令</div> </li> <li><a href="/article/927.htm" title="linux下抓包工具" target="_blank">linux下抓包工具</a> <span class="text-muted">矮蛋蛋</span> <a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a> <div>原文地址: http://blog.chinaunix.net/uid-23670869-id-2610683.html tcpdump -nn -vv -X udp port 8888 上面命令是抓取udp包、端口为8888 netstat -tln 命令是用来查看linux的端口使用情况 13 . 列出所有的网络连接 lsof -i 14. 列出所有tcp 网络连接信息 l</div> </li> <li><a href="/article/1054.htm" title="我觉得mybatis是垃圾!:“每一个用mybatis的男纸,你伤不起”" target="_blank">我觉得mybatis是垃圾!:“每一个用mybatis的男纸,你伤不起”</a> <span class="text-muted">alafqq</span> <a class="tag" taget="_blank" href="/search/mybatis/1.htm">mybatis</a> <div>最近看了  每一个用mybatis的男纸,你伤不起 原文地址 :http://www.iteye.com/topic/1073938 发表一下个人看法。欢迎大神拍砖; 个人一直使用的是Ibatis框架,公司对其进行过小小的改良; 最近换了公司,要使用新的框架。听说mybatis不错;就对其进行了部分的研究; 发现多了一个mapper层;个人感觉就是个dao; </div> </li> <li><a href="/article/1181.htm" title="解决java数据交换之谜" target="_blank">解决java数据交换之谜</a> <span class="text-muted">百合不是茶</span> <a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E4%BA%A4%E6%8D%A2/1.htm">数据交换</a> <div>交换两个数字的方法有以下三种 ,其中第一种最常用   /* 输出最小的一个数 */ public class jiaohuan1 { public static void main(String[] args) { int a =4; int b = 3; if(a<b){ // 第一种交换方式 int tmep =</div> </li> <li><a href="/article/1308.htm" title="渐变显示" target="_blank">渐变显示</a> <span class="text-muted">bijian1013</span> <a class="tag" taget="_blank" href="/search/JavaScript/1.htm">JavaScript</a> <div><style type="text/css"> #wxf { FILTER: progid:DXImageTransform.Microsoft.Gradient(GradientType=0, StartColorStr=#ffffff, EndColorStr=#97FF98); height: 25px; } </style></div> </li> <li><a href="/article/1435.htm" title="探索JUnit4扩展:断言语法assertThat" target="_blank">探索JUnit4扩展:断言语法assertThat</a> <span class="text-muted">bijian1013</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E5%8D%95%E5%85%83%E6%B5%8B%E8%AF%95/1.htm">单元测试</a><a class="tag" taget="_blank" href="/search/assertThat/1.htm">assertThat</a> <div>一.概述         JUnit 设计的目的就是有效地抓住编程人员写代码的意图,然后快速检查他们的代码是否与他们的意图相匹配。 JUnit 发展至今,版本不停的翻新,但是所有版本都一致致力于解决一个问题,那就是如何发现编程人员的代码意图,并且如何使得编程人员更加容易地表达他们的代码意图。JUnit 4.4 也是为了如何能够</div> </li> <li><a href="/article/1562.htm" title="【Gson三】Gson解析{"data":{"IM":["MSN","QQ","Gtalk"]}}" target="_blank">【Gson三】Gson解析{"data":{"IM":["MSN","QQ","Gtalk"]}}</a> <span class="text-muted">bit1129</span> <a class="tag" taget="_blank" href="/search/gson/1.htm">gson</a> <div>  如何把如下简单的JSON字符串反序列化为Java的POJO对象? {"data":{"IM":["MSN","QQ","Gtalk"]}}   下面的POJO类Model无法完成正确的解析:   import com.google.gson.Gson;</div> </li> <li><a href="/article/1689.htm" title="【Kafka九】Kafka High Level API vs. Low Level API" target="_blank">【Kafka九】Kafka High Level API vs. Low Level API</a> <span class="text-muted">bit1129</span> <a class="tag" taget="_blank" href="/search/kafka/1.htm">kafka</a> <div>1. Kafka提供了两种Consumer API High Level Consumer API Low Level Consumer API(Kafka诡异的称之为Simple Consumer API,实际上非常复杂) 在选用哪种Consumer API时,首先要弄清楚这两种API的工作原理,能做什么不能做什么,能做的话怎么做的以及用的时候,有哪些可能的问题  </div> </li> <li><a href="/article/1816.htm" title="在nginx中集成lua脚本:添加自定义Http头,封IP等" target="_blank">在nginx中集成lua脚本:添加自定义Http头,封IP等</a> <span class="text-muted">ronin47</span> <a class="tag" taget="_blank" href="/search/nginx+lua/1.htm">nginx lua</a> <div>Lua是一个可以嵌入到Nginx配置文件中的动态脚本语言,从而可以在Nginx请求处理的任何阶段执行各种Lua代码。刚开始我们只是用Lua 把请求路由到后端服务器,但是它对我们架构的作用超出了我们的预期。下面就讲讲我们所做的工作。 强制搜索引擎只索引mixlr.com Google把子域名当作完全独立的网站,我们不希望爬虫抓取子域名的页面,降低我们的Page rank。 location /{</div> </li> <li><a href="/article/1943.htm" title="java-归并排序" target="_blank">java-归并排序</a> <span class="text-muted">bylijinnan</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a> <div> import java.util.Arrays; public class MergeSort { public static void main(String[] args) { int[] a={20,1,3,8,5,9,4,25}; mergeSort(a,0,a.length-1); System.out.println(Arrays.to</div> </li> <li><a href="/article/2070.htm" title="Netty源码学习-CompositeChannelBuffer" target="_blank">Netty源码学习-CompositeChannelBuffer</a> <span class="text-muted">bylijinnan</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/netty/1.htm">netty</a> <div>CompositeChannelBuffer体现了Netty的“Transparent Zero Copy” 查看API( http://docs.jboss.org/netty/3.2/api/org/jboss/netty/buffer/package-summary.html#package_description) 可以看到,所谓“Transparent Zero Copy”是通</div> </li> <li><a href="/article/2197.htm" title="Android中给Activity添加返回键" target="_blank">Android中给Activity添加返回键</a> <span class="text-muted">hotsunshine</span> <a class="tag" taget="_blank" href="/search/Activity/1.htm">Activity</a> <div> // this need android:minSdkVersion="11" getActionBar().setDisplayHomeAsUpEnabled(true); @Override public boolean onOptionsItemSelected(MenuItem item) { </div> </li> <li><a href="/article/2324.htm" title="静态页面传参" target="_blank">静态页面传参</a> <span class="text-muted">ctrain</span> <a class="tag" taget="_blank" href="/search/%E9%9D%99%E6%80%81/1.htm">静态</a> <div> $(document).ready(function () { var request = { QueryString : function (val) { var uri = window.location.search; var re = new RegExp("" + val + "=([^&?]*)", &</div> </li> <li><a href="/article/2451.htm" title="Windows中查找某个目录下的所有文件中包含某个字符串的命令" target="_blank">Windows中查找某个目录下的所有文件中包含某个字符串的命令</a> <span class="text-muted">daizj</span> <a class="tag" taget="_blank" href="/search/windows/1.htm">windows</a><a class="tag" taget="_blank" href="/search/%E6%9F%A5%E6%89%BE%E6%9F%90%E4%B8%AA%E7%9B%AE%E5%BD%95%E4%B8%8B%E7%9A%84%E6%89%80%E6%9C%89%E6%96%87%E4%BB%B6/1.htm">查找某个目录下的所有文件</a><a class="tag" taget="_blank" href="/search/%E5%8C%85%E5%90%AB%E6%9F%90%E4%B8%AA%E5%AD%97%E7%AC%A6%E4%B8%B2/1.htm">包含某个字符串</a> <div>findstr可以完成这个工作。   [html]  view plain copy   >findstr /s /i "string" *.*   上面的命令表示,当前目录以及当前目录的所有子目录下的所有文件中查找"string&qu</div> </li> <li><a href="/article/2578.htm" title="改善程序代码质量的一些技巧" target="_blank">改善程序代码质量的一些技巧</a> <span class="text-muted">dcj3sjt126com</span> <a class="tag" taget="_blank" href="/search/%E7%BC%96%E7%A8%8B/1.htm">编程</a><a class="tag" taget="_blank" href="/search/PHP/1.htm">PHP</a><a class="tag" taget="_blank" href="/search/%E9%87%8D%E6%9E%84/1.htm">重构</a> <div>有很多理由都能说明为什么我们应该写出清晰、可读性好的程序。最重要的一点,程序你只写一次,但以后会无数次的阅读。当你第二天回头来看你的代码 时,你就要开始阅读它了。当你把代码拿给其他人看时,他必须阅读你的代码。因此,在编写时多花一点时间,你会在阅读它时节省大量的时间。让我们看一些基本的编程技巧:    尽量保持方法简短    尽管很多人都遵</div> </li> <li><a href="/article/2705.htm" title="SharedPreferences对数据的存储" target="_blank">SharedPreferences对数据的存储</a> <span class="text-muted">dcj3sjt126com</span> <div>SharedPreferences简介:                                                   &nbs</div> </li> <li><a href="/article/2832.htm" title="linux复习笔记之bash shell (2) bash基础" target="_blank">linux复习笔记之bash shell (2) bash基础</a> <span class="text-muted">eksliang</span> <a class="tag" taget="_blank" href="/search/bash/1.htm">bash</a><a class="tag" taget="_blank" href="/search/bash+shell/1.htm">bash shell</a> <div>转载请出自出处: http://eksliang.iteye.com/blog/2104329 1.影响显示结果的语系变量(locale)  1.1locale这个命令就是查看当前系统支持多少种语系,命令使用如下: [root@localhost shell]# locale LANG=en_US.UTF-8 LC_CTYPE="en_US.UTF-8" </div> </li> <li><a href="/article/2959.htm" title="Android零碎知识总结" target="_blank">Android零碎知识总结</a> <span class="text-muted">gqdy365</span> <a class="tag" taget="_blank" href="/search/android/1.htm">android</a> <div>1、CopyOnWriteArrayList add(E) 和remove(int index)都是对新的数组进行修改和新增。所以在多线程操作时不会出现java.util.ConcurrentModificationException错误。 所以最后得出结论:CopyOnWriteArrayList适合使用在读操作远远大于写操作的场景里,比如缓存。发生修改时候做copy,新老版本分离,保证读的高</div> </li> <li><a href="/article/3086.htm" title="HoverTree.Model.ArticleSelect类的作用" target="_blank">HoverTree.Model.ArticleSelect类的作用</a> <span class="text-muted">hvt</span> <a class="tag" taget="_blank" href="/search/Web/1.htm">Web</a><a class="tag" taget="_blank" href="/search/.net/1.htm">.net</a><a class="tag" taget="_blank" href="/search/C%23/1.htm">C#</a><a class="tag" taget="_blank" href="/search/hovertree/1.htm">hovertree</a><a class="tag" taget="_blank" href="/search/asp.net/1.htm">asp.net</a> <div>ArticleSelect类在命名空间HoverTree.Model中可以认为是文章查询条件类,用于存放查询文章时的条件,例如HvtId就是文章的id。HvtIsShow就是文章的显示属性,当为-1是,该条件不产生作用,当为0时,查询不公开显示的文章,当为1时查询公开显示的文章。HvtIsHome则为是否在首页显示。HoverTree系统源码完全开放,开发环境为Visual Studio 2013</div> </li> <li><a href="/article/3213.htm" title="PHP 判断是否使用代理 PHP Proxy Detector" target="_blank">PHP 判断是否使用代理 PHP Proxy Detector</a> <span class="text-muted">天梯梦</span> <a class="tag" taget="_blank" href="/search/proxy/1.htm">proxy</a> <div>1. php 类 I found this class looking for something else actually but I remembered I needed some while ago something similar and I never found one. I'm sure it will help a lot of developers who try to </div> </li> <li><a href="/article/3340.htm" title="apache的math库中的回归——regression(翻译)" target="_blank">apache的math库中的回归——regression(翻译)</a> <span class="text-muted">lvdccyb</span> <a class="tag" taget="_blank" href="/search/Math/1.htm">Math</a><a class="tag" taget="_blank" href="/search/apache/1.htm">apache</a> <div>这个Math库,虽然不向weka那样专业的ML库,但是用户友好,易用。 多元线性回归,协方差和相关性(皮尔逊和斯皮尔曼),分布测试(假设检验,t,卡方,G),统计。   数学库中还包含,Cholesky,LU,SVD,QR,特征根分解,真不错。   基本覆盖了:线代,统计,矩阵, 最优化理论 曲线拟合 常微分方程 遗传算法(GA), 还有3维的运算。。。 </div> </li> <li><a href="/article/3467.htm" title="基础数据结构和算法十三:Undirected Graphs (2)" target="_blank">基础数据结构和算法十三:Undirected Graphs (2)</a> <span class="text-muted">sunwinner</span> <a class="tag" taget="_blank" href="/search/Algorithm/1.htm">Algorithm</a> <div>  Design pattern for graph processing. Since we consider a large number of graph-processing algorithms, our initial design goal is to decouple our implementations from the graph representation</div> </li> <li><a href="/article/3594.htm" title="云计算平台最重要的五项技术" target="_blank">云计算平台最重要的五项技术</a> <span class="text-muted">sumapp</span> <a class="tag" taget="_blank" href="/search/%E4%BA%91%E8%AE%A1%E7%AE%97/1.htm">云计算</a><a class="tag" taget="_blank" href="/search/%E4%BA%91%E5%B9%B3%E5%8F%B0/1.htm">云平台</a><a class="tag" taget="_blank" href="/search/%E6%99%BA%E5%9F%8E%E4%BA%91/1.htm">智城云</a> <div>云计算平台最重要的五项技术 1、云服务器 云服务器提供简单高效,处理能力可弹性伸缩的计算服务,支持国内领先的云计算技术和大规模分布存储技术,使您的系统更稳定、数据更安全、传输更快速、部署更灵活。 特性 机型丰富 通过高性能服务器虚拟化为云服务器,提供丰富配置类型虚拟机,极大简化数据存储、数据库搭建、web服务器搭建等工作; 仅需要几分钟,根据CP</div> </li> <li><a href="/article/3721.htm" title="《京东技术解密》有奖试读获奖名单公布" target="_blank">《京东技术解密》有奖试读获奖名单公布</a> <span class="text-muted">ITeye管理员</span> <a class="tag" taget="_blank" href="/search/%E6%B4%BB%E5%8A%A8/1.htm">活动</a> <div>ITeye携手博文视点举办的12月技术图书有奖试读活动已圆满结束,非常感谢广大用户对本次活动的关注与参与。  12月试读活动回顾: http://webmaster.iteye.com/blog/2164754 本次技术图书试读活动获奖名单及相应作品如下: 一等奖(两名) Microhardest:http://microhardest.ite</div> </li> </ul> </div> </div> </div> <div> <div class="container"> <div class="indexes"> <strong>按字母分类:</strong> <a href="/tags/A/1.htm" target="_blank">A</a><a href="/tags/B/1.htm" target="_blank">B</a><a href="/tags/C/1.htm" target="_blank">C</a><a href="/tags/D/1.htm" target="_blank">D</a><a href="/tags/E/1.htm" target="_blank">E</a><a href="/tags/F/1.htm" target="_blank">F</a><a href="/tags/G/1.htm" target="_blank">G</a><a href="/tags/H/1.htm" target="_blank">H</a><a href="/tags/I/1.htm" target="_blank">I</a><a href="/tags/J/1.htm" target="_blank">J</a><a href="/tags/K/1.htm" target="_blank">K</a><a href="/tags/L/1.htm" target="_blank">L</a><a href="/tags/M/1.htm" target="_blank">M</a><a href="/tags/N/1.htm" target="_blank">N</a><a href="/tags/O/1.htm" target="_blank">O</a><a href="/tags/P/1.htm" target="_blank">P</a><a href="/tags/Q/1.htm" target="_blank">Q</a><a href="/tags/R/1.htm" target="_blank">R</a><a href="/tags/S/1.htm" target="_blank">S</a><a href="/tags/T/1.htm" target="_blank">T</a><a href="/tags/U/1.htm" target="_blank">U</a><a href="/tags/V/1.htm" target="_blank">V</a><a href="/tags/W/1.htm" target="_blank">W</a><a href="/tags/X/1.htm" target="_blank">X</a><a href="/tags/Y/1.htm" target="_blank">Y</a><a href="/tags/Z/1.htm" target="_blank">Z</a><a href="/tags/0/1.htm" target="_blank">其他</a> </div> </div> </div> <footer id="footer" class="mb30 mt30"> <div class="container"> <div class="footBglm"> <a target="_blank" href="/">首页</a> - <a target="_blank" href="/custom/about.htm">关于我们</a> - <a target="_blank" href="/search/Java/1.htm">站内搜索</a> - <a target="_blank" href="/sitemap.txt">Sitemap</a> - <a target="_blank" href="/custom/delete.htm">侵权投诉</a> </div> <div class="copyright">版权所有 IT知识库 CopyRight © 2000-2050 E-COM-NET.COM , All Rights Reserved. <!-- <a href="https://beian.miit.gov.cn/" rel="nofollow" target="_blank">京ICP备09083238号</a><br>--> </div> </div> </footer> <!-- 代码高亮 --> <script type="text/javascript" src="/static/syntaxhighlighter/scripts/shCore.js"></script> <script type="text/javascript" src="/static/syntaxhighlighter/scripts/shLegacy.js"></script> <script type="text/javascript" src="/static/syntaxhighlighter/scripts/shAutoloader.js"></script> <link type="text/css" rel="stylesheet" href="/static/syntaxhighlighter/styles/shCoreDefault.css"/> <script type="text/javascript" src="/static/syntaxhighlighter/src/my_start_1.js"></script> </body> </html>