我们可以看到,这是一个ts格式的视频文件,使用了h264视频编码(AVC是h264的另一个名字)和aac音频编码,但是分辨率和码率都比较高,1080i的分辨率和4000多的码率对于在线视频都有些过大了,所以我们决定先进行压制减小体积后再上传。
mediainfo默认显示的信息比较简单,我们将鼠标指向video的框里面,会有一个tip弹出,显示出更多的视频信息,如图:
经过观察,我们发现这个视频质量不错,且场景较为简单,应该可以用较低的码率就达到不错的画质。另外,如同mediainfo中看到的,这个视频有明显的拉丝,确实是交错的,那么一会压制的时候需要进行反交错。
更复杂的像是判断是否需要IVTC以及观察场序等,这个面向新手的教程就暂时不涉及了。
【第二部分】
2.1 界面介绍
打开HandBrake,点左上角的Source图标,打开我们要压制的源视频。界面基本是这个样子的
界面右边还有个附属的窗口,可以选择一些设备和normal、high profile等预设参数,这对于需要快速转换视频给手机等设备看的用户比较有用,但是我们这里暂时用不到。
第一部分:右边angle这里,可以按章节(如果视频本身带有章节信息)或时间或者帧对视频进行简单的剪辑,也就是只转换选择的部分内容,我们这个视频因为不需要剪广告,所以这里不动。如果遇到较长的视频,其中有多段广告需要剪掉的,建议先使用avidemux剪辑过后再进行压制,avidemux的使用方法后面再说。
第二部分:是文件路径,略过不提。
第三部分:format是指封装格式,因为最后传新浪还要转换成flv封装,所以这里选mp4或mkv都可以,建议使用mp4。右边的large file size是指可以转换出超过4g的视频,还有web优化,ipod支持等,我们不用改动这部分。(其实改了也没用,后面还要重新用flv封装)
下面的这几个标签,第一个是视频参数,第二个是音频参数,第三个是字幕,第四个高级,第五个章节信息。我们要改的也只有前面两项,要内嵌字幕进去的,还需要改第三项。
2.2 视频参数设置
我们再来详细看一下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,可以不用后黑直接上传新浪不会被二压。
再往下是关于x264的更多参数设置,因为x264的参数非常之多,所以x264官方给出了几套不同的预设值。网上也有流传着各种设置好的参数,但是其中很多都是不合适的。我个人意见是,如果你自己不是非常明确的了解你要改的这个参数的含义,请不要乱改,使用预设值就好。x264官方给出的预设值,比网上有些瞎搞的参数强多了。
第一个框,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。
2.3 画面设置
点击右上4个图标中的第一个,picture settings。在这里我们可以设置缩放,反交错等画面处理内容。
先看缩放相关的内容
这图是我设置好之后的样子,width和height是指压出来的视频的宽度和高度,keep aspect ratio是指保持长宽比,勾上之后只能调整宽度,高度会自动计算,下面的anamorphic是指对视频进行一些拉伸或形变处理。再往下的modulus是指分辨率的数值需要为几的倍数,因为上面width框里不能自己填数值,只能点上下箭头调整,所以这里先选16,然后再调整宽度,点上下箭头会变得比较快。对于网络视频,576p或480p是比较合适的分辨率,分辨率小了之后码率也可以降低,缓冲速度不至于太慢,而且全屏之后,画质也不会太差。
右边的cropping是切边用的,适合于有黑边的视频,要切掉黑边,我们这里用不到,所以全部填0。
(这一段是拓展,可以不看)
我们前面提到,这个源视频分辨率为1440×1080,看起来好像是4:3的,但是长宽比却是16:9,播放时也是1920×1080的。这其实就是视频进行了拉伸设置,anamorphic选custom的话,我们也可以设置par比例来进行类似的拉伸处理。一般建议anamorphic选none,然后自己来设置分辨率比例直接等于画面比例。除非是源视频分辨率本来就不高,例如720×480的16:9视频,如果减小分辨率画质会太差,而设置成854×480的话,会导致宽度从低转到高,造成浪费,这时候就需要保持720×480的分辨率,再设置par比例来解决了。par设置这些对新手来说比较复杂,且用到的机会不多,具体方法就不多讲了。
再来就是picture settings的第二项,filters(滤镜)。
第一个是detelecine是用来处理telecine的场序和删重复帧的,也就是我们常说的IVTC,这个内容比较复杂,且现在遇到telecine视频的机会不是很多,本文就不讲了,有兴趣的可以自行搜索IVTC。
第二、三两项就是我们要用到的反交错了,decomb滤镜应该是对部分交错的视频和动画片效果更好,我们这个视频是全部交错的,所以使用deinterlace。第三个选项里选择反交错的速度,slow和slower都是使用yadif滤镜,为了更好的效果,我们选择slower。(注:选bob的话,帧率会翻倍,慎用)
再下面的denoise是降噪滤镜,可以选不同的降噪强度,因为我们视频源本身画质很好没有噪点,所以不需要降噪,这里选off。另外我个人是比较不提倡使用降噪滤镜的,很多使用megui压片的人为了降低码率,喜欢用各种降噪,其实如果设置不好会导致画面丢失很多细节。我认为除非是修复老片,否则保留原汁原味的画面才是比较好的做法。
再下来是deblock,如果源视频有比较明显的色块可以开启这个,不过如果你压制时候降低了分辨率,其实就起到deblock效果了,这里我们选off。
最后一个好像是给黑白片源用的,我们不勾选它。
这样基本就完成了对视频的所有设置,在进行压制之前,最好先使用preview来预览一下效果。
handbrake的预览,相比起avs系的转换软件如megui还是弱了些,不能观察任意帧,只能预览它设定好间隔的这些样本帧。不过大致看一下,基本上也可以确定没什么问题了。如果想要预览一段连续的,可以点那个live preview,其实这个本质就是转换了一小段,需要等待它转换完毕才能预览。
2.3 音频参数设置
相比较而言,音频的设置就比较简单了,第一项选择要转换的音轨,一般视频都只有一条音轨,如果是多音轨的视频(例如国语粤语双音轨),请选择你所需要用到的那一条。因为在线视频一般不支持多音轨,所以请只添加一条音轨(第二行请选none)。
第二项是音频编码器,请使用aac格式。mac系统推荐使用CoreAudio(也就是qaac),其他系统建议faac或者ffmpeg,handbrake不支持自己添加neroaac或qaac还是有点不爽的。
后面的声道选立体声,采样率选auto。
然后是音频的码率,首先不要超过源视频码率,2楼的图中可以看到原来的音频码率是144,所以我们选128。aac这种音频格式的压缩率还是比较高的,256k音质就已经比320k的mp3要好了,所以一般音乐视频用128k,非音乐视频用96k就差不多够了。
再后面的是增大或减小音量,我们这个视频音量没有问题,所以不动。
3.1 后黑处理
先讲下后黑是什么,简单的说就是修改一个视频的时间戳,使它长度变长,但是视频内容不变。播放到原来视频结束的地方,即使进度条没有走到底,这个视频依然会直接结束。
为什么要对一个视频进行后黑处理呢?简单来说就是为了拉低平均码率来欺骗新浪视频。
这要先从视频网站说起,一般的视频网站,包括鼻祖youtube,都会在你把视频上传之后,再进行二次压制,不保留你所上传的原视频。对网站来说这是好事,因为用户上传的视频五花八门,什么格式都有,进行二次处理都是用他们固定好的参数来压制为h264+aac编码格式,这样视频统一兼容性强,也容易管理,而且同一个视频会分成几个档次压制几次,提供给用户不同画质的选择(流畅,高清,超清之类)。但是对于追求高画质的人来说,国内优酷和土豆所提供的最高画质依然不够清晰,毕竟视频网站出于带宽成本控制的考虑,不会把视频压得太高清。
但是新浪视频是一个异类,新浪不提供多画质切换,你上传的视频只会被压出一个版本,品质大概跟优酷的高清差不多。不过新浪视频有个特例,对于码率(这里指总码率,要加上音频)低于1000的h264+aac格式flv,不进行二次压制,会直接播放你所上传的视频。
早期,up主们发现新浪这个特性之后,都会在压制时把总码率控制在1000以内,这样上传新浪不用转码可以很快通过,加快了投稿速度,同时画质也比二压的要好很多。但是后来随着大家网速越来越好,对在线视频的画质追求也越来越高,但是我们又无法控制视频网站的二次压制参数,于是就有人想出了在视频后面加一段黑屏内容(静态纯黑的码率非常低,接近于0),来降低整体的平均码率到1000以内,这就叫后黑。后黑后来进一步演变成不用加黑屏内容,直接修改时间戳的方式,这种方式不需要改动视频流,直接用软件对视频文件进行处理就可以实现,比早期的后黑方式方便很多。
后黑的软件主要有两个,sinahigh和flvbugger,原理基本一样,使用方法也大同小异。比较遗憾的是,这两个软件都只支持windows平台,我之后看看有没有空写一个mac版的。
大家可能对sinahigh比较熟悉,但是我更推荐flvbugger,一方面是因为sinahigh每次启动都报错(它的网站挂掉了,软件启动时访问不到所以报错),还要多点一下比较烦,另一方面是flvbugger可以直接对视频重新封装,不需要先转成flv。
打开软件,将我们之前压制好的mp4文件拖进去,会提示“不是flv格式,是否尝试转换封装”,选择“是”,它会自动将mp4重新封装成flv之后打开(在软件同目录生成~tmp.flv,最后记得删除)。这时界面将显示一些视频的帧信息,这些内容我们不用理会。看左下角,目标码率默认是1000,保险起见我们改为990,然后设置好输出文件夹,最后点左下的“后黑处理”按钮即可,会在你设置的输出文件夹内生成一个xxx.black.flv(xxx为原文件名)。
3.2 战渣浪
上传视频到新浪这个动作本身并无技术含量,我也不用讲解。但是如何使视频能尽快通过审核以及视频挂掉之后如何重新上传,还是有点小技巧的。
新浪视频的审核标准直到今天还是个谜,有时紧有时松,似乎是看心情。为了快速通过审核,上传有版权问题的视频,基本上有两种方法,一种是模糊化视频标题和内容描述,例如动画可以写成广告宣传片,电影写成网络短片,演唱会写成校园表演,总之就是尽量往无版权的内容去靠。另一种方法就是完全胡扯,标题直接写毕业纪念,公开课讲座等等无版权无争议的东西,或者甚至直接填乱码。
我一般使用第一种方法,网上也看到过有乱填通过的,具体可能还要靠大家自己试验。而且不同时期新浪审核标准也不一样,最近就比较紧,上传视频经常被删。另外,即使你通过了审核,也不表示这个视频就会永远存在,我们经常也能遇到本来过了,隔半天或者一天又显示审核不通过的情况。另外,建议多注册一些账号,一个视频挂了之后,换另一个账号传,虽然未经严密证实,我总感觉通过率越高的账号下次审核越容易,被删掉很多视频的账号下次审核越难。
另外,一个视频如果被新浪干掉,或者是审核一直不通过,你想要重新上传的话,请不要还使用原来的同一个文件,新浪好像有md5比对的。建议拿没后黑之前的视频,用sinahigh勾上“随机内容”之后重新后黑,这样文件特征码会有所不同,可以躲避新浪的自动检测。
最后要讲一点,新浪一旦过了审核,请尽快投稿到bilibili,bili投稿过审核之后,就可以不怕新浪删视频了。这涉及到bilibili最近使用的乐视云视频系统,我们后面会详细说一下。
3.3 上传其他视频网站
不同于新浪要降低码率,上传其它视频网站,我们要尽量提高码率,来提升画质。
像优酷土豆腾讯这些网站,都是要进行二次压制的,而最终给出哪些档次的画质,会根据你上传视频的分辨率和码率来决定。如图:
从土豆和优酷的标准可以看出,基本上分辨率和码率越高,越容易获得最高档次的画质。顺便吐槽一句,最近土豆似乎已经取消了原画,并且超清的压制参数也变得很低,搞出来的所谓超清视频一点也不清。
所以只要你上传速度够快,请直接传原始视频上去,不需要先压制。如果是交错的视频,可能视频网站的反交错效果会比较差,这个时候你可以自己反交错并用较高参数压制后上传。如果手头的视频分辨率较低,又想获得超清,甚至可以进行upscale,也就是从低分辨率往高分辨率转。不过如果原始视频画质就不好,即使视频网站给了超清也没什么用。
优酷土豆的审核比起新浪还是要好一些的,最起码审核不通过一般会给出理由,另外注意就是有些带电视台台标的视频,是不太容易过审核的,可以选择压制的时候进行打码处理。
优酷或者土豆视频想投稿bilibili,如果是不允许的区,可以用otaku.im这个网站来进行自动转传,然后再去bilibili投稿。这个网站跟sinahigh是同一个开发者,所以也支持自动后黑再转传新浪,无论是下载还是上传速度都非常之快,但是必须有bilibili账号的人才能使用。
3.5 bilibili的乐视云视频系统简单研究
可能有很多人已经发现了,bilibili投稿新浪后黑的视频,发布出来之后会变成无后黑的,这就是因为bili所使用的乐视云系统了。
乐视云视频到底是个什么东西呢,大家可以自己打开http://www.letvcloud.com 看下介绍,简单来说就是购买了乐视云视频的服务之后,你把视频传到乐视服务器上,乐视可以帮你在线播放视频。听起来跟优酷土豆很像?其实本质上也确实差不多,你可以理解为是向上传者收费的优酷,但是没广告、不二压、审核速度快,但流量需要花钱买。
既然跟优酷土豆差不多,为什么bili要花钱买它呢,直接盗链这些免费视频网站不好吗?一方面bili是想提供画质高一些的在线视频,另一方面bili被收购后拿到视频牌照,所以想将视频内容掌控在自己手里,而不受制于优酷土豆之类的第三方视频网站。以前的模式毕竟还是盗链,哪天土豆优酷新浪都不让你盗链了,你这个网站就得完蛋
。
而且bili如果是自己买服务器储存视频,成本应该还是比乐视云这个更高,同时你自己买服务器也做不到像乐视的服务器那么多,无法保证不同地区不同网络(网通电信铁通等乱七八糟)都能流畅观看。
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万的视频中盗取。