gnaggnoyil
gnaggnoyil

[20121202]把avi_tc_package給port到linux上

avi_tc_package是啥不多廢話了,接觸過11區奇葩的dvd和bd的ripper基本都知道這東西的作用(前略,天國的120fps
avi...).此外和mencoder的decimate濾鏡結合還能達到真·砍幀作用,從而對那些5爛2的地方,能在ivtc之後用作砍幀到24p之
用——這些都是可以不經過avs的.
不過很奇怪的是這樣一個東西竟然只能在win下跑……好吧那個gui是用C#寫的,不看源碼也能目測肯
定是用了net
framework之類的……嘛不過gui不port也無所謂,反正無論bash還是zsh實用度上(別想歪了,和擼沒關係)都能秒powershell
十條街,更不用說那個連powershell都不如的cmd了額……問題是cfr2tc,tc2cfr和tcConv這三個東西竟然也是windows限
定……好吧看著那三個vcproj就蛋疼……不就是區區三個cpp么做成cross-platform能死么……打開源碼發現原來都用了
windows.h和malloc.h……好吧原作者你是到底有多windows廚啊Orz.
於是決定做linux
port,畢竟前面說過的擺脫avs的最初動力就是要在linux機子上舒舒服服地作rip.要是在bash下跑wine
avs2yuv.exe那真是折騰的要死……根據某11區網站給出的指點,寫了個預編譯開關的header,寫完之後用g++
4.7.2編譯,雖然中途一大堆warning,不過最後還是編譯成功了額……
另外順手修改了cfr2tc.cpp中一個不算是bug的bug,這個bug會讓cfr2tc在碰到一開頭的幀都是null frames的幀的時候因為數組下標越界而崩掉……嘛雖然按理說會產生這樣奇葩的avi本身就是一件非常odd的事情了Orz...

單地寫了個makefile.這樣要build的時候直接輸入make,或者makefile
CXX_FLAGS="-O2"做優化.安裝的時候make install PERFIX="/usr/local".卸載的話則make
uninstall PERFIX="/usr/local",清除源碼目錄下的程序和中間obj的話則直接make clean...
當然make install和make uninstall需要sudo這個就不需要廢話了……
順手也做了個prebuild的binary,用g++ 4.7.2編譯的,帶O2優化.用的話直接解壓,然後把bin目錄下的三個binary複製到需要的地方就是.
源碼和binary於是都放在了google code上.

碼包:http://code.google.com/p/gnags-encoding-tools/downloads
/detail?name=avi_tc_package_linux_port_20121201_src.tar.gz&can=2&q=
binary
包:http://code.google.com/p/gnags-encoding-tools/downloads/detail?name=avi_tc_package_linux_port_20121201_release.tar.gz&can=2&q=