VideoHelp Forum




+ Reply to Thread
Page 75 of 79
FirstFirst ... 25 65 73 74 75 76 77 ... LastLast
Results 2,221 to 2,250 of 2356
  1. When I reencode the content the output passing through the HDR and VUI data as in call above, the reencode is properly displayed as HDR using MPC-HC ('passhtrough HDR to display' in madVR). This is probably the cause, why I didn't notice the difference.
    Still transfer should be signaled too, which causing the difference in MediaInfos output.

    It is btw. also on other sources from (for example) a natural documentary in 4k hdr. Same behaviour
    This will happen with everything you encode with NVEnc to HDR.
    users currently on my ignore list: deadrats, Stears555, marcorocchini
    Quote Quote  
  2. Ok, when you say it happens always with Nvenc, i testet it also with x265 and it does happen too there.

    When i use this setting:
    Code:
    x265 --input - --fps 24000/1001 --output-depth 10 --y4m --profile main10 --limit-modes --no-early-skip --no-open-gop --opt-ref-list-length-pps --lookahead-slices 0 --crf 18.00 --opt-qp-pps --cbqpoffs -2 --crqpoffs -2 --qpfile GENERATED_QP_FILE --limit-refs 0 --ssim-rd --psy-rd 2.50 --rdoq-level 2 --psy-rdoq 10.00 --aq-mode 0 --deblock=-1:-1 --limit-sao --range limited --colormatrix bt2020nc --master-display "G(13250,34500)B(7500,3000)R(34000,16000)WP(15635,16450)L(10000000,1)" --hdr10 --sar 1:1 --output "C:\Users\Gaming-Tower\AppData\Local\Temp\König-Der-Löwen_25sec_new_new.265"
    and also, when i use this setting:
    Code:
    x265 --input - --fps 24000/1001 --output-depth 10 --y4m --profile main10 --limit-modes --no-early-skip --no-open-gop --opt-ref-list-length-pps --lookahead-slices 0 --crf 18.00 --opt-qp-pps --cbqpoffs -2 --crqpoffs -2 --qpfile GENERATED_QP_FILE --limit-refs 0 --ssim-rd --psy-rd 2.50 --rdoq-level 2 --psy-rdoq 10.00 --aq-mode 0 --deblock=-1:-1 --limit-sao --range limited --transfer smpte2084 --colormatrix bt2020nc --master-display "G(13250,34500)B(7500,3000)R(34000,16000)WP(15635,16450)L(10000000,1)" --hdr10 --sar 1:1 --output "C:\Users\Gaming-Tower\AppData\Local\Temp\König-Der-Löwen_25sec_new_new.265"
    So the "hdr10 compatible" dissappear on medinfo and it is not displayed correct anymore on my end.
    Quote Quote  
  3. DOH,
    Code:
    ffmpeg -y -loglevel fatal -noautorotate -nostdin -threads 8 -i "C:\Users\Selur\Desktop\Konig-Der-Lowen_10sec_edit.mkv" -map 0:0 -an -sn -color_primaries bt2020 -color_trc smpte2084 -colorspace bt2020c -color_range tv  -pix_fmt yuv420p10le -strict -1 -vsync 0 -f yuv4mpegpipe - | NVEnc --y4m -i - --fps 23.976 --codec h265 --profile main --level auto --tier high --sar 1:1 --lookahead 16 --output-depth 10 --vbr 0 --vbr-quality 23.00 --aq --aq-strength 5 --aq-temporal --gop-len 0 --ref 7 --multiref-l0 3 --multiref-l1 3 --bframes 3 --bref-mode auto --mv-precision Q-pel --preset quality --colorrange limited --colorprim bt2020 --transfer smpte2084 --colormatrix bt2020nc --max-cll ,1000 --master-display G(13250,34500)B(7500,3000)R(34000,16000)WP(15635,16450)L(10000000,1) --cuda-schedule sync --output "J:\tmp\nvenc_1_2024-02-29@18_11_53_2110_01.265"
    returns:
    Code:
    Video
    ID                                       : 1
    Format                                   : HEVC
    Format/Info                              : High Efficiency Video Coding
    Format profile                           : Main 10@L6@High
    HDR format                               : SMPTE ST 2086, HDR10 compatible
    Codec ID                                 : hvc1
    Codec ID/Info                            : High Efficiency Video Coding
    Duration                                 : 20 s 187 ms
    Bit rate                                 : 14.3 Mb/s
    Maximum bit rate                         : 22.3 Mb/s
    Width                                    : 3 840 pixels
    Height                                   : 2 160 pixels
    Display aspect ratio                     : 16:9
    Frame rate mode                          : Constant
    Frame rate                               : 23.976 (24000/1001) FPS
    Color space                              : YUV
    Chroma subsampling                       : 4:2:0
    Bit depth                                : 10 bits
    Bits/(Pixel*Frame)                       : 0.072
    Stream size                              : 34.4 MiB (100%)
    Encoded date                             : 2024-02-29 17:12:35 UTC
    Tagged date                              : 2024-02-29 17:12:36 UTC
    Color range                              : Limited
    Color primaries                          : BT.2020
    Transfer characteristics                 : PQ
    Matrix coefficients                      : BT.2020 non-constant
    Mastering display color primaries        : Display P3
    Mastering display luminance              : min: 0.0001 cd/m2, max: 1000 cd/m2
    mdhd_Duration                            : 20270
    Codec configuration box                  : hvcC
    Code:
    --colorprim bt2020 --transfer smpte2084 --colormatrix bt2020nc
    have all have to be set
    users currently on my ignore list: deadrats, Stears555, marcorocchini
    Quote Quote  
  4. Ahh thanks, now it works. But it works with NVEnc too now:
    Code:
    NVEnc --y4m -i - --fps 23.976 --codec h265 --profile main10 --level auto --tier high --sar 1:1 --lookahead 16 --output-depth 10 --multipass "2pass-full" --vbr 5000 --max-bitrate 800000 --gop-len 0 --ref 3 --bframes 3 --bref-mode auto --no-b-adapt --mv-precision Q-pel --preset default --colorrange limited --colorprim bt2020 --transfer smpte2084 --colormatrix bt2020nc --master-display G(13250,34500)B(7500,3000)R(34000,16000)WP(15635,16450)L(10000000,1) --cuda-schedule sync --keyfile GENERATED_KEY_FILE --output "C:\Users\Gaming-Tower\AppData\Local\Temp\König-Der-Löwen_10sec_edit_new.265"
    Quote Quote  
  5. yes, I know.
    users currently on my ignore list: deadrats, Stears555, marcorocchini
    Quote Quote  
  6. I know it's quite early, but do you plan to implement h.266 (VVC) decoding encoding ?

    If yes, maybe this helps you: https://github.com/MartinEesmaa/VVCEasy/blob/master/FFMPEGVVC.md

    If not, maybe it's just interesting for personal use or so
    Last edited by Platos; 2nd Mar 2024 at 13:16.
    Quote Quote  
  7. Last I checked, libav and ffmpeg both didn't support H.266 and there was no support to mux using mkvmerge or main-tree ffmpeg.
    -> once it can be decoded in Avisynth/Vapoursynth and muxed into a container I will look at it.
    users currently on my ignore list: deadrats, Stears555, marcorocchini
    Quote Quote  
  8. Ah ok, yes i forget about muxing.

    Other question: On RIFE Scene Detection you write "In order to avoid artifacts at scene change, invoke `misc.SCDetect` on YUV or Gray format of the input beforehand so as to set frame properties."

    Does that means, i have to use "misc-SCDetect" otherwise scene detection won't work properly? Where can i find this setting?
    Quote Quote  
  9. Hybrid will add SCDetect if 'Scene change' is enabled, but depending on your source, you might want to look at some scene changes and adjust the threshold configured there. (you can check in the Vapoursynth Script view)
    The default 0.15 is a good starting point, but might be too low for some HD and too high for some SD content.

    Cu Selur
    users currently on my ignore list: deadrats, Stears555, marcorocchini
    Quote Quote  
  10. Ahh, i did not know that higher resolution needs lower values.

    Yeah i use now 0.1 for a 4k video because 0.15 was to high. Normally 0.15 did work most of time, but most of time i have 1080p content for interpolation.
    Quote Quote  
  11. Always depends on the content.
    users currently on my ignore list: deadrats, Stears555, marcorocchini
    Quote Quote  
  12. I have a large collection of uncompressed YUV 422 720x486 video. I would like to keep it uncompressed for interchange between various editing software I use.

    Is there any way to get Hybrid to write uncompressed video files?
    Quote Quote  
  13. Is it really necessary for the Hybrid installer to be over 1GB in size?
    Quote Quote  
  14. Is there any way to get Hybrid to write uncompressed video files?
    No. Hybrid does not support raw yuv (or y4m or rgb) as output.

    Is it really necessary for the Hybrid installer to be over 1GB in size?
    With the stuff it includes: Yes
    Just the RIFE dependencies are 1GB (extracted) in size.
    Unless I would not include either Avisynth or Vapoursynth support, the file size is at it is.
    The only way I can think of would be to additionally use executable compressors like UPX.
    I did that a bunch of years ago, but then had tons of folks complaining that they frequently get false-positives from their anti-virus scanners. Additionally tons of testing has to be done since those compressors do not work well with all dll and exe files.

    Cu Selur
    users currently on my ignore list: deadrats, Stears555, marcorocchini
    Quote Quote  
  15. Thanks for the confirmation on uncompressed files. I was afraid that was the case.
    I know Hybrid writes several different lossless formats, and I am experimenting with them. I would need the other programs that I am using to both read, and export lossless to make two way file transfers possible without an additional re-code step. I will follow up when I have more results in.
    Quote Quote  
  16. Does someone here know how to do that on hybrid (all in one encode-step)?: https://forum.videohelp.com/threads/414347-Fixing-(not-upscaling)-old-VHS-Camera-shot#post2733632

    I mean what Sharc did on Post #16.

    And a second question about hybrid:

    When i want to encode the video in .mp4 with audio pmc it tells me pmc is not allowed in .mp4 output. Ok, then i choose audio--> custom and then on the audio-tab i choose "aac" on audio format (so not pmc) and quality-factor 100. But when i want to start the encode it still says pcm not allowed as ouput. But i am not using pcm??

    i did upload a debug file, but im not sure if that helps on audio problems.
    Image Attached Files
    Last edited by Platos; 30th Apr 2024 at 10:49.
    Quote Quote  
    • Start Hybrid
    • Enable "Crop/Resize->Base->Resize"
    • If source isn't detected as TFF, enable "Filtering->(De-)Interlace/Telecine->Deinterlace/Telecine Settings->Overwerite input scan type to" and set it to "top field first"
    • enable "Filtering->(De-)Interlace/Telecine->QTGMC Vapoursynth->Bob"
    • enable "Filtering->Vapoursynth->Misc->Script->Lower res. before resize" and "Only->width"
    • enable "Filtering->Vapoursynth->Frame->Resize->Resizer", set it to "fmtconv" and select "spline36"
    Vapoursynth script view then should show something like:
    Code:
    # Imports
    import vapoursynth as vs
    # getting Vapoursynth core
    import ctypes
    import sys
    import os
    core = vs.core
    # Import scripts folder
    scriptPath = 'F:/Hybrid/64bit/vsscripts'
    sys.path.insert(0, os.path.abspath(scriptPath))
    # Loading Support Files
    Dllref = ctypes.windll.LoadLibrary("F:/Hybrid/64bit/vsfilters/Support/libfftw3f-3.dll")
    # loading plugins
    core.std.LoadPlugin(path="F:/Hybrid/64bit/vsfilters/GrainFilter/RemoveGrain/RemoveGrainVS.dll")
    core.std.LoadPlugin(path="F:/Hybrid/64bit/vsfilters/GrainFilter/AddGrain/AddGrain.dll")
    core.std.LoadPlugin(path="F:/Hybrid/64bit/vsfilters/DenoiseFilter/DFTTest/DFTTest.dll")
    core.std.LoadPlugin(path="F:/Hybrid/64bit/vsfilters/DenoiseFilter/NEO_FFT3DFilter/neo-fft3d.dll")
    core.std.LoadPlugin(path="F:/Hybrid/64bit/vsfilters/Support/EEDI3m_opencl.dll")
    core.std.LoadPlugin(path="F:/Hybrid/64bit/vsfilters/ResizeFilter/nnedi3/NNEDI3CL.dll")
    core.std.LoadPlugin(path="F:/Hybrid/64bit/vsfilters/Support/libmvtools.dll")
    core.std.LoadPlugin(path="F:/Hybrid/64bit/vsfilters/Support/scenechange.dll")
    core.std.LoadPlugin(path="F:/Hybrid/64bit/vsfilters/Support/fmtconv.dll")
    core.std.LoadPlugin(path="F:/Hybrid/64bit/vsfilters/MiscFilter/MiscFilters/MiscFilters.dll")
    core.std.LoadPlugin(path="F:/Hybrid/64bit/vsfilters/DeinterlaceFilter/Bwdif/Bwdif.dll")
    core.std.LoadPlugin(path="F:/Hybrid/64bit/vsfilters/SourceFilter/LSmashSource/LSMASHSource.dll")
    # Import scripts
    import havsfunc
    import validate
    # Source: 'C:\Users\Selur\Desktop\elgato_cut_VideoOnly.avi'
    # Current color space: RGB24, bit depth: 8, resolution: 720x576, frame rate: 25fps, scanorder: top field first, yuv luminance scale: full, matrix: 470bg
    # Loading C:\Users\Selur\Desktop\elgato_cut_VideoOnly.avi using LWLibavSource
    clip = core.lsmas.LWLibavSource(source="C:/Users/Selur/Desktop/elgato_cut_VideoOnly.avi", format="RGB24", stream_index=0, cache=0, prefer_hw=0)
    frame = clip.get_frame(0)
    # setting color transfer (170), if it is not set.
    if validate.transferIsInvalid(clip):
      clip = core.std.SetFrameProps(clip, _Transfer=6)
    # setting color primaries info (to 470), if it is not set.
    if validate.primariesIsInvalid(clip):
      clip = core.std.SetFrameProps(clip, _Primaries=5)
    # making sure frame rate is set to 25fps
    clip = core.std.AssumeFPS(clip=clip, fpsnum=25, fpsden=1)
    # making sure the detected scan type is set (detected: top field first)
    clip = core.std.SetFrameProps(clip=clip, _FieldBased=2) # tff
    # adjusting color space from RGB24 to YUV444P16 for vsQTGMC
    clip = core.resize.Spline36(clip=clip, format=vs.YUV444P16, matrix_s="470bg", range_s="full")
    # Deinterlacing using QTGMC
    clip = havsfunc.QTGMC(Input=clip, Preset="Fast", TFF=True, opencl=True) # new fps: 50
    # Making sure content is preceived as frame based
    clip = core.std.SetFrameProps(clip=clip, _FieldBased=0) # progressive
    # adjusting resolution before resizing 
    clip = core.fmtc.resample(clip=clip, w=360, h=576, kernel="spline36", interlaced=False, interlacedd=False)# before YUV444P16 after YUV444P16
    # Resizing using fmtconv - spline64
    clip = core.fmtc.resample(clip=clip, kernel="spline64", w=720, h=576, interlaced=False, interlacedd=False) # resolution 720x576 before YUV444P16 after YUV444P16
    # adjusting output color from: YUV444P16 to YUV420P10 for NVEncModel
    clip = core.resize.Spline36(clip=clip, format=vs.YUV420P10, range_s="full", dither_type="error_diffusion")
    # set output frame rate to 50fps (progressive)
    clip = core.std.AssumeFPS(clip=clip, fpsnum=50, fpsden=1)
    # output
    clip.set_output()
    Cu Selur
    users currently on my ignore list: deadrats, Stears555, marcorocchini
    Quote Quote  
  17. Thank you very much !

    Do you also know how i can fix the problem with pmc audio (i did edit my last post) ?
    Quote Quote  
  18. But when i want to start the encode it still says pcm not allowed as ouput. But i am not using pcm??
    You didn't understand how Hybrid works. You need to adjust the Audio Queue.
    users currently on my ignore list: deadrats, Stears555, marcorocchini
    Quote Quote  
  19. Ah oh, sorry. Did never edit audios, that's why. Thanks again. Audio worked now.

    If i can ask sth to the deinterlace above: Why using bob ? It does double framerate? Is using bob and then half framerate better than without bob ?
    Quote Quote  
  20. Why using bob ?
    That is what Sharc used.
    It does double framerate?
    Yes, for each (half-height) field one (full-height) frame is interpolated.

    Is using bob and then half framerate better than without bob ?
    You keep more of the original information of the video. Whether that is better depends on what you want to archive and your source.


    Cu Selur
    users currently on my ignore list: deadrats, Stears555, marcorocchini
    Quote Quote  
  21. Somehow the "trick" does not work anymore. I feel like someone is kidding me (i know this is only one resize, it is a test to compare it with the one file where it did work, because you can see it already after the first resize. it does also not work with the 2 time chain.):

    "# Imports
    import vapoursynth as vs
    # getting Vapoursynth core
    import ctypes
    import sys
    import os
    core = vs.core
    # Import scripts folder
    scriptPath = 'C:/Program Files/Hybrid/64bit/vsscripts'
    sys.path.insert(0, os.path.abspath(scriptPath))
    # Loading Support Files
    Dllref = ctypes.windll.LoadLibrary("C:/Program Files/Hybrid/64bit/vsfilters/Support/libfftw3f-3.dll")
    # Loading Plugins
    core.std.LoadPlugin(path="C:/Program Files/Hybrid/64bit/vsfilters/GrainFilter/RemoveGrain/RemoveGrainVS.dll")
    core.std.LoadPlugin(path="C:/Program Files/Hybrid/64bit/vsfilters/GrainFilter/AddGrain/AddGrain.dll")
    core.std.LoadPlugin(path="C:/Program Files/Hybrid/64bit/vsfilters/DenoiseFilter/DFTTest/DFTTest.dll")
    core.std.LoadPlugin(path="C:/Program Files/Hybrid/64bit/vsfilters/DenoiseFilter/NEO_FFT3DFilter/neo-fft3d.dll")
    core.std.LoadPlugin(path="C:/Program Files/Hybrid/64bit/vsfilters/Support/EEDI3m.dll")
    core.std.LoadPlugin(path="C:/Program Files/Hybrid/64bit/vsfilters/ResizeFilter/nnedi3/vsznedi3.dll")
    core.std.LoadPlugin(path="C:/Program Files/Hybrid/64bit/vsfilters/Support/libmvtools.dll")
    core.std.LoadPlugin(path="C:/Program Files/Hybrid/64bit/vsfilters/Support/scenechange.dll")
    core.std.LoadPlugin(path="C:/Program Files/Hybrid/64bit/vsfilters/Support/fmtconv.dll")
    core.std.LoadPlugin(path="C:/Program Files/Hybrid/64bit/vsfilters/MiscFilter/MiscFilters/MiscFilters.dll")
    core.std.LoadPlugin(path="C:/Program Files/Hybrid/64bit/vsfilters/DeinterlaceFilter/Bwdif/Bwdif.dll")
    core.std.LoadPlugin(path="C:/Program Files/Hybrid/64bit/vsfilters/SourceFilter/LSmashSource/vslsmashsource.dll")
    # Import scripts
    import havsfunc
    # source: 'C:\Users\Gaming-Tower\Videos\vhs-capture-test\deinterlace-tests\elgato2.avi'
    # current color space: RGB24, bit depth: 8, resolution: 720x576, fps: 25, scanorder: top field first, yuv luminance scale: full, matrix: 470bg
    # Loading C:\Users\Gaming-Tower\Videos\vhs-capture-test\deinterlace-tests\elgato2.avi using LWLibavSource
    clip = core.lsmas.LWLibavSource(source="C:/Users/Gaming-Tower/Videos/vhs-capture-test/deinterlace-tests/elgato2.avi", format="RGB24", stream_index=0, cache=0, prefer_hw=0)
    frame = clip.get_frame(0)
    # Setting color transfer (170), if it is not set.
    if '_Transfer' not in frame.props or not frame.props['_Transfer']:
    clip = core.std.SetFrameProps(clip, _Transfer=6)
    # Setting color primaries info (to 470), if it is not set.
    if '_Primaries' not in frame.props or not frame.props['_Primaries']:
    clip = core.std.SetFrameProps(clip, _Primaries=5)
    # making sure frame rate is set to 25
    clip = core.std.AssumeFPS(clip=clip, fpsnum=25, fpsden=1)
    clip = core.std.SetFrameProp(clip=clip, prop="_FieldBased", intval=2) # tff
    # adjusting color space from RGB24 to YUV444P16 for vsQTGMC
    clip = core.resize.Bicubic(clip=clip, format=vs.YUV444P16, matrix_s="470bg", range_s="full")
    # Deinterlacing using QTGMC
    clip = havsfunc.QTGMC(Input=clip, Preset="Very Slow", TFF=False) # new fps: 25
    # Making sure content is preceived as frame based
    clip = core.std.SetFrameProp(clip=clip, prop="_FieldBased", intval=0) # progressive
    clip = clip[::2] # selecting previously even frames
    # Resizing using 10 - bicubic spline
    clip = core.fmtc.resample(clip=clip, kernel="spline16", w=360, h=576, interlaced=False, interlacedd=False) # resolution 360x576 before YUV444P16 after YUV444P16
    # adjusting output color from: YUV444P16 to YUV420P8 for x264Model
    clip = core.resize.Bicubic(clip=clip, format=vs.YUV420P8, range_s="full", dither_type="error_diffusion")
    # set output frame rate to 25fps (progressive)
    clip = core.std.AssumeFPS(clip=clip, fpsnum=25, fpsden=1)
    # Output
    clip.set_output()"

    Why is tff=false ?

    It is working with virtualdub, but i can only use yadif there, so it is not good.
    Image Attached Thumbnails Click image for larger version

