一直没有看到direct264的带patch的编译版,去年12月5日还是linuxyouxia好心帮我编译了一个带fadecomp和fgo的mod,不过总不能麻烦别人,于是决定自己动手,丰衣足食好了。
项目:http://code.google.com/p/direct264umod/ 编译环境:Win7 x64 SP1
MSYS 1.0.17.1
mingw-gcc 4.6.3
yasm 1.2.0
libav-v0.8-1060-g90e5b58 [win32threads, 20120316]
Patches:(这部分还是要感谢06_taro提供的diff,至少省去了一个一个找diff的时间;不过因为direct264与官方x264差别较大,大部分都需要手动改)
01. Ofast & LTO config + ModTag (Update)02. Film Grain Optimization (Update) (help里添加需要subme>=7和0-50范围的提示,增加AVX支持)03. Fade Compensation (额外使用x264_clip3f将参数范围限制在0.0-1.0, 不然即使用100也是有效的,help里也添加了说明)04. Remove stats before renaming05. Auto VBV Settings06. Force level07. Filter: hqdn3d/pad/vflip/yadif08. Logger09. Encode Time10. Cosmetic (4位小数被我改成2位)11. AviSynth 16bit hack12. Skip bit-depth filter13. Correct LimitRange 8 -> 10 bit-depth conversion (rawinput部分似乎还需要改动...)13. Add back "touhou" tune info (New)14. AQ Mode 3 & 4 (New)15. Fix AviSynth color space converting matrix (New)16. Fprofiled Extension (Update)说明:
1)
没打L-Smash的,觉得用direct264的话,音频要么用dshow2wav配合ffdshow audio及音频编码器编码,要么直接用roozhou的ffmpeg复制音轨封装,貌似也没有什么不方便之处(此外direct264是内置GPAC的,不知道如果弄L-Smash会出现什么问题。。。)目前正在考虑如何用L-Smash替换GPAC
2)MixAQ/OreAQ代码部分完全不懂,为了保证x264的稳定性故决定不打这些补丁了
3)之前看到amfilica希望打上me-prepass的补丁(其实我看到umh+prepass>esa也很想打),不过自r9xx后需要对patch做大量代码更改(目前是因为h->mc.get_ref会少参数);另外比较代码,应该很早mv_x/y_min/max_qpel就取代了me-prepass里面的mv_x/y_min/max4,所以me-prepass应该是没有用了
Build Info:(取消了lavf和ffms, ffms显然在direct264里没用;lavf的优势应该是处理图片序列吧,所以取消了,这样x264能小不少)
引用
Platform: X86
System: WINDOWS
cli: yes
libx264: internal
shared: no
static: yes
asm: yes
interlaced: yes
avs: yes
lavf: no
ffms: no
gpac: internal
gpl: yes
thread: win32
filters: resize crop select_every hqdn3d pad vflip yadif
debug: no
gprof: no
strip: yes
PIC: no
visualize: no
bit depth: 8 / 10
chroma format: all / 420
direct264 changlog:
http://direct264.svn.sourceforge.net/viewvc/direct264/?view=log ---------- 下载: ----------115网盘文件夹地址
DBank网盘文件夹地址 (只更新完整版) 注意: 如果是第一次用direct264,建议直接下载完整版:
http://115.com/file/anm02rya 最上方的Google Code上亦有编译好版本的下载以及所有源码。
版本说明(仅以最新版为例):下载后里面有4个x264*.exe
x264-8bit-all.exe --> 8bit标准版本
x264-8bit-420.exe --> 8bit标准版本,只支持YUV 4:2:0输出(不影响输入)
x264-10bit-all.exe --> 10位深版
x264-10bit-420.exe --> 10位深版,只支持YUV 4:2:0输出(不影响输入)
注1:可能是因为gcc优化的关系,编译的core2版在编码速度上反而还不如generic版,故不提供core2版
注2:只支持4:2:0输出(不影响输入),主要为了更快的编码速度,并且绝大部分情况也只需要4:2:0输出。
注3:不再编译Intel/AMD部分系列专用CPU版本的原因:此次更新涉及巨量汇编优化,gcc优化的优势进一步缩小;此外,对应CPU的编译版我没法做fprofile(这需要使用对应的CPU编译),而gcc fprofile本身就有加速编码速度的作用(同时大幅缩小x264.exe体积)
因为涉及direct264专有部分的汇编相关代码的关系,direct264目前暂不支持x64的编译。
[ 此帖被upyzl在2012-03-18 14:07重新编辑 ]