『漫游』酷论坛>『影音数码技术学习交流』>x264编码时 显卡Video Eng ..

x264编码时 显卡Video Engine值异常飙高的一些疑问

zfylich@2011-06-07 20:57


从3号开始就一直头疼这玩意儿……
还请各位懂的提供一些意见……心力憔悴了
问题出现在6月3号(周五),因为某些原因,重装了一次AviSynth 2.5.8 工作环境也转移到另一块从盘上

先提供原始的avs:
引用
source=Dgsource("Ep12.dgi")

deint1=source.trim(0,46489).TempGaussMC_beta2z(EdiMode="nnedi3",qual=2).Selecteven()
deint2=source.trim(48930,99999).TempGaussMC_beta2z(EdiMode="nnedi3",qual=2).Selecteven()

s1=source.trim(0,46489).tfm(mode=5,chroma=false,cthresh=2,MI=50,slow=2,pp=2,display=false,clip2=deint1).tdecimate()
s2=source.trim(46490,48929).HybridIVTC()
s3=source.trim(48930,99999).tfm(mode=5,chroma=false,cthresh=2,MI=50,slow=2,pp=2,display=false,clip2=deint2).tdecimate()

ss=EPOTC(s1,s2,s3,
\fps=24000,Denominator=1001,tcfile="Ep12_tc.txt")

sss=ss.Spline64Resize(1280,720).GradFun2DBmodsta()
sss

#46490,48929

首先是用ffmpeg出ffv1的情况下 会异常的卡帧(个别帧卡住要走几分钟几十分钟)
在朋友的建议下 更换滤镜“TGMC2z”为“qtgmc(preset="Very Fast")” 暂时解决了这个问题
但是在走到s3这一段的时候,还是出现了密集的卡帧现象(密集的意思是 几乎每一帧都要卡几分钟几十分钟)
于是开始怀疑是否滤镜和环境出现问题——在调换了大部分相关滤镜和编码器后,发现无助于事,开始查硬件问题,终于发现显卡的Video Engine在x264工作到s3这一段(指合成输出sss中的s3)时,几乎稳定在99%(跑s1、s2 两段的时候基本不超过20%)。
单独输出“ss=s3” 即 s3这一段时,VE(Video Engine)占用率不到20%,速度正常
虽然用link的方式完成了压制……但是还是很疑惑到底是为什么,毕竟每次link还是很繁琐的……

求助朋友的结果是:可能我的显卡在工作时,被锁在某一状态无法退出(硬件小白,表述可能不太清楚)

一些基础硬件条件:
显卡是技嘉的GTX460 OC版 显存为1G;
驱动用过260.99_desktop_win7_winvista_64bit_international_whql & 270.61-desktop-win7-winvista-64bit-international-whql.exe 2个版本 ;
dgnv用过2032 2038两个版本;
(恩 dgnv和显卡驱动都是在出问题后尝试更换测试)
系统为x64 win7

一些其他实验情况的总结“
①其中用VDM 的ffv1编码时 用改良过的avs(TGMC2z->QTGMC)能正常的跑过s3这一段,自己写bat文件就过不去(好诡异)
②恩,不要吐槽EPOTC合成fps相同的几段……个人习惯链接成这样,也方便出tc文件,而且测试过ss=s1+s2+s3 结果相同(卡s3);(cunhan的滤镜x64系统貌似用不上?)
③经测试多次,有时候卡,有时候不卡,而且不一定是某固定pass卡(有时候1pass卡 有时候2pass卡……异常诡异)
④在周五之前ffv1编码的avi文件用ffm输出 一般只用跑3-4小时(仍调用TGMC2z),在后来的测试环境下,再跑速度就异常了……周末用了30小时试着等着跑完了……输出完整27分钟 只剩20分钟……
⑤现在在跑的一个Ep08 1pass 卡在s3 大概还剩200帧,VE 99%,在资源监视器中挂起ffmpeg 以后VE变为0%
相关的ffmpeg内存占用不到100M(正常是500-600M,x264也有其情况 不过我觉得不是x264问题)
⑥周一晚上在用NVIDIA inseptor修改overlocking参数的时候,意外黑屏(显卡驱动重启?)了一下,黑屏完毕后 当时卡在s3的某2个x264进度飞奔(VE占用不到10%)……

