51 lines
2.2 KiB
Python
51 lines
2.2 KiB
Python
import os
|
|
import subprocess
|
|
|
|
def createInterpolateScript(upscaleOut, tempName, inputAspect):
|
|
if os.path.isfile(upscaleOut + '.vpy'):
|
|
print('Interpolate script exists')
|
|
return
|
|
|
|
script = []
|
|
|
|
if inputAspect == '4:3':
|
|
script = ['from vsrife import rife',
|
|
'import vapoursynth as vs',
|
|
'from vapoursynth import core',
|
|
'clip = core.ffms2.Source(source="./' + tempName + ' [4k][HEVC].mkv")',
|
|
'clip = vs.core.resize.Bicubic(clip, width=1440, height=1080, format=vs.RGBS, matrix_in_s="709")',
|
|
'clip = rife(clip=clip, model="4.25", factor_num=2, factor_den=1)',
|
|
'clip = vs.core.resize.Bicubic(clip, format=vs.YUV420P8, matrix_s="709")',
|
|
'clip.set_output()']
|
|
else:
|
|
script = ['from vsrife import rife',
|
|
'import vapoursynth as vs',
|
|
'from vapoursynth import core',
|
|
'clip = core.ffms2.Source(source="./' + tempName + ' [4k][HEVC].mkv")',
|
|
'clip = vs.core.resize.Bicubic(clip, width=1920, height=1080, format=vs.RGBS, matrix_in_s="709")',
|
|
'clip = rife(clip=clip, model="4.25", factor_num=2, factor_den=1)',
|
|
'clip = vs.core.resize.Bicubic(clip, format=vs.YUV420P8, matrix_s="709")',
|
|
'clip.set_output()']
|
|
|
|
if not os.path.isfile(upscaleOut + '.vpy'):
|
|
with open(upscaleOut + '.vpy', 'a') as fs:
|
|
fs.writelines([i + '\n' for i in script])
|
|
|
|
def Interpolate(interpolateOut, upscaleOut, tempName, inputAspect):
|
|
if os.path.isfile(interpolateOut):
|
|
print('Already interpolated')
|
|
return
|
|
|
|
createInterpolateScript(upscaleOut, tempName, inputAspect)
|
|
|
|
if not os.path.isfile(upscaleOut + '.vpy'):
|
|
print('=== Interpolation script not found ===')
|
|
return
|
|
|
|
print('Interpolating')
|
|
subprocess.call('vspipe -c y4m "' + upscaleOut + '.vpy" - | ffmpeg -v quiet -stats -i - -c:v hevc_nvenc -qp 5 "' + interpolateOut + '"', shell=True)
|
|
|
|
# Remove Temp Files
|
|
os.remove(upscaleOut + '.ffindex')
|
|
os.remove(upscaleOut + '.vpy')
|