八月 16, 2010

webm压制流程

上一轮玩视频压制的时候,市面上流行的还是divx3,divx5,xvid,rm之类,rm那时候还没这么多一键搞定的压制工具,压起来还挺麻烦的;vp6那时候也出来过,不过也就几个组尝过鲜,基本上没什么人用,谁都想不到它最后会凭着flash player的flv格式在网路上大行其道。

今次要压webm,于是了解了一下各种现代化的工具,果然一个个都是鸟枪换炮,以前怎么都弄不会的avisynth,甚至都有相关的东西来帮你搞定了。

软件列表:
megui
avisynth
ffmpeg build(这个搜索ffmpeg auotobuild可以出来一批)
oggenc2.exe
foobar2000
neroaac

megui是其中最主要的部分,它的offline包携带各种常见工具,包括且不限于,dgindex和mkvtoolnix之类,最关键的自然还是它的avs script creator.它的正式名字是mpeg4 encoder gui,自带的压制格式是h264和xvid,音频支持少部分的常见格式。

安装avisynth,运行megui,让它自动更新,结束后就可以。

ffmpeg各种nightly build,主要功能就是其中的libvpx可以压webm。google官方提供的那个makewebm充满了各种悲剧,从上上篇post里那个test4.webm可以看到,它压出来的东西firefox根本不认识。

oggenc2.exe和foobar2k,由于一些原因,视频音频分开压缩最后再弄回去对大家都比较好。oggenc.exe自然是压ogg用的,foobar2k暂时在这里充当一下它的gui。

neroaac是压mp4音频时候需要,话说nero当年硬生生把一个刻录软件变成一个乱七八糟什么都系都有的解码包,最后只剩下这个免费工具还在为大家默默做贡献,也算是蛇头虎尾了。这个下载回来把neroAacEnc.exe放到megui目录下,让它自己调用就好,不用麻烦foobar了。

压制过程:
首先片源应该是mpeg2编码的,为什么呢,因为常见片源各种光盘的vob,高清信号的ts等等都是mpeg2,如果是其他任何编码格式,说明这个片源至少是经过一次压缩的二手货。

运行megui里tools目录下的dgindex,打开片源,调整playbak speed到最快,preview一次,装出看懂那个information的样子,save project,生成一个同名的d2v文件,一个log,以及分离出来的音轨。

(为了取得更好的压缩质量,根据information的各个结果,有些地方的选项可以有所变更,不过我一直都是默认值)

运行megui,tool选项卡下面的avs script creator,打开刚才那个d2v,可以进行一些切边以及调整视频大小的动作。最实用的部分是filters那个deinterlacing的部分,以前压制视频时经常会出现的抽丝现象,通常都是反交错模式没有设置好的缘故,这里提供自动检测判断,非常的方便实用,点击analyse,等它结束,save保存avs文件。

(其实上面过程的目的就是为了生成那个avs文件,虽然省略掉直接用ffmpeg压原始视频也可以,但出来的效果肯定就很寒碜。)

下面可以走webm路线或者mp4路线。

mp4路线很简单,上面save之后已经自动载入了avs,只要在下面的audio部分input选择刚才分离出来的音轨,extension选择m4a,点autoencoder,基本上就完成了。

webm路线相对麻烦一些,用命令行工具进到ffmpeg.exe所在目录,最简单的命令就是"ffmpeg.exe -i "x:\test.avs" "x:\test.webm"",它会根据扩展名用vp8压制,其他复杂的参数不多说,一方面说也说不完,另一方面我自己也不是很明白,就两个参数:-vb xxxxk,指定压制的码率;-an,忽略音轨;参数记得要放在输出文件的前面。

音轨部分,用foobar打开,选择convert,ogg之类的,挺一目了然的,不多说了。

最后把test.webm和ogg的音轨mux到一起,用的还是megui tools目录下的mkvmerge里的mmg.exe,运行后add进去上面那两个新鲜出炉的文件,start muxing,把扩展名改为webm,结束。

(注意如果webm没带 -an参数,也许会自带一条音轨,mmg里尽量只选择一条。webm虽然就是mkv的马甲,不过它其实只是一个子集,大概不支持多音轨并存乃至字幕章节等等之类的种种高科技特性。)



八月 09, 2010

你一生的故事

你一生的故事,可以有两种不同的观察角度。

一种就是作者特德姜所喜欢的,译者也在前言里说过的,露易丝在学习七肢桶语言的过程中,得到了预知未来的能力,整篇故事是她在接受丈夫要求的时候,对未来的预知,中间夹杂一些对以前学习过程的回忆。

另外一种角度,露易丝在学习七肢桶语言的过程中,改变了线性的思维方式,故事内容,是她在所有这些事情发生之后,对它们进行的回忆。这大概不是作者的原意,不过由于书中奇怪的叙述方式,也勉强可以自圆其说,有些地方甚至还能找到一些支持这个观察角度的点。