还有一些想起来再补充(拖)

附上相关的x264 参数:
1pass:
引用
"D:\Encoding\megui\tools\ffmpeg\ffmpeg.exe" -i "Ep12.avs" -f yuv4mpegpipe -an -v 0 - | "D:\Encoding\x264_rev1937+505_with_L-SMASH_x64\x264.exe" --level 4.1 --profile high --preset slower --pass 1 --slow-firstpass --ssim --crf 17.0 --deblock 1:-1:-1 --bframes 10 --ref 9 --qpmax 24 --qcomp 0.7 --chroma-qp-offset -2 --aq-strength 0.8 --merange 24 --me umh --subme 9 --psy-rd 0.4:0.0 --no-dct-decimate --no-fast-pskip --keyint 240 --min-keyint 24 --threads 12 --vbv-bufsize 30000 --vbv-maxrate 40000 --demuxer y4m --stats "Ep12_1pass.stats" --output "Ep12_1pass.mkv" - 2>"Ep12_1pass.log"
pause
exit

2pass:
引用
"D:\Encoding\megui\tools\ffmpeg\ffmpeg.exe" -i "Ep12.avs" -f yuv4mpegpipe -an -v 0 - | "D:\Encoding\x264_rev1937+505_with_L-SMASH_x64\x264.exe"  --level 4.1 --profile high --preset slower --pass 2 --fps 24000/1001 --ssim --bitrate 1700 --deblock 1:-1:-1 --bframes 10 --ref 9 --qpmax 24 --qcomp 0.7 --chroma-qp-offset -2 --aq-strength 0.8 --merange 48 --me tesa --subme 10 --psy-rd 0.4:0.0 --no-dct-decimate --no-fast-pskip --keyint 240 --min-keyint 24 --threads 6 --vbv-bufsize 30000 --vbv-maxrate 40000 --demuxer y4m
--stats "Ep12_1pass.stats" --output "Ep12_2pass.mkv" - 2>"Ep12_2pass.log" --zones 46490,48929,b=0.9
pause
exit

PS:
实在不知道这个应该放在哪……貌似相关度最高的应该是硬件?
感觉跟avs又有关系……于是先放这里了,如果我判断错误 还请管理人员麻烦转移一下,十分感谢XD

相关在NMM也有讨论帖……(未达到20帖 不能发布带链接的帖子,十分抱歉)

引用

roozhou@2011-06-10 00:34

把你script里的滤镜一个一个去掉(或者先只保留source,再一个个加上),这样就知道是哪里出问题了。
引用

zfylich@2011-06-10 09:13

引用
引用第1楼roozhou于2011-06-10 00:34发表的  :
把你script里的滤镜一个一个去掉(或者先只保留source,再一个个加上),这样就知道是哪里出问题了。


谢谢roozhou的回复

这个办法我试了一下……但是很惊异的发现……
问题基本集中在tfm+deint(其实就这么几个滤镜 囧rz)……实在不清楚是有什么问题,难道是判定精度问题?看log 走pp的帧也很正常啊……
而且直接deint速度都没这么慢啊
……我又不知道其他能做ivtc的滤镜

而且经过多次测试……发现每次rp的帧可能都不一样……
甚至同一个avs 写bat和VDM跑ffv1  bat文件过不去……VDM异常流畅的跑完

最近异常的有几次显卡驱动重启……都使avs速度有了质的提升……于是更加怀疑是显卡的问题
但是用几个软件跑了下 反馈结果好像又没问题(我不太懂 都是朋友分析的)

哎……

引用

roozhou@2011-06-10 20:55

更新下驱动吧。按理说这个不关显卡什么事,温度不会上去的。
引用

| TOP