gloryhussar 写了:有两个问题想问一下:
1、用FFVideoSource会出现某一帧被重复插入到前面的若干帧中的错误(比如说第108-159帧中来回重复插入了多个第160帧的画面)。不知道是什么问题。
avs:
MP_Pipeline("""
FFVideoSource("E:\temp\00002+00008.track_4113.mkv")
Crop(240,0,-240,0)
SMDegrain().SMDegrain()
### prefetch: 16, 0
### branch: 4
### ###
""")
2、使用这个avs
MP_Pipeline("""
DirectShowSource("E:\temp\00001+00007.track_4113.mkv", fps=23.976, audio=false, convertfps=true).AssumeFPS(24000,1001)
ConvertToYV12()
Crop(240,0,-240,0)
SMDegrain().SMDegrain()
### prefetch: 16, 0
### branch: 4
### ###
""")
LSFMod(......)
......
占用了100%的cpu,8GB的内存,相比25%(单线程)+1GB内存占用,只从1.5fps提升到2.3fps。写法我还没弄得很懂,关于如何提升效率的问题,请问大神有什么好的看法?
(2.3-1.5)/1.5=53.3%,你说“只”?
另外,你真的需要2PASS的SMD默认参数么?一个SMD()不够的话,你串连多个是基本正确的,
可以试试降低强度,例如SMD(thr=2, globals=2).SMD(thr=2, globals=1)。噪点重的话应该用prefilter。
FFMS不行可以用DGA或者LWS,个人认为比DSS安全,你用SMD的话双路E5也不可能卡源滤镜。
试试这个:
MP_Pipeline("""
SetMemoryMax(1500)
DGA("").Crop(240, 0 ,-240, 0)
SMDegrain()
### prefetch: 16, 0
### lock threads to cores
### ###
SetMemoryMax(1500)
SMDegrain()
### prefetch: 16, 0
### lock threads to cores
### ###
....