最开始有一段,“而你爸爸将和那个我不记得名字的女人一起生活”,本来这里的“记得”可以作为支持论据,因为只有回忆才会说记得,预知大概不会有这个用词,但是后来一查原文,“and your dad will be living with what's-her-name”,没提到remember之类的东西,让我非常失望。

不过没关系,后面还是出现过“remember“,而且次数还不少。点这里,117页到169页之间的都是

书里其实也有说过这种记忆的方法,

“有关未来的记忆好像拼图游戏的拼板,一块块拼合起来,每一块都是过去或未来的岁月,它们并不依次而来顺序拼接,但不久便组合成为长达五十年的记忆。”

其实整篇小说的叙述结构,遵照了这句话的描述,和七肢桶接触的内容作为主体,中间看似随意的插入女儿一生故事的各个片段。

为什么说它看似随意呢,因为在“非零和游戏”那里, 可以看出,片段出现的顺序还是经过精心设计的。这个词同时连接了七肢桶部分和女儿部分,于是在叙述过程其实也就是露易丝的记忆过程中,被特意放到了一起。

以这个解释作为基础,沙拉钵那里也就好理解了,买沙拉钵的时候,突然插入未来女儿不小心被它砸破头的桥段,只是因为沙拉钵联系了两段记忆,于是顺带回忆了出来,并不表示当时是在预知未来。

这样下来,大部分的东西都算是可以解释,但还是飘着两朵乌云。

第一朵,露易丝背着三岁女儿攀岩的梦,译文里接在你三岁爬楼梯后是,“那时我会想起这个梦”,似乎表示在女儿三岁的时候,就做了一个女儿最后攀岩摔死的梦。不过幸好,原文只是“and i'll remember that dream”。再顺便把上面被梦惊醒那段前后的衔接看作个常见的叙述陷阱,就算蒙混过关了。

第二朵,结尾部分,“我们彼此所说的,双方都预先知道”以及最后“我新获得的能力也不能提供答案”。这个是最头疼的部分,要强行把这里解释为后来回忆时的判断以及整合记忆的能力,很难说是十分妥当,也只好由它去了。

八月 02, 2010

webm

實際上我也沒怎麽看好webm,這東西最後如果能幹掉h264那就見鬼了.不過既然firefox的video標簽只能支持這個格式,市面上又不方便找vp8的視頻,只好勉爲其難的自己壓了。

webm官網上關於build的説明大概都是針對有點專業素養的人士,我反復看了很多遍,都沒看出來哪個東西才能壓出webm來,於是到另外地方再轉了一圈,ffmpeg之類的更加專業,下載都只有源代碼,得自己編譯那種,更加不現實,最後回來把download頁面所有東西都下載回來看了看,直到發現webmdshow裏的makewebm,才有點自信,算找到了要找的東西。

另外vp8 sdk里的ivfenc.exe似乎也是类似的東西,命令行工具,參照説明,輸入一大堆參數,按下回車,過倆鐘頭最後出來結果感覺似乎不錯。不過我想,市面上肯定有人給做了個gui出來,就不用搞那麽麻煩了,當然,doom9上果然有一個auotowebm。

最後再到xiph弄來ogg vorbis,就算是萬事俱備了。

片源正好現成,周末回老家蹭到的dv,拍了幾段魔方復原錄像,本來滿環期待的,但是最後屏幕上顯示出來的東西,和youtube上那些高手啪啪啪啪兩三下搞定的視頻怎麽會差這麽遠呢,明明成績也只是他們的兩三倍而已。

本來放視頻的直接引用空間是最大的障礙,今年三月空間到期后,blog搬囘blogger,手頭上已經沒什麽可以自由使用的空間。不過也還是正好,google storage前幾天收到激活,100g空間300g流量,咱可是一輩子都用不了這麽多呀。上週也用google storage放了那張七八兆大小的圖片,算是奢侈了一把。

===上面都是压制之前写的分割线===

压片感想:
速度好x慢,怪不得ffmpeg会声称压制速度比它快两倍
为什么没声音,我明明都加了--require-audio的,明明都装了opencodec的
以前压片时候,抽丝是怎么搞定来着,忘记了?
成品体积真小


結果:


(好吧我sb了,那个test.webm在本地用firefox打开可以播放,传上去可以正常下载,但不知道它怎么就不能播放了,下面那个ogg分明是可以的。这一定是世界错了,对吧,诚哥)

(八月九日最后一次修改,test4.webm,经测试大概可以播放,压制参数是 ffmpeg.exe -i "M2U00139.avs" -vb 700k -level 100 -an test4.webm)


为了弥补没声音的缺憾,另外放一个ogg来当背景音乐吧




====八月七日追加分割线

于是今天又和megui战了一下午,搞了x264出来,经chrome stable测试,应该可以正常播放,webm什么的,趁早洗洗睡吧