我用win7 用的还比较上手 你要么用grf的办法 指定解码器 实际上为了方便我还都是这么操作的
http://forum.doom9.org/showthread.php?t=146910 这个工具可以吧系统自带的ms的解码器禁用
建议不要使用那个gui 用命令行比较方便
direct264有好多注意的地方,比如目录名和文件名不要太长。还可以用coreavc输出raw到ffdshow。
经测试。如果分辨率比较小的情况,比如把1080p压到480p,1stpass的时候coreavc不开cuda,fps能在60左右。开了cuda反而不超过30fps,估计哪个环节有瓶颈。
2ndpass建议开启cuda,subme用7的话,速度也是比较可观的,但好像就没超过30fps过,subme用10的话,速度还是比较慢的。
比较麻烦的一个事情是不能列队,因为我没用注册表去改ffdshow的一些设置,只能压一个片改一下设置。
安装一些解码器的时候也有点小讲究,尽量在你用来压片的windows用户名下安装。我用终极解码的,有时候改ffdshow设置比较麻烦。我搞了个批处理,你把下面的内容保存为bat文件,放在桌面,运行即可:
video.bat内容如下:
@echo off
cd C:\Program Files (x86)\Final Codecs\Codecs
C:\Windows\SysWOW64\rundll32.exe ffdshow.ax,configure
audio.bat内容如下:
@echo off
cd C:\Program Files (x86)\Final Codecs\Codecs
C:\Windows\SysWOW64\rundll32.exe ffdshow.ax,configureAudio
顺便送一个比较简单的批处理,至于exe文件的目录自己改,下面我1stpass不开coreavc的cuda,2ndpass打开cuda,1stpass得到2ndpass的Bitrate,当然你也可以指定。
@echo off
set ref=5
set filmname=thl.grf
set outputvideoname=The.Hurt.Locker.2008.Blu-ray.720p.x264.AAC.VFR-xxx
::color 3
mode con cols=145 lines=37
title USing direct264 commandline !!
echo.
set /p cq=Please Type in 1stpass 'Const.Quantizer' value :
rem 这里coreavc.ini从哪里来的,你可以先终极解码中设置不开硬解,然后把那文件拷贝出来,然后再设置开硬解再拷贝出来得到两个文件。
del C:\Users\jennie\AppData\Roaming\coreavc.ini
copy %~dp0encoder\cudano\coreavc.ini C:\Users\jennie\AppData\Roaming\
echo.
rem encoder是个文件夹名,我自己为了方便设置的,你大可不必。
%~dp0encoder\direct264\x264.exe --version
echo.
echo USING AUTOMATED -----= 1st CRF+2nd BITRATE =----- MODE !!
echo.
echo [ %date%%time% ]ENCODING CRF 1stPASS ......
@echo on
%~dp0encoder\direct264\x264.exe --versioninfo --preset slow --pass 1 --crf %cq% --profile high --level 4.1 --stats "%filmname%.stats" --thread-input --deblock -3:-3 --min-keyint 2 --scenecut 60 --bframes 3 --b-adapt 2 --b-pyramid strict --ref 1 --vbv-bufsize 50000 --vbv-maxrate 50000 --rc-lookahead 72 --aq-mode 2 --aq-strength 1.0 --merange 16 --me dia --subme 2 --partitions none --no-8x8dct --trellis 0 --direct spatial --no-dct-decimate --no-fast-pskip --qcomp 0.7 --ipratio 1.2 --weightp 2 --psnr --ssim --output NUL "%filmname%" 2>--------------------------------1stpass.txt
@echo off
for /f "tokens=7 delims=. " %%a in ('findstr encoded "1stpass.txt"') DO set bit=%%a
echo.
echo [ %date%%time% ]ENCODING BITRATE 2ndPASS ......
del C:\Users\jennie\AppData\Roaming\coreavc.ini
copy %~dp0encoder\cudayes\coreavc.ini C:\Users\jennie\AppData\Roaming\
@echo on
%~dp0encoder\direct264\x264.exe --versioninfo --preset slow --pass 2 --bitrate %bit% --profile high --level 4.1 --stats "%filmname%.stats" --thread-input --deblock -3:-3 --min-keyint 2 --scenecut 0 --bframes 3 --b-adapt 2 --b-pyramid strict --ref %ref% --vbv-bufsize 50000 --vbv-maxrate 50000 --rc-lookahead 72 --aq-mode 2 --aq-strength 1.0 --merange 32 --me umh --subme 10 --partitions p8x8,b8x8,i4x4,i8x8 --trellis 2 --direct spatial --psy-rd 1.00:0.10 --no-dct-decimate --no-fast-pskip --qcomp 0.7 --ipratio 1.2 --weightp 2 --psnr --ssim --output "%filmname%.mkv" "%filmname%" 2>--------------------------------2ndpass.txt
@echo off
goto :CONVERTAUDIO
:CONVERTAUDIO
echo.
echo [ %date%%time% ] Convert %filmname% To AAC 2ch 192 kbps
echo.
@echo on
%~dp0encoder\direct264\CTAACEncoder.exe -d -aid 0 -m 2 -c 2 -b 192000 -o "%filmname%.mp4" "%filmname%"
@echo off
goto :MUXER
:MUXER
echo.
echo [ %date%%time% ] Muxing MKV File ......
@echo on
%~dp0encoder\direct264\ffmpeg -i "%filmname%.mkv" -vcodec copy -sn -i "%filmname%.mp4" -acodec copy -y "%outputvideoname%.mkv" 2>--------------------------------ffmpeg.txt
@echo off
goto :END
:END
@echo off
::del "%filmname%.mkv"
::del "%filmname%.mp4"
echo.
echo Done !! Press ANY KEY to EXIT !
pause>nul
exit
抛砖引玉,参数随便糊弄的,只有更好,没有最好。你大可直接使用preset。