Name:	Screenshot 2024-04-30 215437.png
Views:	32
Size:	81.0 KB
ID:	78739  

    Last edited by Platos; 30th Apr 2024 at 15:02.
    Quote Quote  
  22. QTGMC order is set to 0, set it to -1 (for auto).
    The order parameter will be removed in next versions of Hybrid.
    users currently on my ignore list: deadrats, Stears555, marcorocchini
    Quote Quote  
  23. Thanks, this worked.
    Quote Quote  
  24. I tried to encode a vhs-video, but i got an error. The video is 12.5 GB, my System has 170GB free space, so it cant be a problem from this side.

    When i do a short cut with virtualdub2 and then use this file it works. I feel like hybrid cant handle the big file or some temporary folder is full or so.

    Did i sth wrong or is hybrid doing sth wrong ?
    Image Attached Files
    Quote Quote  
  25. Code:
    y4m [error]: bad sequence header magic
    usually indicated that there is a problem with the Vapoursynth script decoding.

    Does the Vapoursynth Preview work?
    users currently on my ignore list: deadrats, Stears555, marcorocchini
    Quote Quote  
  26. Originally Posted by Selur View Post
    Code:
    y4m [error]: bad sequence header magic
    usually indicated that there is a problem with the Vapoursynth script decoding.

    Does the Vapoursynth Preview work?
    Thanks for your answer and sorry for late answering. Was going to sleep there.

    I can open the previev, but that is what is staying there:

    Above:
    HTML Code:
    # Imports
    import vapoursynth as vs
    # getting Vapoursynth core
    import ctypes
    import sys
    import os
    core = vs.core
    # Import scripts folder
    scriptPath = 'C:/Program Files/Hybrid/64bit/vsscripts'
    sys.path.insert(0, os.path.abspath(scriptPath))
    # Loading Support Files
    Dllref = ctypes.windll.LoadLibrary("C:/Program Files/Hybrid/64bit/vsfilters/Support/libfftw3f-3.dll")
    # Loading Plugins
    core.std.LoadPlugin(path="C:/Program Files/Hybrid/64bit/vsfilters/GrainFilter/RemoveGrain/RemoveGrainVS.dll")
    core.std.LoadPlugin(path="C:/Program Files/Hybrid/64bit/vsfilters/GrainFilter/AddGrain/AddGrain.dll")
    core.std.LoadPlugin(path="C:/Program Files/Hybrid/64bit/vsfilters/DenoiseFilter/DFTTest/DFTTest.dll")
    core.std.LoadPlugin(path="C:/Program Files/Hybrid/64bit/vsfilters/DenoiseFilter/NEO_FFT3DFilter/neo-fft3d.dll")
    core.std.LoadPlugin(path="C:/Program Files/Hybrid/64bit/vsfilters/Support/EEDI3m.dll")
    core.std.LoadPlugin(path="C:/Program Files/Hybrid/64bit/vsfilters/ResizeFilter/nnedi3/vsznedi3.dll")
    core.std.LoadPlugin(path="C:/Program Files/Hybrid/64bit/vsfilters/Support/libmvtools.dll")
    core.std.LoadPlugin(path="C:/Program Files/Hybrid/64bit/vsfilters/Support/scenechange.dll")
    core.std.LoadPlugin(path="C:/Program Files/Hybrid/64bit/vsfilters/Support/fmtconv.dll")
    core.std.LoadPlugin(path="C:/Program Files/Hybrid/64bit/vsfilters/MiscFilter/MiscFilters/MiscFilters.dll")
    core.std.LoadPlugin(path="C:/Program Files/Hybrid/64bit/vsfilters/DeinterlaceFilter/Bwdif/Bwdif.dll")
    core.std.LoadPlugin(path="C:/Program Files/Hybrid/64bit/vsfilters/SourceFilter/LSmashSource/vslsmashsource.dll")
    # Import scripts
    import havsfunc
    # source: 'C:\Users\Gaming-Tower\Videos\vhs-capture-test\crash-test\lang.avi'
    # current color space: YUV422P8, bit depth: 8, resolution: 720x576, fps: 25, scanorder: top field first, yuv luminance scale: limited, matrix: 470bg
    # Loading C:\Users\Gaming-Tower\Videos\vhs-capture-test\crash-test\lang.avi using LWLibavSource
    clip = core.lsmas.LWLibavSource(source="C:/Users/Gaming-Tower/Videos/vhs-capture-test/crash-test/lang.avi", format="YUV422P8", stream_index=0, cache=0, prefer_hw=0)
    frame = clip.get_frame(0)
    # Setting detected color matrix (470bg).
    clip = core.std.SetFrameProps(clip, _Matrix=5)
    # Setting color transfer (170), if it is not set.
    if '_Transfer' not in frame.props or not frame.props['_Transfer']:
      clip = core.std.SetFrameProps(clip, _Transfer=6)
    # Setting color primaries info (to 470), if it is not set.
    if '_Primaries' not in frame.props or not frame.props['_Primaries']:
      clip = 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)
    clip = core.std.SetFrameProp(clip=clip, prop="_FieldBased", intval=2) # tff
    # Deinterlacing using QTGMC
    clip = havsfunc.QTGMC(Input=clip, Preset="Very Slow", TFF=True) # new fps: 25
    # Making sure content is preceived as frame based
    clip = core.std.SetFrameProp(clip=clip, prop="_FieldBased", intval=0) # progressive
    clip = clip[::2] # selecting previously even frames
    clip = core.std.CropRel(clip=clip, left=14, right=16, top=2, bottom=8)# cropping to 690x566
    # adjusting resolution before resizing 
    clip = core.fmtc.resample(clip=clip, w=345, h=566, kernel="spline36", interlaced=False, interlacedd=False)# before YUV422P8 after YUV422P16
    # Resizing using fmtconv - spline36
    clip = core.fmtc.resample(clip=clip, kernel="spline36", w=720, h=542, interlaced=False, interlacedd=False) # resolution 720x542 before YUV422P16 after YUV422P16
    # adjusting output color from: YUV422P16 to YUV420P8 for x264Model
    clip = core.resize.Spline36(clip=clip, format=vs.YUV420P8, range_s="limited", dither_type="error_diffusion")
    # set output frame rate to 25fps (progressive)
    clip = core.std.AssumeFPS(clip=clip, fpsnum=25, fpsden=1)
    # Output
    clip.set_output()
    below (error):
    HTML Code:
    Failed to evaluate the script:
    Python exception: resample: w is not compatible with the output chroma subsampling.
    
    Traceback (most recent call last):
    File "src\cython\vapoursynth.pyx", line 3115, in vapoursynth._vpy_evaluate
    File "src\cython\vapoursynth.pyx", line 3116, in vapoursynth._vpy_evaluate
    File "C:\Users\Gaming-Tower\AppData\Local\Temp\tempPreviewVapoursynthFile12_40_38_070.vpy", line 53, in 
    clip = core.fmtc.resample(clip=clip, w=345, h=566, kernel="spline36", interlaced=False, interlacedd=False)# before YUV422P8 after YUV422P16
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    File "src\cython\vapoursynth.pyx", line 2847, in vapoursynth.Function.__call__
    vapoursynth.Error: resample: w is not compatible with the output chroma subsampling.
    Quote Quote  
  27. => adjust the divisor you something that produces a mod2 width
    users currently on my ignore list: deadrats, Stears555, marcorocchini
    Quote Quote  
  28. Which divisor? You mean the one from Vapoursynth->Misc->Script->Lower res. before resize ?

    But when i use the short version of the video i have the same resolution and it works:

    HTML Code:
    # Imports
    import vapoursynth as vs
    # getting Vapoursynth core
    import ctypes
    import sys
    import os
    core = vs.core
    # Import scripts folder
    scriptPath = 'C:/Program Files/Hybrid/64bit/vsscripts'
    sys.path.insert(0, os.path.abspath(scriptPath))
    # Loading Support Files
    Dllref = ctypes.windll.LoadLibrary("C:/Program Files/Hybrid/64bit/vsfilters/Support/libfftw3f-3.dll")
    # Loading Plugins
    core.std.LoadPlugin(path="C:/Program Files/Hybrid/64bit/vsfilters/GrainFilter/RemoveGrain/RemoveGrainVS.dll")
    core.std.LoadPlugin(path="C:/Program Files/Hybrid/64bit/vsfilters/GrainFilter/AddGrain/AddGrain.dll")
    core.std.LoadPlugin(path="C:/Program Files/Hybrid/64bit/vsfilters/DenoiseFilter/DFTTest/DFTTest.dll")
    core.std.LoadPlugin(path="C:/Program Files/Hybrid/64bit/vsfilters/DenoiseFilter/NEO_FFT3DFilter/neo-fft3d.dll")
    core.std.LoadPlugin(path="C:/Program Files/Hybrid/64bit/vsfilters/Support/EEDI3m.dll")
    core.std.LoadPlugin(path="C:/Program Files/Hybrid/64bit/vsfilters/ResizeFilter/nnedi3/vsznedi3.dll")
    core.std.LoadPlugin(path="C:/Program Files/Hybrid/64bit/vsfilters/Support/libmvtools.dll")
    core.std.LoadPlugin(path="C:/Program Files/Hybrid/64bit/vsfilters/Support/scenechange.dll")
    core.std.LoadPlugin(path="C:/Program Files/Hybrid/64bit/vsfilters/Support/fmtconv.dll")
    core.std.LoadPlugin(path="C:/Program Files/Hybrid/64bit/vsfilters/MiscFilter/MiscFilters/MiscFilters.dll")
    core.std.LoadPlugin(path="C:/Program Files/Hybrid/64bit/vsfilters/DeinterlaceFilter/Bwdif/Bwdif.dll")
    core.std.LoadPlugin(path="C:/Program Files/Hybrid/64bit/vsfilters/SourceFilter/LSmashSource/vslsmashsource.dll")
    # Import scripts
    import havsfunc
    # source: 'C:\Users\Gaming-Tower\Videos\vhs-capture-test\crash-test\kurz.avi'
    # current color space: RGB24, bit depth: 8, resolution: 720x576, fps: 25, scanorder: top field first, yuv luminance scale: full, matrix: 470bg
    # Loading C:\Users\Gaming-Tower\Videos\vhs-capture-test\crash-test\kurz.avi using LWLibavSource
    clip = core.lsmas.LWLibavSource(source="C:/Users/Gaming-Tower/Videos/vhs-capture-test/crash-test/kurz.avi", format="RGB24", stream_index=0, cache=0, prefer_hw=0)
    frame = clip.get_frame(0)
    # Setting color transfer (170), if it is not set.
    if '_Transfer' not in frame.props or not frame.props['_Transfer']:
      clip = core.std.SetFrameProps(clip, _Transfer=6)
    # Setting color primaries info (to 470), if it is not set.
    if '_Primaries' not in frame.props or not frame.props['_Primaries']:
      clip = core.std.SetFrameProps(clip, _Primaries=5)
    # making sure frame rate is set to 25
    clip = core.std.AssumeFPS(clip=clip, fpsnum=25, fpsden=1)
    clip = core.std.SetFrameProp(clip=clip, prop="_FieldBased", intval=2) # tff
    # adjusting color space from RGB24 to YUV444P16 for vsQTGMC
    clip = core.resize.Spline36(clip=clip, format=vs.YUV444P16, matrix_s="470bg", range_s="full")
    # Deinterlacing using QTGMC
    clip = havsfunc.QTGMC(Input=clip, Preset="Very Slow", TFF=True) # new fps: 25
    # Making sure content is preceived as frame based
    clip = core.std.SetFrameProp(clip=clip, prop="_FieldBased", intval=0) # progressive
    clip = clip[::2] # selecting previously even frames
    clip = core.std.CropRel(clip=clip, left=14, right=16, top=2, bottom=8)# cropping to 690x566
    # adjusting resolution before resizing 
    clip = core.fmtc.resample(clip=clip, w=345, h=566, kernel="spline36", interlaced=False, interlacedd=False)# before YUV444P16 after YUV444P16
    # Resizing using fmtconv - spline36
    clip = core.fmtc.resample(clip=clip, kernel="spline36", w=720, h=542, interlaced=False, interlacedd=False) # resolution 720x542 before YUV444P16 after YUV444P16
    # adjusting output color from: YUV444P16 to YUV420P8 for x264Model
    clip = core.resize.Spline36(clip=clip, format=vs.YUV420P8, range_s="full", dither_type="error_diffusion")
    # set output frame rate to 25fps (progressive)
    clip = core.std.AssumeFPS(clip=clip, fpsnum=25, fpsden=1)
    # Output
    clip.set_output()
    Same code and it works.
    Last edited by Platos; 2nd May 2024 at 06:10.
    Quote Quote  
  29. After the cropping your source has a resolution of 690x566 then you told Hybrid to divide the width by 2.00 this results in a resolution of 345x566.
    Problem is that
    Code:
    clip = core.fmtc.resample(clip=clip, w=345, h=566, kernel="spline36", interlaced=False, interlacedd=False)# before YUV444P16 after YUV444P16
    for some unknown reason does not allow uneven width (or height) you need to increase the divisor (2.00) until you end up with of example 344 as width.
    (This is strange since the input should be YUV444P16 and as such support uneven resolutions.)

    Cu Selur
    users currently on my ignore list: deadrats, Stears555, marcorocchini
    Quote Quote  



Similar Threads

Visit our sponsor! Try DVDFab and backup Blu-rays!