【转】handbrake使用教程
HandBrake官网下载地址为:
1.1 视频压制的基本概念
虽然我想尽量将本教程简单化,但是有几个视频压制的基本常识还是要先了解一下的。
首先,你所拥有的片源画质决定了你最终可以压制出的最好画质(不讨论使用差值算法进行upscale之类),请不要把一个480p的视频压成720p的,扩大分辨率只会浪费码率,不会对画质有任何提升。还有如果你压出来的文件比你使用的片源更大,那么你也在浪费码率,所以如果你使用指定码率的压制方式,请不要设置的比你片源码率更高。
其次,本教程所谈到的压制,都是指使用h264编码格式的压制。h264视频编码格式是目前世界上使用最广泛且体积控制最好的编码格式,而x264是一款非常著名的使用h264编码的开源编码器,在视频质量和编码速度方面都是目前公认最好的。基本上所有的视频转换软件都会使用x264进行编码,例如前面提到的megui、mediacoder,本教程的HandBrake同样也是使用x264的。
使用x264压片是一项非常消耗时间的工作,视频压制遵循时间换空间的原则,不损失质量的情况下想要取得越小的文件体积,就需要越长的时间来压制。或者换种说法,在压出来的成品体积不变的情况下,想要越高的画质,就需要越长的时间来进行压制。普通的电脑硬件配置条件下去进行这样的压片,所消耗的时间一般都会超过视频的长度,甚至达到视频长度的数倍之久。
为什么非要使用压制速度很慢h264格式呢,一方面因为在线视频对文件体积的控制比较重要,想要给观众在可以流畅缓冲的情况下呈现最好的画质,非压缩率最高的h264莫属。另外一个原因就是,新浪视频只有对码率低于1000的h264格式视频才不会进行二压,这也是国内目前唯一不会二次压制的在线视频网站了,对于追求高画质的up主来说也是唯一的选择了。
本教程选取了一个比较具有代表性的视频文件来作为例子进行压制,该文件下载地址为 http://kuai.xunlei.com/d/8BUGAALUBgAUf75Re97
对于不同的视频类型,压制时候的处理也是不完全相同的,压制之前先了解视频源的一些信息有助于压制时使用更合理的参数。判断视频源类型分为识别参数和肉眼观察两部分,我推荐使用mediainfo这个软件来查看视频文件的一些基本信息,这个软件也是开源跨平台的,下载地址请自行搜索。
我们先来查看下我们要进行转换的视频源的文件信息,如图:
我们可以看到,这是一个ts格式的视频文件,使用了h264视频编码(AVC是h264的另一个名字)和aac音频编码,但是分辨率和码率都比较高,1080i的分辨率和4000多的码率对于在线视频都有些过大了,所以我们决定先进行压制减小体积后再上传。
mediainfo默认显示的信息比较简单,我们将鼠标指向video的框里面,会有一个tip弹出,显示出更多的视频信息,如图:
其中比较值得注意的有两个地方,一个是scan type这一项,这里显示了是interlaced,表明这个视频是交错的,也就是如果直接看这个视频,会发现画面有很多拉丝现象(后面附图),一般日本电视直接录制的视频或者日本的dvd都会有交错这个问题,对于这种视频我们在压制的时候需要进行反交错处理,具体方法后面会讲到。
另一个需要注意的地方是,这个视频分辨率为1440×1080,但是长宽比却是16:9,表明这个视频是拉伸的,我们后面压制的时候也要考虑到这个问题。
接下来就是播放这个视频来进行肉眼观察了,主要要观察视频质量,场景的复杂度,还有视频是否是交错的,以及交错的类型。请注意,一定要在播放器中关闭反交错功能,否则就看不出视频本身是否交错了。
经过观察,我们发现这个视频质量不错,且场景较为简单,应该可以用较低的码率就达到不错的画质。另外,如同mediainfo中看到的,这个视频有明显的拉丝,确实是交错的,那么一会压制的时候需要进行反交错。
更复杂的像是判断是否需要IVTC以及观察场序等,这个面向新手的教程就暂时不涉及了。
2.1 界面介绍
打开HandBrake,点左上角的Source图标,打开我们要压制的源视频。界面基本是这个样子的
界面右边还有个附属的窗口,可以选择一些设备和normal、high profile等预设参数,这对于需要快速转换视频给手机等设备看的用户比较有用,但是我们这里暂时用不到。
第一部分:右边angle这里,可以按章节(如果视频本身带有章节信息)或时间或者帧对视频进行简单的剪辑,也就是只转换选择的部分内容,我们这个视频因为不需要剪广告,所以这里不动。如果遇到较长的视频,其中有多段广告需要剪掉的,建议先使用avidemux剪辑过后再进行压制,avidemux的使用方法后面再说。
第三部分:format是指封装格式,因为最后传新浪还要转换成flv封装,所以这里选mp4或mkv都可以,建议使用mp4。右边的large file size是指可以转换出超过4g的视频,还有web优化,ipod支持等,我们不用改动这部分。(其实改了也没用,后面还要重新用flv封装)
下面的这几个标签,第一个是视频参数,第二个是音频参数,第三个是字幕,第四个高级,第五个章节信息。我们要改的也只有前面两项,要内嵌字幕进去的,还需要改第三项。
我们再来详细看一下video标签:
第一行,编码器,如图所示我们选择x264。fps也就是视频的帧率,我们保持与源视频相同(same as source)。后面的两项vfr(Variable Framerate)和cfr(Constant Framerate),分别是动态帧率和固定帧率,因为源视频就是cfr的,所以我们也选择cfr。
这里补充下,基本上我们遇到的视频90%以上都是cfr的,一个视频是否固定帧率可以从mediainfo里的信息来看,如果帧率是一个固定值如29.970(参看2楼的图),那么它就是cfr的。而动态帧率的视频,在mediainfo里则可以看到Variable Framerate之类的字样。另外为了压制后的视频兼容性考虑,即使源视频是vfr的,这里也建议选择转换为cfr。
第二行,是关于码率控制一些选项。首先有两种码率控制模式,Constant Quality(固定质量模式,后面简称crf)和Average Bitrate(平均码率模式,后面简称2pass)。
crf顾名思义就是你给出一个固定的画质,然后x264自己去控制码率来使整个视频都保持在这个画质,后面的滚动条就是用来设置rf值(画质)的,数字越大画质越差,所以这种模式其实是无法准确控制最终生成视频的码率的。
我个人比较推荐这种模式,好处是1.码率分配合理,场景复杂的地方x264会自动分配更高的码率来保持画质,场景简单的地方x264会降低码率来减小体积。2.压制速度比2pass模式要快不少。但是这种模式有个问题就是,画面质量这种东西其实很难用数字来量化,我们到底应该把rf的值设置为多少会比较合适呢?这个参数x264的默认值是23,建议大家压制视频时候也设置在这个数值左右,想要画质好一点,就设到21附近,想要体积小一点,就设置到25或更大。另外这个值跟视频本身场景复杂度也有关,即使是同样的rf值,对于不同的视频,压出来的码率相差也会很多,例如动画片可能就比动作电影码率低一些。这个值该怎么设置还是比较需要经验的,也许你压片多了之后,就能根据不同的视频设置出不同的合理rf值了。
当然也可以有一些方法来粗略预估最终生成的码率和画质,例如一部电影2个小时,为了防止全部压完后才发现画质太差或者体积过大,浪费过多时间,可以从中间选取一段可以代表整个视频复杂度的段落,压制30秒或1分钟的视频(可以在界面右上angle里设置,选seconds,然后自己填开始和结束的秒数)。你可以根据这个片段的体积、码率和画质来推测完整视频的情况,再来进行参数的修改。
2pass模式,顾名思义就是2次编码压制,第一遍快速扫描整个视频来分配码率,第二遍根据你设置的平均码率来进行压制,这种模式是可以比较精确的控制码率的。使用这个模式,请一定要像上面的图一样勾上2pass那个选项,否者压出来的画质会很差。另外turbo first pass也建议勾上,会加快第一遍扫描的速度,而对画质的降低非常小,基本看不出来。
这种模式比较简单,你直接在前面的框里填入想要平均码率即可,不过压制速度会比crf慢一些,比较适合长度较短的视频,或者新手不太了解该如何设置crf的情况。
如果想不用后黑直接上传新浪的话,也可以用这种模式把视频码率设置在900以内,然后音频码率设置在100以内,这样加起来不超过1000,可以不用后黑直接上传新浪不会被二压。
第一个框,use x264 advanced options panel,这个是开启x264更多高级参数的设置面板,我们这是面向新手的教程,所以不勾选它。对于高手想要更多自定义参数的,可以打开它,高级面板里面的设置不比megui少。
然后下面是x264 preset,也就是x264的预设参数了,参数越高,压制速度越慢,同体积情况下画质越好(或者说同样的画质所需的码率越低,也就是说可以压的更小)。用滑杆可以在ultrafast至placebo之间调节,建议使用medium至very slow之间这4档,不过very slow可能就已经很慢了。
下面是x264 tune,tune里面可以设置视频类型来优化参数,有film(电影),animation(动画),stillimage(静态图)等选项,选film好像会加一些锐化,选stillimage好像会减少关键帧,反正针对不同类型会有一些参数有所不同。建议一般真人视频选none(即不优化),动画选animation,图包音乐类选stillimage。
再往下是profile和level,这个主要是针对硬解设备,例如手机或者psp之类的,不同设备都有规定最高能解码到什么level的视频,如果是给移动设备压的视频,请设置的不高于你设备所支持的最高level。另外这个level的设置优先级更高,会覆盖上面的预设值。如果是要上传新浪准备投稿的视频,这两个选择auto即可。
右边是additional options,可以手动输入更多的x264参数,新手不用管它。
设置完之后,下面一行会显示出x264的参数供参考
可以看出,我这里使用了crf模式,rf值设置为21,preset使用veryslow。
点击右上4个图标中的第一个,picture settings。在这里我们可以设置缩放,反交错等画面处理内容。
先看缩放相关的内容
这图是我设置好之后的样子,width和height是指压出来的视频的宽度和高度,keep aspect ratio是指保持长宽比,勾上之后只能调整宽度,高度会自动计算,下面的anamorphic是指对视频进行一些拉伸或形变处理。再往下的modulus是指分辨率的数值需要为几的倍数,因为上面width框里不能自己填数值,只能点上下箭头调整,所以这里先选16,然后再调整宽度,点上下箭头会变得比较快。对于网络视频,576p或480p是比较合适的分辨率,分辨率小了之后码率也可以降低,缓冲速度不至于太慢,而且全屏之后,画质也不会太差。
右边的cropping是切边用的,适合于有黑边的视频,要切掉黑边,我们这里用不到,所以全部填0。
(这一段是拓展,可以不看)
第一个是detelecine是用来处理telecine的场序和删重复帧的,也就是我们常说的IVTC,这个内容比较复杂,且现在遇到telecine视频的机会不是很多,本文就不讲了,有兴趣的可以自行搜索IVTC。
第二、三两项就是我们要用到的反交错了,decomb滤镜应该是对部分交错的视频和动画片效果更好,我们这个视频是全部交错的,所以使用deinterlace。第三个选项里选择反交错的速度,slow和slower都是使用yadif滤镜,为了更好的效果,我们选择slower。(注:选bob的话,帧率会翻倍,慎用)
再下面的denoise是降噪滤镜,可以选不同的降噪强度,因为我们视频源本身画质很好没有噪点,所以不需要降噪,这里选off。另外我个人是比较不提倡使用降噪滤镜的,很多使用megui压片的人为了降低码率,喜欢用各种降噪,其实如果设置不好会导致画面丢失很多细节。我认为除非是修复老片,否则保留原汁原味的画面才是比较好的做法。
再下来是deblock,如果源视频有比较明显的色块可以开启这个,不过如果你压制时候降低了分辨率,其实就起到deblock效果了,这里我们选off。
最后一个好像是给黑白片源用的,我们不勾选它。
这样基本就完成了对视频的所有设置,在进行压制之前,最好先使用preview来预览一下效果。
handbrake的预览,相比起avs系的转换软件如megui还是弱了些,不能观察任意帧,只能预览它设定好间隔的这些样本帧。不过大致看一下,基本上也可以确定没什么问题了。如果想要预览一段连续的,可以点那个live preview,其实这个本质就是转换了一小段,需要等待它转换完毕才能预览。
相比较而言,音频的设置就比较简单了,第一项选择要转换的音轨,一般视频都只有一条音轨,如果是多音轨的视频(例如国语粤语双音轨),请选择你所需要用到的那一条。因为在线视频一般不支持多音轨,所以请只添加一条音轨(第二行请选none)。
第二项是音频编码器,请使用aac格式。mac系统推荐使用CoreAudio(也就是qaac),其他系统建议faac或者ffmpeg,handbrake不支持自己添加neroaac或qaac还是有点不爽的。
后面的声道选立体声,采样率选auto。
然后是音频的码率,首先不要超过源视频码率,2楼的图中可以看到原来的音频码率是144,所以我们选128。aac这种音频格式的压缩率还是比较高的,256k音质就已经比320k的mp3要好了,所以一般音乐视频用128k,非音乐视频用96k就差不多够了。
再后面的是增大或减小音量,我们这个视频音量没有问题,所以不动。
先讲下后黑是什么,简单的说就是修改一个视频的时间戳,使它长度变长,但是视频内容不变。播放到原来视频结束的地方,即使进度条没有走到底,这个视频依然会直接结束。
为什么要对一个视频进行后黑处理呢?简单来说就是为了拉低平均码率来欺骗新浪视频。
这要先从视频网站说起,一般的视频网站,包括鼻祖youtube,都会在你把视频上传之后,再进行二次压制,不保留你所上传的原视频。对网站来说这是好事,因为用户上传的视频五花八门,什么格式都有,进行二次处理都是用他们固定好的参数来压制为h264+aac编码格式,这样视频统一兼容性强,也容易管理,而且同一个视频会分成几个档次压制几次,提供给用户不同画质的选择(流畅,高清,超清之类)。但是对于追求高画质的人来说,国内优酷和土豆所提供的最高画质依然不够清晰,毕竟视频网站出于带宽成本控制的考虑,不会把视频压得太高清。
但是新浪视频是一个异类,新浪不提供多画质切换,你上传的视频只会被压出一个版本,品质大概跟优酷的高清差不多。不过新浪视频有个特例,对于码率(这里指总码率,要加上音频)低于1000的h264+aac格式flv,不进行二次压制,会直接播放你所上传的视频。
早期,up主们发现新浪这个特性之后,都会在压制时把总码率控制在1000以内,这样上传新浪不用转码可以很快通过,加快了投稿速度,同时画质也比二压的要好很多。但是后来随着大家网速越来越好,对在线视频的画质追求也越来越高,但是我们又无法控制视频网站的二次压制参数,于是就有人想出了在视频后面加一段黑屏内容(静态纯黑的码率非常低,接近于0),来降低整体的平均码率到1000以内,这就叫后黑。后黑后来进一步演变成不用加黑屏内容,直接修改时间戳的方式,这种方式不需要改动视频流,直接用软件对视频文件进行处理就可以实现,比早期的后黑方式方便很多。
后黑的软件主要有两个,sinahigh和flvbugger,原理基本一样,使用方法也大同小异。比较遗憾的是,这两个软件都只支持windows平台,我之后看看有没有空写一个mac版的。
大家可能对sinahigh比较熟悉,但是我更推荐flvbugger,一方面是因为sinahigh每次启动都报错(它的网站挂掉了,软件启动时访问不到所以报错),还要多点一下比较烦,另一方面是flvbugger可以直接对视频重新封装,不需要先转成flv。
flvbugger是开源软件,作者博客提供的使用说明和下载地址:http://www.cnblogs.com/tsorgy/archive/2011/01/02/flvparser.html
。不过他这篇文章给出的并不是最新版本,我把作者在codeplex提供的最新版本和他忘记打包进去的ffmpeg传到百度网盘了,大家可以直接从这里下载:http://pan.baidu.com/share/link?shareid=1513986354&uk=2332342019
打开软件,将我们之前压制好的mp4文件拖进去,会提示“不是flv格式,是否尝试转换封装”,选择“是”,它会自动将mp4重新封装成flv之后打开(在软件同目录生成~tmp.flv,最后记得删除)。这时界面将显示一些视频的帧信息,这些内容我们不用理会。看左下角,目标码率默认是1000,保险起见我们改为990,然后设置好输出文件夹,最后点左下的“后黑处理”按钮即可,会在你设置的输出文件夹内生成一个xxx.black.flv(xxx为原文件名)。
上传视频到新浪这个动作本身并无技术含量,我也不用讲解。但是如何使视频能尽快通过审核以及视频挂掉之后如何重新上传,还是有点小技巧的。
新浪视频的审核标准直到今天还是个谜,有时紧有时松,似乎是看心情。为了快速通过审核,上传有版权问题的视频,基本上有两种方法,一种是模糊化视频标题和内容描述,例如动画可以写成广告宣传片,电影写成网络短片,演唱会写成校园表演,总之就是尽量往无版权的内容去靠。另一种方法就是完全胡扯,标题直接写毕业纪念,公开课讲座等等无版权无争议的东西,或者甚至直接填乱码。
我一般使用第一种方法,网上也看到过有乱填通过的,具体可能还要靠大家自己试验。而且不同时期新浪审核标准也不一样,最近就比较紧,上传视频经常被删。另外,即使你通过了审核,也不表示这个视频就会永远存在,我们经常也能遇到本来过了,隔半天或者一天又显示审核不通过的情况。另外,建议多注册一些账号,一个视频挂了之后,换另一个账号传,虽然未经严密证实,我总感觉通过率越高的账号下次审核越容易,被删掉很多视频的账号下次审核越难。
另外,一个视频如果被新浪干掉,或者是审核一直不通过,你想要重新上传的话,请不要还使用原来的同一个文件,新浪好像有md5比对的。建议拿没后黑之前的视频,用sinahigh勾上“随机内容”之后重新后黑,这样文件特征码会有所不同,可以躲避新浪的自动检测。
最后要讲一点,新浪一旦过了审核,请尽快投稿到bilibili,bili投稿过审核之后,就可以不怕新浪删视频了。这涉及到bilibili最近使用的乐视云视频系统,我们后面会详细说一下。
不同于新浪要降低码率,上传其它视频网站,我们要尽量提高码率,来提升画质。
像优酷土豆腾讯这些网站,都是要进行二次压制的,而最终给出哪些档次的画质,会根据你上传视频的分辨率和码率来决定。如图:
从土豆和优酷的标准可以看出,基本上分辨率和码率越高,越容易获得最高档次的画质。顺便吐槽一句,最近土豆似乎已经取消了原画,并且超清的压制参数也变得很低,搞出来的所谓超清视频一点也不清。
所以只要你上传速度够快,请直接传原始视频上去,不需要先压制。如果是交错的视频,可能视频网站的反交错效果会比较差,这个时候你可以自己反交错并用较高参数压制后上传。如果手头的视频分辨率较低,又想获得超清,甚至可以进行upscale,也就是从低分辨率往高分辨率转。不过如果原始视频画质就不好,即使视频网站给了超清也没什么用。
优酷土豆的审核比起新浪还是要好一些的,最起码审核不通过一般会给出理由,另外注意就是有些带电视台台标的视频,是不太容易过审核的,可以选择压制的时候进行打码处理。
优酷或者土豆视频想投稿bilibili,如果是不允许的区,可以用otaku.im这个网站来进行自动转传,然后再去bilibili投稿。这个网站跟sinahigh是同一个开发者,所以也支持自动后黑再转传新浪,无论是下载还是上传速度都非常之快,但是必须有bilibili账号的人才能使用。
可能有很多人已经发现了,bilibili投稿新浪后黑的视频,发布出来之后会变成无后黑的,这就是因为bili所使用的乐视云系统了。
乐视云视频到底是个什么东西呢,大家可以自己打开http://www.letvcloud.com
看下介绍,简单来说就是购买了乐视云视频的服务之后,你把视频传到乐视服务器上,乐视可以帮你在线播放视频。听起来跟优酷土豆很像?其实本质上也确实差不多,你可以理解为是向上传者收费的优酷,但是没广告、不二压、审核速度快,但流量需要花钱买。
bili是流量大户,估计也给了乐视不少钱(仅仅是我的猜测,也有可能乐视为了推广或为了盗取视频资源,只向bili收取了少量的服务费甚至免费),所以乐视云跟bili应该是深度的合作,具体的机制我不太清楚,但可以做一些合理猜测:
1.bili的审核员审核通过后,点击通过按钮。
2.bili服务器从你发的视频网址中获得真实视频文件地址,然后去下载这个视频,下载完之后再把这个视频上传到乐视云。
3.乐视云对这个视频进行简单的处理,先去掉后黑,然后判断码率,若码率不是太高(具体标准不清楚,但比新浪的1000k肯定要高,至少是2000以上的),则不会进行二压,直接发布,如果码率过高,乐视还会进行二压。
4.乐视云处理完成后,up这里才会显示通过审核,然后bili把这个视频发布出来。
所以其实大家现在在bili看的视频,视频源都是letv的网址,我们可以用chrome自带的抓包工具来验证一下:
既然如此,为什么bili不学nico那样直接开放给用户上传呢?我想bili一方面是为了节约成本,因为新浪优酷之类的网站先审核过一轮,bili这边审核就比直接让用户上传要省力得多。另一方面也可以节约bili自己服务器的流量成本,因为bili这边审核不通过的视频不用上传到乐视云。还有就是估计乐视云也不提供用户自行上传的接口,只能bilibili来上传视频。
bili用乐视云视频到底是好事还是坏事,我觉好处坏处都有,我只把优缺点列出来,具体判断交由各位自己来做。
优点:视频后黑没了,观看体验增强。还有就是,只要视频通过了审核,就不怕视频源挂掉了,对爱抽风的新浪尤其如此。所以你要投新浪视频请上传完新浪赶紧投,如果bili这边先通过了,即使新浪删掉你视频也无所谓。
缺点:乐视会从bili上传到乐视云的视频中盗取内容。乐视网这个在线视频网站不同于优酷,是不允许用户自己上传内容的,所有视频都是由乐视的编辑自己发布。那么乐视网编辑如何去寻找视频资源呢,虽然乐视号称他们所有视频都是有正版授权的,但其实完全是扯淡的。从乐视网方面来看,bili无异于一个绝好的内容宝库,首先bili能发出来的视频都是经过几轮审核和筛选的,比优酷土豆这类视频网站的视频质量要高很多。其次,乐视还可以从播放次数等一些信息来辅助筛选出热门视频,比如只从播放次数超过1万的视频中盗取。
【转】handbrake使用教程的更多相关文章
- Angular2入门系列教程7-HTTP(一)-使用Angular2自带的http进行网络请求
上一篇:Angular2入门系列教程6-路由(二)-使用多层级路由并在在路由中传递复杂参数 感觉这篇不是很好写,因为涉及到网络请求,如果采用真实的网络请求,这个例子大家拿到手估计还要自己写一个web ...
- Angular2入门系列教程6-路由(二)-使用多层级路由并在在路由中传递复杂参数
上一篇:Angular2入门系列教程5-路由(一)-使用简单的路由并在在路由中传递参数 之前介绍了简单的路由以及传参,这篇文章我们将要学习复杂一些的路由以及传递其他附加参数.一个好的路由系统可以使我们 ...
- Angular2入门系列教程5-路由(一)-使用简单的路由并在在路由中传递参数
上一篇:Angular2入门系列教程-服务 上一篇文章我们将Angular2的数据服务分离出来,学习了Angular2的依赖注入,这篇文章我们将要学习Angualr2的路由 为了编写样式方便,我们这篇 ...
- Angular2入门系列教程4-服务
上一篇文章 Angular2入门系列教程-多个组件,主从关系 在编程中,我们通常会将数据提供单独分离出来,以免在编写程序的过程中反复复制粘贴数据请求的代码 Angular2中提供了依赖注入的概念,使得 ...
- Angular2入门系列教程1-使用Angular-cli搭建Angular2开发环境
一直在学Angular2,百忙之中抽点时间来写个简单的教程. 2016年是前端飞速发展的一年,前端越来越形成了(web component)组件化的编程模式:以前Jquery通吃一切的田园时代一去不复 ...
- wepack+sass+vue 入门教程(三)
十一.安装sass文件转换为css需要的相关依赖包 npm install --save-dev sass-loader style-loader css-loader loader的作用是辅助web ...
- wepack+sass+vue 入门教程(二)
六.新建webpack配置文件 webpack.config.js 文件整体框架内容如下,后续会详细说明每个配置项的配置 webpack.config.js直接放在项目demo目录下 module.e ...
- wepack+sass+vue 入门教程(一)
一.安装node.js node.js是基础,必须先安装.而且最新版的node.js,已经集成了npm. 下载地址 node安装,一路按默认即可. 二.全局安装webpack npm install ...
- Virtual Box配置CentOS7网络(图文教程)
之前很多次安装CentOS7虚拟机,每次配置网络在网上找教程,今天总结一下,全图文配置,方便以后查看. Virtual Box可选的网络接入方式包括: NAT 网络地址转换模式(NAT,Network ...
随机推荐
- 从零开始学 Web 之 jQuery(一)jQuery的概念,页面加载事件
大家好,这里是「 从零开始学 Web 系列教程 」,并在下列地址同步更新...... github:https://github.com/Daotin/Web 微信公众号:Web前端之巅 博客园:ht ...
- Centos7安装Mysql8(官方整合包)
1. 下载整合包 [root@master ~]# wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.12-1.el7.x86_ ...
- Struts的FormFile与Commons-FileUpload控件使用心得
转自: http://www.iteye.com/topic/212566 前一段时间刚来公司,看到一个项目中以前有人写的struts代码.是使用了FormFile来处理关于文件上传的模块.但是用力一 ...
- JS之BOM、DOM
一.BOM对象 1,window对象 所有浏览器都支持window对象,从概念上讲:一个HTML文档对应一个window对象,从功能上讲:控制浏览器窗口的,从使用上讲:window对象不需要创建对象, ...
- [转]angular2在运行ng serve的时候卡在95% emitting LicenseWebpackPlugin
本文转自:https://blog.csdn.net/qq919694688/article/details/80912207 放弃使用cnpm,使用yarn 1.删除node_modules (不需 ...
- JavaScript字符串常用方法
toUpperCase():把一个字符串全部变为大写 toLowerCase():把一个字符串全部变为小写 indexOf():会搜索制定字符串出现的位置,有返回索引,没有返回-1 substring ...
- 通过AccessKey调用阿里云CDN接口刷新CDN资源案例
通过AccessKey远程调用阿里云CDN接口,快速实现自动化集成部署. CdnService.java package com.nfky.cdn; import com.aliyuncs.Defau ...
- java动态代理--一个简单的例子
这几天看视频看到了java的动态代理,这里写一个小例子.在写例子的时候发现:认为自己会了,和能写出来真不是一个概念.还是要多写代码,然后写博客再深入一些,费曼学习法--教,是最好的学. 1.什么是动态 ...
- 关于html5中的 网页图标问题
在html5 中 设置网页图标的语句<link rel="icon" type="image/x-icon" href="favicon.ico ...
- CSS之Medial Queries的另一用法:实现IE hack的方法
所谓Medial Queries就是媒体查询. 随着Responsive设计的流行,Medial Queries可算是越来越让人观注了.他可以让Web前端工程实现不同设备下的样式选择,让站点在不同的设 ...