Selur's Little Message Board

Full Version: Output to mp4/x264 very slow
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Is there something I can do to speed the encoder up? It seems to get to 100%, then starts again. So far it has taken over 24 hours, now it says there's another 62 hours remaining.

If I set the x264 preset to "fast" or "faster" would that help, without reducing the quality too much? It is currently set to "none", which I guess is "medium" by default?
Since you did not care to share what settings you are using, it's hard to tell what changes will speed up things.
Especially without knowing the bitrate/crf and the content type you use. With a really high bit rate (compored to the content) faster settings don't hurt, with low bit rates they do. Wink
The defaults Hybrid uses are not the same as the 'medium' defaults of x264.

Cu Selur
Apologies, script:

Code:
Script: # Imports import os import sys import vapoursynth as vs # getting Vapoursynth core core = vs.core # Import scripts folder scriptPath = '/Applications/Hybrid.app/Contents/MacOS/vsscripts' sys.path.insert(0, os.path.abspath(scriptPath)) # Import scripts import edi_rpow2 import G41Fun import mvsfunc import lostfunc import adjust import havsfunc # source: '/Volumes/Drobo/MyJobs/84. IBIZA CONNECTION/SUPPLIED/Ibiza Connection Master AVI PAL-ffmpeg.mov' # current color space: YUV422P12, bit depth: 12, resolution: 720x576, fps: 25, color matrix: 470bg, yuv luminance scale: limited, scanorder: bottom field first # Loading /Volumes/Drobo/MyJobs/84. IBIZA CONNECTION/SUPPLIED/Ibiza Connection Master AVI PAL-ffmpeg.mov using LWLibavSource clip = core.lsmas.LWLibavSource(source="/Volumes/Drobo/MyJobs/84. IBIZA CONNECTION/SUPPLIED/Ibiza Connection Master AVI PAL-ffmpeg.mov", format="YUV422P12", cache=0, fpsnum=25, prefer_hw=0) # Setting color matrix to 470bg. clip = core.std.SetFrameProps(clip, _Matrix=5) clip = clip if not core.text.FrameProps(clip,'_Transfer') else core.std.SetFrameProps(clip, _Transfer=5) clip = clip if not core.text.FrameProps(clip,'_Primaries') else core.std.SetFrameProps(clip, _Primaries=5) # Setting color range to TV (limited) range. clip = core.std.SetFrameProp(clip=clip, prop="_ColorRange", intval=1) # making sure frame rate is set to 25 clip = core.std.AssumeFPS(clip=clip, fpsnum=25, fpsden=1) # setting field order to what QTGMC should assume (bottom field first) clip = core.std.SetFrameProp(clip=clip, prop="_FieldBased", intval=1) # Deinterlacing using QTGMC clip = havsfunc.QTGMC(Input=clip, Preset="Fast", TFF=False) # new fps: 50 # make sure content is preceived as frame based clip = core.std.SetFieldBased(clip, 0) # adjusting frame count and rate with sRestore clip = havsfunc.srestore(source=clip, frate=23.9760, omode=6, speed=9, thresh=16, mode=2) # Color Adjustment clip = adjust.Tweak(clip=clip, hue=5.00, sat=0.90, cont=0.95, bright=48, coring=True) # adjusting color space from YUV422P12 to YUV444P16 for vsDeSpot clip = core.resize.Bicubic(clip=clip, format=vs.YUV444P16, range_s="limited") clip = lostfunc.DeSpot(o=clip) clip = lostfunc.DeSpot(o=clip) clip = lostfunc.DeSpot(o=clip) # cropping the video to 680x544 clip = core.std.CropRel(clip=clip, left=20, right=20, top=18, bottom=14) # adjusting color space from YUV444P16 to YUV444P8 for vsMLDegrain clip = core.resize.Bicubic(clip=clip, format=vs.YUV444P8, range_s="limited") # removing grain using MLDegrain clip = G41Fun.MLDegrain(clip=clip, tr=1, rec=True, soft=[0,0,0]) # denoising using HQDN3D clip = core.hqdn3d.Hqdn3d(clip=clip, lum_spac=0.00, chrom_spac=7.00, chrom_tmp=10.50) # contrast sharpening using CAS clip = core.cas.CAS(clip=clip, sharpness=0.700) # deringing using HQDeringmod clip = havsfunc.HQDeringmod(clip, nrmode=2, darkthr=3.0) # resizing using ZNEDI3 clip = edi_rpow2.nnedi3_rpow2(clip=clip, rfactor=4) # 2720x2176 # adjusting resizing clip = core.fmtc.resample(clip=clip, w=1440, h=1080, kernel="lanczos", interlaced=False, interlacedd=False) # letterboxing 1440x1080 to 1920x1080 clip = core.std.AddBorders(clip=clip, left=240, right=240, top=0, bottom=0) # adjusting output color from: YUV444P16 to YUV420P8 for x264Model clip = core.resize.Bicubic(clip=clip, format=vs.YUV420P8, range_s="limited") # set output frame rate to 23.976fps clip = core.std.AssumeFPS(clip=clip, fpsnum=24000, fpsden=1001) # Output clip.set_output()

I just noticed this: interlaced=False, interlacedd=False)

Could this be causing any issues?
Quote:interlaced=False, interlacedd=False
first specifies input, the other output interlaced handling

Quote:Is there something I can do to speed the encoder up? It seems to get to 100%, then starts again. So far it has taken over 24 hours, now it says there's another 62 hours remaining.
You didn't share your encoding settings, but you want advice on your encoding settings.
If you used for example 2-pass encoding, this could be normal seeing your script.
Since your aim for YUV420P8 output, enabling 'Filtering->Vapoursynth->Misc->Source->Convert to target color space after source filter' might speed up the Vapoursynth script.

Cu Selur