HLS M3U8 详解

1. HLS

HLS是为移动设备开发的基于HTTP的流媒体解决方案。

2. 原理:

将视频或流切分成小片(TS), 并建立索引(M3U8).

支持视频流:H.264; 音频流:AAC


3. M3U8文件解析

M3U8文件在很多地方也叫做Playlist file。

一个简单的例子:

#EXTM3U 

#EXT-X-TARGETDURATION:10

#EXT-X-MEDIA-SEQUENCE:1 

#EXTINF:10, http://media.example.com/segment0.ts 

#EXTINF:10, http://media.example.com/segment1.ts
#EXTINF:10, http://media.example.com/segment2.ts 

#EXT-X-ENDLIST (VOD含EXT-X-ENDLIST,live stream则没有)


3.1 File

一个M3U的 Playlist 就是一个由多个独立行组成的文本文件,每行由回车/换行区分。每一行可以是一个URI  空白行或是以”#“号开头的字符串,并且空格只能存在于一行中不同元素间的分隔。  

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

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


3.2 Tag

#EXTM3U:

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

#EXTINF

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

  #EXTINF:, :</p> <p> duration表示持续的时间(秒)”Durations MUST be integers if the protocol version of the Playlist file is less than 3“,否则可以是浮点数。<br></p> <p><strong>#EXT-X-BYTERANGE:</strong></p> <p>表示媒体段是一个媒体URI资源中的一段,只对其后的media URI有效,格式如下:<br>  #EXT-X-BYTERANGE:<n>[@o]:<br>  其中n表示这个区间的大小,o表在URI中的offset;”The EXT-X-BYTERANGE tag appeared in version 4 of the protocol“。<br></p> <p><strong>#EXT-X-TARGETDURATION</strong></p> <p>指定最大的媒体段时间长(秒)。所以#EXTINF中指定的时间长度必须小于或是等于这个最大值。这个tag在整个PlayList文件中只能出现一 次(在嵌套的情况下,一般有真正ts url的m3u8才会出现该tag)。格式如下:</p> <p>                      #EXT-X-TARGETDURATION:<s>:s表示最大的秒数。<br></p> <p><strong>#EXT-X-MEDIA-SEQUENCE:</strong></p> <p>每一个media URI 在 PlayList中只有唯一的序号,相邻之间序号+1。</p> <p>                      #EXT-X-MEDIA-SEQUENCE:<number>:                     <br></p> <p>一个media URI并不是必须要包含的,如果没有,默认为0。<br></p> <p><strong>#EXT-X-KEY</strong></p> <p>表示怎么对media segments进行解码。其作用范围是下次该tag出现前的所有media URI,格式如下:<br>                #EXT-X-KEY:<attribute-list>:<br> NONE 或者 AES-128。</p> <p>如果是NONE,则URI以及IV属性必须不存在,如果是AES-128(Advanced Encryption Standard),则URI必须存在,IV可以不存在。<br> 对于AES-128的情况,keytag和URI属性共同表示了一个key文件,通过URI可以获得这个key,如果没有IV(Initialization Vector),则使用序列号作为IV进行编解码,将序列号的高位赋到16个字节的buffer中,左边补0;如果有IV,则将改值当成16个字节的16进制数。</p> <p><strong>#EXT-X-PROGRAM-DATE-TIME</strong></p> <p>将一个绝对时间或是日期和一个媒体段中的第一个sample相关联,只对下一个meida URI有效,格式如下:</p> <p>                      #EXT-X-PROGRAM-DATE-TIME:<YYYY-MM-DDThh:mm:ssZ>                      <br></p> <p>For example:</p> <p>                    #EXT-X-PROGRAM-DATE-TIME:2010-02-19T14:54:23.031+08:00</p> <p><strong>#EXT-X-ALLOW-CACHE:</strong></p> <p>是否允许做cache,这个可以在PlayList文件中任意地方出现,并且最多出现一次,作用效果是所有的媒体段。格式如下:</p> <p>                      #EXT-X-ALLOW-CACHE:<YES|NO>   <br></p> <p><strong>#EXT-X-PLAYLIST-TYPE</strong></p> <p>提供关于PlayList的可变性的信息, 这个对整个PlayList文件有效,是可选的,格式如下:</p> <p>                      #EXT-X-PLAYLIST-TYPE:<EVENT|VOD> :</p> <p>如果是VOD,则服务器不能改变PlayList 文件;如果是EVENT,则服务器不能改变或是删除PlayList文件中的任何部分,但是可以向该文件中增加新的一行内容。   <br></p> <p><strong>#EXT-X-ENDLIST</strong></p> <p>表示PlayList的末尾了,它可以在PlayList中任意位置出现,但是只能出现一个,格式如下:</p> <p>                      #EXT-X-ENDLIST</p> <p><br></p> <h3>4. TS简介</h3> <p><a href="http://img.e-com-net.com/image/info8/641f6081490c40a38a4579892dd718ea.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/641f6081490c40a38a4579892dd718ea.jpg" alt="HLS M3U8 详解_第1张图片" width="582" height="304" style="border:1px solid black;"></a></p> <p><br></p> <h3>5. 参考文献</h3> <p>[1] http://blog.csdn.net/matthew_fan/article/details/7796732</p> <p>[2] http://tools.ietf.org/html/draft-pantos-http-live-streaming-08</p> <p>[3] m3u8文件解析</p> <p>[4] HLS协议--学习笔记--M3U8<br></p> <p><br></p> <br> </div> </div> </div> </div> </div> <!--PC和WAP自适应版--> <div id="SOHUCS" sid="1279950342905151488"></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">你可能感兴趣的:(多媒体)</h4> <div id="paradigm-article-related"> <div class="recommend-post mb30"> <ul class="widget-links"> <li><a href="/article/1835422140325785600.htm" title="pyhon+ffmpeg 常用音视频处理命令" target="_blank">pyhon+ffmpeg 常用音视频处理命令</a> <span class="text-muted">不再游移</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><a class="tag" taget="_blank" href="/search/python/1.htm">python</a> <div>FFmpeg是多媒体领域的万能工具。只要涉及音视频领域的处理,基本上没有它做不了的事情!通俗点讲,从视频录制、视频编辑再到播放,它都能做!前段时间做了个短视频自动化脚本项目,需要自动处理音视频(包括一些合成、拼接、转场、调色等等),当时做的时候找各种命令还是很痛苦的,因此对用到的所有处理命令做了个汇总,方便以后使用。目录一、获取音频时长二、获取视频信息三、获取视频时长四、多个视频合并五、视频提取视</div> </li> <li><a href="/article/1834770269852495872.htm" title="2018-09-20" target="_blank">2018-09-20</a> <span class="text-muted">流浪的白纸</span> <div>天是夏天的热没有空调的课室望着多媒体上放着的视频思绪却飘的遥远回到那个同样没有空调的燥热的三年一年天真一年娱乐再一年的纯粹早晨伴着校歌起床随着人流走进食堂教室里沙沙的翻书声从不会缺席当时走厌了的教室食堂宿舍三点一线不变的轨迹如今走了一遍一遍也串不成一条线那一年第一次与他同进出教室那一年午后与后桌玩密室逃脱那一年夜修前桌问着函数怎解那三年时常提起大学憧憬着未来的未知现在想来这些久未提起的是回忆啊</div> </li> <li><a href="/article/1834455222802542592.htm" title="Ubuntu+Qt+SDL2+FFmpeg" target="_blank">Ubuntu+Qt+SDL2+FFmpeg</a> <span class="text-muted">DarcyZhou</span> <div>此文档用于Ubuntu系统中搭建FFmpeg的开发环境。Qt作为开发软件,SDL2是一套开放源代码的跨平台多媒体开发库。1.安装Qt(1)下载版本:qt-opensource-linux-x64-5.9.8.runimage.png(2)安装给文件添加可执行权限:sudochmod-R777qt-opensource-linux-x64-5.9.8.run开始安装:安装过程中选择全部安装即可。(需</div> </li> <li><a href="/article/1834410301819285504.htm" title="QT进行音频录制" target="_blank">QT进行音频录制</a> <span class="text-muted">金博客</span> <a class="tag" taget="_blank" href="/search/Qt/1.htm">Qt</a><a class="tag" taget="_blank" href="/search/qt/1.htm">qt</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/c%2B%2B/1.htm">c++</a> <div>文章目录QT使用`AudioRecorder`进行音频录制首先,确保你的项目文件`.pro`包含多媒体模块:然后,在Qt应用程序中,创建Widget类:小结QT使用AudioRecorder进行音频录制使用Qt框架的AudioRecorder类进行音频录制,可以通过Qt的MultimediaWidgets模块实现。‌首先,确保你的Qt项目中包含了MultimediaWidgets模块‌。这通常在项</div> </li> <li><a href="/article/1834298575287316480.htm" title="2023-05-12" target="_blank">2023-05-12</a> <span class="text-muted">心有灵犀J</span> <div>立足课例研真知,专家引领促成长——小学语文教师全员培训心得5月6日,我们全乡小学语文教师齐聚在中心校三楼的多媒体室,共同参与滑县小学语文教师全员集中培训,本次培训形式是“课例观摩+议课研讨+专题讲座”相结合。我们上午先集中观摩了两节涵盖识字写字内容的课例,二年级下册语文《蜘蛛开店》四年级下册语文《巨人的花园》。紧接着是由许昌市教育专家吕蔚屏老师的议课研讨和精彩讲座。整个培训的环节紧凑,内涵丰富,使</div> </li> <li><a href="/article/1834237705895112704.htm" title="包含所有的计算机视频教程" target="_blank">包含所有的计算机视频教程</a> <span class="text-muted">rart2008</span> <a class="tag" taget="_blank" href="/search/%E7%A8%8B%E5%BA%8F%E4%BA%BA%E7%94%9F/1.htm">程序人生</a><a class="tag" taget="_blank" href="/search/windows/1.htm">windows</a><a class="tag" taget="_blank" href="/search/%E7%A7%BB%E5%8A%A8%E5%BC%80%E5%8F%91/1.htm">移动开发</a><a class="tag" taget="_blank" href="/search/%E4%BC%81%E4%B8%9A%E5%BA%94%E7%94%A8/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/%E5%88%86%E5%B8%83%E5%BC%8F%E5%BA%94%E7%94%A8/1.htm">分布式应用</a><a class="tag" taget="_blank" href="/search/asp.net/1.htm">asp.net</a> <div>计算机视频教程http://www.study66.cn/soft/show.asp?id=1237北京师范大-多媒体视频http://www.study66.cn/soft/show.asp?id=1240北京理工大学编译原理串讲http://www.study66.cn/soft/show.asp?id=1241北京大学计算机网络视频教程http://www.study66.cn/soft/s</div> </li> <li><a href="/article/1833981957596344320.htm" title="人教版七下《1.3.1有理数加法》教学反思" target="_blank">人教版七下《1.3.1有理数加法》教学反思</a> <span class="text-muted">清尘黔师</span> <div>我采用的是"先学后教,当堂训练"的教学模式,因多媒体不能读U盘,就没事展示学习目标,而直接先让学生自学教材p16--18的内容,给时间8分钟,但学习没读完就实际给了10分钟,口述自学要求:通过自学,弄清负数+负数,正数+负数,负数+0的加法运算方法,但是有几个学生仍不知要学什么范围和如何去学!接下来给分钟进行小组讨论,但是我巡查中发现学生用了10分钟也讨论不出加法运算的方法。请了两个小组的代表来表</div> </li> <li><a href="/article/1833919170220224512.htm" title="OPENCL之SIMT与SIMD在架构上的主要区别是什么?" target="_blank">OPENCL之SIMT与SIMD在架构上的主要区别是什么?</a> <span class="text-muted">糯米宝宝</span> <a class="tag" taget="_blank" href="/search/gpu/1.htm">gpu</a><a class="tag" taget="_blank" href="/search/opencv/1.htm">opencv</a> <div>SIMT(单指令多线程)与SIMD(单指令多数据)在架构上的主要区别体现在以下几个方面:执行单元的组织方式:SIMD:采用的是多数据流架构,即同一条指令同时作用于多个数据元素。这种架构特别适合于多媒体应用等数据密集型运算。SIMT:采用的是多线程架构,即同一条指令由多个线程并行执行。每个线程可以有不同的分支行为和执行路径,从而实现线程级的并行计算。软件暴露的信息:SIMD:向软件公开SIMD宽度(</div> </li> <li><a href="/article/1833827134573998080.htm" title="如何用JavaScript实现视频观看时间追踪" target="_blank">如何用JavaScript实现视频观看时间追踪</a> <span class="text-muted">瑆箫</span> <a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</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/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>博客:如何用JavaScript实现视频观看时间追踪|瑆箫博客在网页开发中,跟踪用户与多媒体内容(如视频)的互动是一项常见需求。无论是教育平台、数据分析,还是用户参与度统计,监控用户如何观看视频内容都能提供宝贵的见解。这篇文章将探索如何使用JavaScript实现视频播放时长的跟踪。目标我们的目标是跟踪用户观看视频的总时长,包括暂停的时间,并将这些信息更新到后台系统。我们将通过捕获播放、暂停和结束</div> </li> <li><a href="/article/1833767756911177728.htm" title="Android14音频进阶之高通Elite架构指定通道播放(八十四)" target="_blank">Android14音频进阶之高通Elite架构指定通道播放(八十四)</a> <span class="text-muted">Android系统攻城狮</span> <a class="tag" taget="_blank" href="/search/Android/1.htm">Android</a><a class="tag" taget="_blank" href="/search/Audio%E5%B7%A5%E7%A8%8B%E5%B8%88%E8%BF%9B%E9%98%B6%E7%B3%BB%E5%88%97/1.htm">Audio工程师进阶系列</a><a class="tag" taget="_blank" href="/search/Android14%E9%9F%B3%E9%A2%91/1.htm">Android14音频</a><a class="tag" taget="_blank" href="/search/%E9%AB%98%E9%80%9AElite%E6%9E%B6%E6%9E%84/1.htm">高通Elite架构</a><a class="tag" taget="_blank" href="/search/%E6%8C%87%E5%AE%9A%E9%80%9A%E9%81%93/1.htm">指定通道</a><a class="tag" taget="_blank" href="/search/%E6%92%AD%E6%94%BE%E9%9F%B3%E9%A2%91/1.htm">播放音频</a> <div>简介:CSDN博客专家、《Android系统多媒体进阶实战》一书作者新书发布:《Android系统多媒体进阶实战》优质专栏:Audio工程师进阶系列【原创干货持续更新中……】优质专栏:多媒体系统工程师系列【原创干货持续更新中……】优质视频课程:AAOS车载系统+AOSP14系统攻城狮入门视频实战课人生格言:人生从来没有捷径,只有行动才是治疗恐惧和懒惰的唯一良药.更多原创,欢迎关注:Android系</div> </li> <li><a href="/article/1833656298739167232.htm" title="HTML5全面知识点" target="_blank">HTML5全面知识点</a> <span class="text-muted">A_cot</span> <a class="tag" taget="_blank" href="/search/html/1.htm">html</a><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%E6%A1%86%E6%9E%B6/1.htm">前端框架</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a> <div>HTML(HyperTextMarkupLanguage)是构建网页的基础语言。以下是全面的HTML知识点:一、HTML基础概念定义:HTML是一种用于描述网页结构的标记语言,通过各种标签来定义网页的内容和布局。版本历史:从HTML的早期版本发展到现在的HTML5,功能不断增强,支持更多的多媒体和交互特性。二、HTML文档结构声明:用于告诉浏览器文档类型是HTML5。标签:整个HTML文档的根元素</div> </li> <li><a href="/article/1833530099702525952.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> <div>一,数据采集的概念在处理海量事务时,我们经常需要针对特定条件进行数据的精准获取,这一过程被称为数据采集。数据采集的核心在于从多样化的数据存储形式中,根据具体需求进行有针对性的数据提取。这些数据存储形式丰富多样,涵盖了从简单的文本文档到复杂的数据库系统,再到多媒体文件等多个领域。常见的数据存储方式包括:文件系统(FileSystem):文本文档:TXT,DOC,PDF,XLS(Excel),CSV等</div> </li> <li><a href="/article/1833225634810261504.htm" title="视频监控方案与多媒体应用系统介绍 (zz)" target="_blank">视频监控方案与多媒体应用系统介绍 (zz)</a> <span class="text-muted">星之河</span> <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><a class="tag" taget="_blank" href="/search/%E5%9B%BE%E5%83%8F%E5%A4%84%E7%90%86/1.htm">图像处理</a><a class="tag" taget="_blank" href="/search/%E5%A4%9A%E5%AA%92%E4%BD%93/1.htm">多媒体</a> <div>视频监控方案与多媒体应用系统介绍-----------------------------------------------------------------------------------来源:cmvc.com.cn---作者:■文/中国科学院自动化研究所陈龙WWW.CMVC.COM.CN中国多媒体视讯录入日期:2004-12-229.11恐怖事件突显出安全的重要性,反恐已成为全球共同关</div> </li> <li><a href="/article/1833138109659836416.htm" title="(亲测win/mac)Adobe After Effects(AE2024)图形视频处理软件下载安装和使用教程" target="_blank">(亲测win/mac)Adobe After Effects(AE2024)图形视频处理软件下载安装和使用教程</a> <span class="text-muted">「已注销」</span> <a class="tag" taget="_blank" href="/search/macos/1.htm">macos</a><a class="tag" taget="_blank" href="/search/adobe/1.htm">adobe</a> <div>一、软件简介1.1基本信息AdobeAfterEffects(简称AE)是Adobe公司开发的一款功能强大的图形视频处理软件,广泛应用于电视台、动画制作公司、个人后期制作工作室及多媒体工作室等领域。AE以其卓越的动画和构图标准,为电影、视频、DVD和MacromediaFlash作品增添电影级的视觉效果和细腻动态图形。1.2软件特点高度灵活:AE提供2D和3D合成功能,以及数百种预设效果和动画,让</div> </li> <li><a href="/article/1833130667869827072.htm" title="网上配音兼职接单平台,在线配音兼职服务网站推荐" target="_blank">网上配音兼职接单平台,在线配音兼职服务网站推荐</a> <span class="text-muted">配音新手圈</span> <div>随着社交媒体和数字内容的迅猛发展,视频、动画、广告等多媒体制作行业正迎来空前的繁荣。然而,为了确保视听内容的质量和吸引力,一个重要的组成部分就是高质量的配音服务。在这个背景下,网上配音兼职接单平台如雨后春笋般涌现,为个人声音艺术家提供了诸多机会。配音兼职接单推荐公众号:配音新手圈,声优配音圈,新配音兼职圈,配音就业圈,有声新手圈一、平台简介网络配音兼职接单平台是一个在线服务网站,旨在将声音艺术家与</div> </li> <li><a href="/article/1832621985214066688.htm" title="基于FPGA实现SDI接口" target="_blank">基于FPGA实现SDI接口</a> <span class="text-muted">宁静致远dream</span> <a class="tag" taget="_blank" href="/search/FPGA%E7%A7%AF%E6%B2%99%E6%88%90%E5%A1%94/1.htm">FPGA积沙成塔</a><a class="tag" taget="_blank" href="/search/1024%E7%A8%8B%E5%BA%8F%E5%91%98%E8%8A%82/1.htm">1024程序员节</a> <div>1文章目录1)需求分析2)其他视频接口3)FPGA简介4)SDI简介5)硬件设计6)系统设计7)逻辑设计8)结束语2需求分析1)模拟视频转换SDI接口随着多媒体技术及Internet的迅速发展,人们对数字化的需求日益增加,图像、音频、视频等多媒体数据大量涌现。数字化引起了电视技术领域的极大变革。目前,我国处于模拟、数字信号并存阶段,而模拟视频信号到SDI信号的转换就是这个过渡阶段必不可少的关键性技</div> </li> <li><a href="/article/1832599250937147392.htm" title="读《温儒敏谈读书》" target="_blank">读《温儒敏谈读书》</a> <span class="text-muted">做好平凡小事</span> <div>20210814读书打卡第2天:【书目】《温儒敏谈读书》【内容】培养读书兴趣是语文教学的“牛鼻子”【用时】20分钟【摘录】尽管有过一轮又一轮的改革,也提出很多新的教学理念,推广过这样那样的教学法,活动多了,课堂热闹了,多媒体也普及了,可是整体上看学生的阅读写作能力,未见的就有多大的提高。整体而言,中小学生的读书状况是不好的,年级越高情况越糟,我们教了多年的语文学生,也花费大量心血,在这门课上,可是</div> </li> <li><a href="/article/1832404379097985024.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/web/1.htm">web</a><a class="tag" taget="_blank" href="/search/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0/1.htm">机器学习</a> <div>**Python实现坦克大战——源代码**一、环境:pygamePygame被设计用来写游戏的python模块集合,基于SDL库开发。使用python可以导入pygame来开发具有全部特性的游戏和多媒体软件,Pygame是极度轻便的并且可以运行在几乎所有的平台和操作系统上。二、编辑器:PyCharmPyCharm是一种PythonIDE,带有一整套可以帮助用户在使用Python语言开发时提高其效率</div> </li> <li><a href="/article/1832122116288376832.htm" title="谷歌seo文章如何优化效果更好?" target="_blank">谷歌seo文章如何优化效果更好?</a> <span class="text-muted">光算科技</span> <a class="tag" taget="_blank" href="/search/%E6%90%9C%E7%B4%A2%E5%BC%95%E6%93%8E/1.htm">搜索引擎</a> <div>优化文章效果其实就是让它更吸引人,让读者有兴趣读下去,同时也要让搜索引擎喜欢,写作风格要亲切自然,用聊天的方式跟读者沟通,别让他们觉得在读一篇枯燥的报告,原创内容是关键,我们需要提供独特的观点和最新的数据,帮助读者解决实际问题或提供新视角。写长篇文章(比如3000字以上)时,确保内容结构清晰,可以用小标题来分段。段落要简短,这样读者才不会觉得沉闷,多媒体内容也是必须得,图文结合效果更好,毕竟一张图</div> </li> <li><a href="/article/1832080270346514432.htm" title="推荐开源项目:WP-Player - 强大的WordPress音频与视频播放器" target="_blank">推荐开源项目:WP-Player - 强大的WordPress音频与视频播放器</a> <span class="text-muted">邹澜鹤Gardener</span> <div>推荐开源项目:WP-Player-强大的WordPress音频与视频播放器是一个专为WordPress设计的高效、灵活且功能丰富的多媒体播放器插件。它允许你在博客、新闻网站或其他基于WordPress的内容平台上无缝集成音频和视频内容,提供一流的用户体验。技术分析1.响应式设计WP-Player采用现代Web开发原则,支持响应式布局,无论在桌面、平板还是手机等不同设备上,都能自动调整以适应屏幕大小</div> </li> <li><a href="/article/1832062125237956608.htm" title="使用ffmpeg的c++库读取视频流和其中的SEI数据" target="_blank">使用ffmpeg的c++库读取视频流和其中的SEI数据</a> <span class="text-muted">simple_whu</span> <a class="tag" taget="_blank" href="/search/c%2B%2B/1.htm">c++</a><a class="tag" taget="_blank" href="/search/vcpkg/1.htm">vcpkg</a><a class="tag" taget="_blank" href="/search/ffmpeg/1.htm">ffmpeg</a><a class="tag" taget="_blank" href="/search/c%2B%2B/1.htm">c++</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>使用ffmpeg读取视频流和其中的SEI数据(未完待续)FFmpeg是一个多媒体软件框架,支持多种新旧视频编码格式,提供解码、编码、转码、多路复用、解复用、流式传输、过滤和播放等功能。其包含:C++库libavcodec、libavutil、libavformat、libavfilter、libavdevice、libswscale和libswresample基于库构建的命令行工具ffmpeg\f</div> </li> <li><a href="/article/1831944616547545088.htm" title="ffmpeg的安装和使用教程" target="_blank">ffmpeg的安装和使用教程</a> <span class="text-muted">不会代码的小林</span> <a class="tag" taget="_blank" href="/search/ffmpeg/1.htm">ffmpeg</a> <div>FFmpeg是一款功能强大的开源多媒体处理工具,支持几乎所有视频和音频格式的转换、压缩、合并、裁剪等功能。以下是FFmpeg在Windows系统上的安装步骤:下载FFmpeg安装包访问FFmpeg的官方网站(https://ffmpeg.org/download.html)下载最新版本的安装包。在官网页面中选择适合Windows的版本(通常是zip格式的releasebuilds)。解压安装包将下</div> </li> <li><a href="/article/1831773429544611840.htm" title="怎么会不怀念学生时代呢" target="_blank">怎么会不怀念学生时代呢</a> <span class="text-muted">思雨菌</span> <div>人总是这样,二十岁即便已经忘了十七岁做过的傻事,但那种感觉还记得。暗恋一个人的时候,老师喊人到黑板前做题刚好点到了你和你喜欢的那个人。你都能偷着乐一整天。哪怕没经历过,也会想象在黄昏的操场上,给喜欢的人送去一瓶冰冰凉凉的可乐。一群男生或女生在教室里讨论。趁着午休的时间,跟朋友计划某人生日到了,你要送什么礼物。最开心的事是晚自习停电。或月考过后,班主任允许大家用多媒体设备看看电影。同桌的梦想是当一个</div> </li> <li><a href="/article/1831517767891775488.htm" title="4 - Shell编程之Expect免交互" target="_blank">4 - Shell编程之Expect免交互</a> <span class="text-muted">活老鬼</span> <a class="tag" taget="_blank" href="/search/Shell%E8%84%9A%E6%9C%AC/1.htm">Shell脚本</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><a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/bash/1.htm">bash</a> <div>目录一、交互的概念二、免交互1.HereDocument免交互1.1语法格式1.2tee命令重定向输出加标准输出1.3支持变量替换2.Expect免交互2.1expect简述2.2expect基本流程2.3expect语法格式2.4示例一、交互的概念交互:当计算机播放某多媒体程序的时候,编程人员可以发出指令控制该程序的运行,而不是程序单方面执行下去,程序在接受到编程人员相应的指令后而相应地做出反应</div> </li> <li><a href="/article/1831394736691310592.htm" title="13. UDP协议与RTP协议" target="_blank">13. UDP协议与RTP协议</a> <span class="text-muted">::呵呵哒::</span> <a class="tag" taget="_blank" href="/search/udp/1.htm">udp</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C%E5%8D%8F%E8%AE%AE/1.htm">网络协议</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C/1.htm">网络</a> <div>UDP协议UDP协议比较简单:UDP的长度是固定的,用总长度-UDP长度就是数据长度。UDP是不保证他的有序性和可靠性的。对于音频和视频是这样是比较好的,因为这段丢了,我们可以从下一段在开始解码。RTPRTP协议概述RTP(Real-timeTransportProtocol)是用于Internet上针对多媒体数据流的一种传输层协议,RTP协议和RTP控制协议RTCP一起使用。RTP被定义为在一对</div> </li> <li><a href="/article/1831307890250575872.htm" title="5G Multicast/Broadcast Services(MBS) (一)" target="_blank">5G Multicast/Broadcast Services(MBS) (一)</a> <span class="text-muted">modem协议笔记</span> <a class="tag" taget="_blank" href="/search/NR/1.htm">NR</a><a class="tag" taget="_blank" href="/search/5G/1.htm">5G</a><a class="tag" taget="_blank" href="/search/R18/1.htm">R18</a><a class="tag" taget="_blank" href="/search/%E6%96%B0feature/1.htm">新feature</a><a class="tag" taget="_blank" href="/search/5G/1.htm">5G</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C/1.htm">网络</a><a class="tag" taget="_blank" href="/search/%E6%99%BA%E8%83%BD%E6%89%8B%E6%9C%BA/1.htm">智能手机</a> <div>5GNR广播多播业务(Multicast/BroadcastServices,MBS)的发展使得多媒体内容(例如共安全和关键任务服务、V2X应用、IPTV、直播视频、无线软件交付和IoT应用等)能够通过广播的传输方式传送到UE,因而用户能够随时随地观看广播电视节目或接收数据推送服务。通常传输数据是以单播形式进行,当用户人数过多时网络就会出现拥塞。这样一个cell小区有多个用户同时观看视频内容,DL</div> </li> <li><a href="/article/1831260306089799680.htm" title="比起刘诗诗的演技,《亲爱的自己》的这4个“问题”,更让人担心" target="_blank">比起刘诗诗的演技,《亲爱的自己》的这4个“问题”,更让人担心</a> <span class="text-muted">雷艺甜</span> <div>电视剧《亲爱的自己》开播前,就有很多媒体表示看好,纷纷预言这部剧会成为2020年下半年的爆款,的确,刘诗诗、朱一龙、阚清子、彭冠英等人的主演阵容,还是很让人期待的,在《三十而已》里面渣“出圈”的许幻山扮演者李泽锋也在《亲爱的自己》中喜提男三的角色。《亲爱的自己》讲述了几位在大城市打拼的年轻人,所面对的事业、爱情、婚姻中的困扰,挫折过后,每个认真生活的人,都能拥抱亲爱的自己。然而这部剧一经播出,就迎</div> </li> <li><a href="/article/1831228870897004544.htm" title="GNU工具开发基于ARM嵌入式系统的方法" target="_blank">GNU工具开发基于ARM嵌入式系统的方法</a> <span class="text-muted">yalizhi123</span> <a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/%E5%B7%A5%E5%85%B7/1.htm">工具</a><a class="tag" taget="_blank" href="/search/%E5%B5%8C%E5%85%A5%E5%BC%8F/1.htm">嵌入式</a><a class="tag" taget="_blank" href="/search/%E7%BC%96%E8%AF%91%E5%99%A8/1.htm">编译器</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E5%B7%A5%E5%85%B7/1.htm">开发工具</a><a class="tag" taget="_blank" href="/search/%E6%B1%87%E7%BC%96/1.htm">汇编</a><a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a> <div>当前,ARM公司的32位RISC处理器,以其内核耗电少、成本低、功能强、特有16/32位双指令集,已成为移动通信、手持计算、多媒体数字消费等嵌入式解决方案的RISC标准,市场占有率超过了75%。多家公司都推出了自己的基于ARM内核的处理器产品,越来越多的开发人员开始了针对ARM平台的开发。通常开发人员需要购买芯片厂商或第三方提供的开发板,还需要购买开发软件,如C编译器或者集成了实时操作系统的开发环</div> </li> <li><a href="/article/1831167474188513280.htm" title="Qt/C++ 音视频开发 - FFmpeg保存裸流" target="_blank">Qt/C++ 音视频开发 - FFmpeg保存裸流</a> <span class="text-muted">鱼弦</span> <a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD%E6%97%B6%E4%BB%A3/1.htm">人工智能时代</a><a class="tag" taget="_blank" href="/search/qt/1.htm">qt</a><a class="tag" taget="_blank" href="/search/c%2B%2B/1.htm">c++</a><a class="tag" taget="_blank" href="/search/%E9%9F%B3%E8%A7%86%E9%A2%91/1.htm">音视频</a> <div>Qt/C++音视频开发-FFmpeg保存裸流介绍FFmpeg是一个开源的多媒体框架,能够处理音频、视频及其他多媒体文件和流。裸流指的是未经封装处理的原始音视频数据。使用FFmpeg保存裸流,可以通过高效的方式处理并存储音视频数据。应用使用场景实时流媒体传输:在没有时间进行复杂封装的情况下,将音视频数据直接传输。低延迟应用:减少因为封装产生的冗余数据和延迟。数据分析:对原始音视频数据进行深入分析时,</div> </li> <li><a href="/article/1831144154550333440.htm" title="GDB寄存器和内存" target="_blank">GDB寄存器和内存</a> <span class="text-muted">Noxi_lumors</span> <a class="tag" taget="_blank" href="/search/%E5%B7%A5%E5%85%B7/1.htm">工具</a><a class="tag" taget="_blank" href="/search/gdb/1.htm">gdb</a> <div>1.查看寄存器(gdb)ir(gdb)ira#查看所有寄存器(包括浮点、多媒体)(gdb)iresp(gdb)irpc2.查看内存(gdb)x/wx0x80040000#以16进制显示指定地址处的数据(gdb)x/8x$esp(gdb)x/16x$esp+12(gdb)x/16s0x86468700#以字符串形式显示指定地址处的数据(gdb)x/24i0x8048a51#以指令形式显示指定地址处的</div> </li> <li><a href="/article/36.htm" title="ASM系列四 利用Method 组件动态注入方法逻辑" target="_blank">ASM系列四 利用Method 组件动态注入方法逻辑</a> <span class="text-muted">lijingyao8206</span> <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/jvm/1.htm">jvm</a><a class="tag" taget="_blank" href="/search/AOP/1.htm">AOP</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> <div>        这篇继续结合例子来深入了解下Method组件动态变更方法字节码的实现。通过前面一篇,知道ClassVisitor 的visitMethod()方法可以返回一个MethodVisitor的实例。那么我们也基本可以知道,同ClassVisitor改变类成员一样,MethodVIsistor如果需要改变方法成员,注入逻辑,也可以</div> </li> <li><a href="/article/163.htm" title="java编程思想 --内部类" target="_blank">java编程思想 --内部类</a> <span class="text-muted">百合不是茶</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E5%86%85%E9%83%A8%E7%B1%BB/1.htm">内部类</a><a class="tag" taget="_blank" href="/search/%E5%8C%BF%E5%90%8D%E5%86%85%E9%83%A8%E7%B1%BB/1.htm">匿名内部类</a> <div>内部类;了解外部类 并能与之通信 内部类写出来的代码更加整洁与优雅   1,内部类的创建  内部类是创建在类中的 package com.wj.InsideClass; /* * 内部类的创建 */ public class CreateInsideClass { public CreateInsideClass(</div> </li> <li><a href="/article/290.htm" title="web.xml报错" target="_blank">web.xml报错</a> <span class="text-muted">crabdave</span> <a class="tag" taget="_blank" href="/search/web.xml/1.htm">web.xml</a> <div>web.xml报错   The content of element type "web-app" must match "(icon?,display-  name?,description?,distributable?,context-param*,filter*,filter-mapping*,listener*,servlet*,s</div> </li> <li><a href="/article/417.htm" title="泛型类的自定义" target="_blank">泛型类的自定义</a> <span class="text-muted">麦田的设计者</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/android/1.htm">android</a><a class="tag" taget="_blank" href="/search/%E6%B3%9B%E5%9E%8B/1.htm">泛型</a> <div>   为什么要定义泛型类,当类中要操作的引用数据类型不确定的时候。 采用泛型类,完成扩展。   例如有一个学生类     Student{ Student(){ System.out.println("I'm a student....."); } }  有一个老师类   </div> </li> <li><a href="/article/544.htm" title="CSS清除浮动的4中方法" target="_blank">CSS清除浮动的4中方法</a> <span class="text-muted">IT独行者</span> <a class="tag" taget="_blank" href="/search/JavaScript/1.htm">JavaScript</a><a class="tag" taget="_blank" href="/search/UI/1.htm">UI</a><a class="tag" taget="_blank" href="/search/css/1.htm">css</a> <div>清除浮动这个问题,做前端的应该再熟悉不过了,咱是个新人,所以还是记个笔记,做个积累,努力学习向大神靠近。CSS清除浮动的方法网上一搜,大概有N多种,用过几种,说下个人感受。 1、结尾处加空div标签 clear:both 1 2 3 4 .div 1 { background : #000080 ; border : 1px   s</div> </li> <li><a href="/article/671.htm" title="Cygwin使用windows的jdk 配置方法" target="_blank">Cygwin使用windows的jdk 配置方法</a> <span class="text-muted">_wy_</span> <a class="tag" taget="_blank" href="/search/jdk/1.htm">jdk</a><a class="tag" taget="_blank" href="/search/windows/1.htm">windows</a><a class="tag" taget="_blank" href="/search/cygwin/1.htm">cygwin</a> <div>1.[vim /etc/profile]    JAVA_HOME="/cgydrive/d/Java/jdk1.6.0_43"  (windows下jdk路径为D:\Java\jdk1.6.0_43)    PATH="$JAVA_HOME/bin:${PATH}"    CLAS</div> </li> <li><a href="/article/798.htm" title="linux下安装maven" target="_blank">linux下安装maven</a> <span class="text-muted">无量</span> <a class="tag" taget="_blank" href="/search/maven/1.htm">maven</a><a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/%E5%AE%89%E8%A3%85/1.htm">安装</a> <div>Linux下安装maven(转) 1.首先到Maven官网 下载安装文件,目前最新版本为3.0.3,下载文件为 apache-maven-3.0.3-bin.tar.gz,下载可以使用wget命令; 2.进入下载文件夹,找到下载的文件,运行如下命令解压 tar -xvf  apache-maven-2.2.1-bin.tar.gz 解压后的文件夹</div> </li> <li><a href="/article/925.htm" title="tomcat的https 配置,syslog-ng配置" target="_blank">tomcat的https 配置,syslog-ng配置</a> <span class="text-muted">aichenglong</span> <a class="tag" taget="_blank" href="/search/tomcat/1.htm">tomcat</a><a class="tag" taget="_blank" href="/search/http%E8%B7%B3%E8%BD%AC%E5%88%B0https/1.htm">http跳转到https</a><a class="tag" taget="_blank" href="/search/syslong-ng%E9%85%8D%E7%BD%AE/1.htm">syslong-ng配置</a><a class="tag" taget="_blank" href="/search/syslog%E9%85%8D%E7%BD%AE/1.htm">syslog配置</a> <div>1) tomcat配置https,以及http自动跳转到https的配置     1)TOMCAT_HOME目录下生成密钥(keytool是jdk中的命令)      keytool -genkey -alias tomcat -keyalg RSA -keypass changeit -storepass changeit</div> </li> <li><a href="/article/1052.htm" title="关于领号活动总结" target="_blank">关于领号活动总结</a> <span class="text-muted">alafqq</span> <a class="tag" taget="_blank" href="/search/%E6%B4%BB%E5%8A%A8/1.htm">活动</a> <div>关于某彩票活动的总结 具体需求,每个用户进活动页面,领取一个号码,1000中的一个; 活动要求 1,随机性,一定要有随机性; 2,最少中奖概率,如果注数为3200注,则最多中4注 3,效率问题,(不能每个人来都产生一个随机数,这样效率不高); 4,支持断电(仍然从下一个开始),重启服务;(存数据库有点大材小用,因此不能存放在数据库) 解决方案 1,事先产生随机数1000个,并打</div> </li> <li><a href="/article/1179.htm" title="java数据结构 冒泡排序的遍历与排序" target="_blank">java数据结构 冒泡排序的遍历与排序</a> <span class="text-muted">百合不是茶</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a> <div>java的冒泡排序是一种简单的排序规则   冒泡排序的原理:           比较两个相邻的数,首先将最大的排在第一个,第二次比较第二个 ,此后一样;         针对所有的元素重复以上的步骤,除了最后一个     例题;将int array[] </div> </li> <li><a href="/article/1306.htm" title="JS检查输入框输入的是否是数字的一种校验方法" target="_blank">JS检查输入框输入的是否是数字的一种校验方法</a> <span class="text-muted">bijian1013</span> <a class="tag" taget="_blank" href="/search/js/1.htm">js</a> <div>如下是JS检查输入框输入的是否是数字的一种校验方法: <form method=post target="_blank"> 数字:<input type="text" name=num onkeypress="checkNum(this.form)"><br> </form> </div> </li> <li><a href="/article/1433.htm" title="Test注解的两个属性:expected和timeout" target="_blank">Test注解的两个属性:expected和timeout</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/JUnit/1.htm">JUnit</a><a class="tag" taget="_blank" href="/search/expected/1.htm">expected</a><a class="tag" taget="_blank" href="/search/timeout/1.htm">timeout</a> <div>JUnit4:Test文档中的解释:   The Test annotation supports two optional parameters.   The first, expected, declares that a test method should throw an exception.   If it doesn't throw an exception or if it </div> </li> <li><a href="/article/1560.htm" title="[Gson二]继承关系的POJO的反序列化" target="_blank">[Gson二]继承关系的POJO的反序列化</a> <span class="text-muted">bit1129</span> <a class="tag" taget="_blank" href="/search/POJO/1.htm">POJO</a> <div>父类     package inheritance.test2; import java.util.Map; public class Model { private String field1; private String field2; private Map<String, String> infoMap</div> </li> <li><a href="/article/1687.htm" title="【Spark八十四】Spark零碎知识点记录" target="_blank">【Spark八十四】Spark零碎知识点记录</a> <span class="text-muted">bit1129</span> <a class="tag" taget="_blank" href="/search/spark/1.htm">spark</a> <div>1. ShuffleMapTask的shuffle数据在什么地方记录到MapOutputTracker中的 ShuffleMapTask的runTask方法负责写数据到shuffle map文件中。当任务执行完成成功,DAGScheduler会收到通知,在DAGScheduler的handleTaskCompletion方法中完成记录到MapOutputTracker中   </div> </li> <li><a href="/article/1814.htm" title="WAS各种脚本作用大全" target="_blank">WAS各种脚本作用大全</a> <span class="text-muted">ronin47</span> <a class="tag" taget="_blank" href="/search/WAS+%E8%84%9A%E6%9C%AC/1.htm">WAS 脚本</a> <div>   http://www.ibm.com/developerworks/cn/websphere/library/samples/SampleScripts.html    无意中,在WAS官网上发现的各种脚本作用,感觉很有作用,先与各位分享一下     获取下载 这些示例 jacl 和 Jython 脚本可用于在 WebSphere Application Server 的不同版本中自</div> </li> <li><a href="/article/1941.htm" title="java-12.求 1+2+3+..n不能使用乘除法、 for 、 while 、 if 、 else 、 switch 、 case 等关键字以及条件判断语句" target="_blank">java-12.求 1+2+3+..n不能使用乘除法、 for 、 while 、 if 、 else 、 switch 、 case 等关键字以及条件判断语句</a> <span class="text-muted">bylijinnan</span> <a class="tag" taget="_blank" href="/search/switch/1.htm">switch</a> <div>借鉴网上的思路,用java实现: public class NoIfWhile { /** * @param args * * find x=1+2+3+....n */ public static void main(String[] args) { int n=10; int re=find(n); System.o</div> </li> <li><a href="/article/2068.htm" title="Netty源码学习-ObjectEncoder和ObjectDecoder" target="_blank">Netty源码学习-ObjectEncoder和ObjectDecoder</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>Netty中传递对象的思路很直观: Netty中数据的传递是基于ChannelBuffer(也就是byte[]); 那把对象序列化为字节流,就可以在Netty中传递对象了 相应的从ChannelBuffer恢复对象,就是反序列化的过程 Netty已经封装好ObjectEncoder和ObjectDecoder 先看ObjectEncoder ObjectEncoder是往外发送</div> </li> <li><a href="/article/2195.htm" title="spring 定时任务中cronExpression表达式含义" target="_blank">spring 定时任务中cronExpression表达式含义</a> <span class="text-muted">chicony</span> <a class="tag" taget="_blank" href="/search/cronExpression/1.htm">cronExpression</a> <div>一个cron表达式有6个必选的元素和一个可选的元素,各个元素之间是以空格分隔的,从左至右,这些元素的含义如下表所示: 代表含义            是否必须 允许的取值范围         &nb</div> </li> <li><a href="/article/2322.htm" title="Nutz配置Jndi" target="_blank">Nutz配置Jndi</a> <span class="text-muted">ctrain</span> <a class="tag" taget="_blank" href="/search/JNDI/1.htm">JNDI</a> <div>1、使用JNDI获取指定资源: var ioc = { dao : { type :"org.nutz.dao.impl.NutDao", args : [ {jndi :"jdbc/dataSource"} ] } } 以上方法,仅需要在容器中配置好数据源,注入到NutDao即可. </div> </li> <li><a href="/article/2449.htm" title="解决 /bin/sh^M: bad interpreter: No such file or directory" target="_blank">解决 /bin/sh^M: bad interpreter: No such file or directory</a> <span class="text-muted">daizj</span> <a class="tag" taget="_blank" href="/search/shell/1.htm">shell</a> <div>在Linux中执行.sh脚本,异常/bin/sh^M: bad interpreter: No such file or directory。   分析:这是不同系统编码格式引起的:在windows系统中编辑的.sh文件可能有不可见字符,所以在Linux系统下执行会报以上异常信息。 解决: 1)在windows下转换: 利用一些编辑器如UltraEdit或EditPlus等工具</div> </li> <li><a href="/article/2576.htm" title="[转]for 循环为何可恨?" target="_blank">[转]for 循环为何可恨?</a> <span class="text-muted">dcj3sjt126com</span> <a class="tag" taget="_blank" href="/search/%E7%A8%8B%E5%BA%8F%E5%91%98/1.htm">程序员</a><a class="tag" taget="_blank" href="/search/%E8%AF%BB%E4%B9%A6/1.htm">读书</a> <div>  Java的闭包(Closure)特征最近成为了一个热门话题。 一些精英正在起草一份议案,要在Java将来的版本中加入闭包特征。 然而,提议中的闭包语法以及语言上的这种扩充受到了众多Java程序员的猛烈抨击。 不久前,出版过数十本编程书籍的大作家Elliotte Rusty Harold发表了对Java中闭包的价值的质疑。 尤其是他问道“for 循环为何可恨?”[http://ju</div> </li> <li><a href="/article/2703.htm" title="Android实用小技巧" target="_blank">Android实用小技巧</a> <span class="text-muted">dcj3sjt126com</span> <a class="tag" taget="_blank" href="/search/android/1.htm">android</a> <div>1、去掉所有Activity界面的标题栏   修改AndroidManifest.xml   在application 标签中添加android:theme="@android:style/Theme.NoTitleBar"   2、去掉所有Activity界面的TitleBar 和StatusBar    修改AndroidManifes</div> </li> <li><a href="/article/2830.htm" title="Oracle 复习笔记之序列" target="_blank">Oracle 复习笔记之序列</a> <span class="text-muted">eksliang</span> <a class="tag" taget="_blank" href="/search/Oracle+%E5%BA%8F%E5%88%97/1.htm">Oracle 序列</a><a class="tag" taget="_blank" href="/search/sequence/1.htm">sequence</a><a class="tag" taget="_blank" href="/search/Oracle+sequence/1.htm">Oracle sequence</a> <div>转载请出自出处:http://eksliang.iteye.com/blog/2098859 1.序列的作用 序列是用于生成唯一、连续序号的对象 一般用序列来充当数据库表的主键值 2.创建序列语法如下:   create sequence s_emp start with 1 --开始值 increment by 1 --増长值 maxval</div> </li> <li><a href="/article/2957.htm" title="有“品”的程序员" target="_blank">有“品”的程序员</a> <span class="text-muted">gongmeitao</span> <a class="tag" taget="_blank" href="/search/%E5%B7%A5%E4%BD%9C/1.htm">工作</a> <div>完美程序员的10种品质     完美程序员的每种品质都有一个范围,这个范围取决于具体的问题和背景。没有能解决所有问题的   完美程序员(至少在我们这个星球上),并且对于特定问题,完美程序员应该具有以下品质:   1. 才智非凡- 能够理解问题、能够用清晰可读的代码翻译并表达想法、善于分析并且逻辑思维能力强   (范围:用简单方式解决复杂问题)   </div> </li> <li><a href="/article/3084.htm" title="使用KeleyiSQLHelper类进行分页查询" target="_blank">使用KeleyiSQLHelper类进行分页查询</a> <span class="text-muted">hvt</span> <a class="tag" taget="_blank" href="/search/sql/1.htm">sql</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/asp.net/1.htm">asp.net</a><a class="tag" taget="_blank" href="/search/hovertree/1.htm">hovertree</a> <div>本文适用于sql server单主键表或者视图进行分页查询,支持多字段排序。KeleyiSQLHelper类的最新代码请到http://hovertree.codeplex.com/SourceControl/latest下载整个解决方案源代码查看。或者直接在线查看类的代码:http://hovertree.codeplex.com/SourceControl/latest#HoverTree.D</div> </li> <li><a href="/article/3211.htm" title="SVG 教程 (三)圆形,椭圆,直线" target="_blank">SVG 教程 (三)圆形,椭圆,直线</a> <span class="text-muted">天梯梦</span> <a class="tag" taget="_blank" href="/search/svg/1.htm">svg</a> <div>SVG <circle> SVG 圆形 - <circle> <circle> 标签可用来创建一个圆: 下面是SVG代码: <svg xmlns="http://www.w3.org/2000/svg" version="1.1"> <circle cx="100" c</div> </li> <li><a href="/article/3338.htm" title="链表栈" target="_blank">链表栈</a> <span class="text-muted">luyulong</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84/1.htm">数据结构</a> <div> public class Node { private Object object; private Node next; public Node() { this.next = null; this.object = null; } public Object getObject() { return object; } public</div> </li> <li><a href="/article/3465.htm" title="基础数据结构和算法十:2-3 search tree" target="_blank">基础数据结构和算法十:2-3 search tree</a> <span class="text-muted">sunwinner</span> <a class="tag" taget="_blank" href="/search/Algorithm/1.htm">Algorithm</a><a class="tag" taget="_blank" href="/search/2-3+search+tree/1.htm">2-3 search tree</a> <div>  Binary search tree works well for a wide variety of applications, but they have poor worst-case performance. Now we introduce a type of binary search tree where costs are guaranteed to be loga</div> </li> <li><a href="/article/3592.htm" title="spring配置定时任务" target="_blank">spring配置定时任务</a> <span class="text-muted">stunizhengjia</span> <a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/timer/1.htm">timer</a> <div>最近因工作的需要,用到了spring的定时任务的功能,觉得spring还是很智能化的,只需要配置一下配置文件就可以了,在此记录一下,以便以后用到:     //------------------------定时任务调用的方法------------------------------ /** * 存储过程定时器 */ publi</div> </li> <li><a href="/article/3719.htm" title="ITeye 8月技术图书有奖试读获奖名单公布" target="_blank">ITeye 8月技术图书有奖试读获奖名单公布</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携手博文视点举办的8月技术图书有奖试读活动已圆满结束,非常感谢广大用户对本次活动的关注与参与。 8月试读活动回顾: http://webmaster.iteye.com/blog/2102830 本次技术图书试读活动的优秀奖获奖名单及相应作品如下(优秀文章有很多,但名额有限,没获奖并不代表不优秀): 《跨终端Web》 gleams:http</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>