Selur's Little Message Board

Full Version: VapourSynth ProRes crashing
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Hi!
For some reason VapourSynth's viewer and subsequent encoding crashes with ProRes source from AJA's ControlRoom (Hybrid 2025.05.18.2)

[attachment=3382]
AFK atm. did you try another source filter? I.e. BestSource?
Exclamation
This actually fixes the problem, but I don't quite understand why..
BestSource uses a newer libav library as source and that propably fixed some problem related to the format or container.

Cu Selur
Sorry for being kinda off-topic, but how to properly convert 10bit->8bit footage?10 bits in ProRes are excessive for my use case (VHS) since SNR is pretty low
fmtconv inserted before QTGMC looks like a potential solution
Hybrid by default tries to only apply color changes when necessary.
Hybrid offers multiple ways to change the color space:
  • 'Filtering->Vapoursynth->Misc->Source->Convert to target color space after source' will convert to the output color format directly after loading the source.
  • For most filters under "Filtering->Vapoursynth" with "Filtering->Vapoursynth->Misc->UI->Show 'Gimmick'-controls" enabled, you can:
    • Convert to a specific color, or
    • Restrict the bit depth
    [Image: grafik.png]
  • You can always add custom code in a 'Custom'-section before some Filter. (note that the filter does not have to be used, this is about the filter position in the filter order)
    In case of wanting a specific color space, you could even let Hybrid do it by entering:
    Code:
    # requires colorformat YUV422P8
    Hybrid would then add something like:
    Code:
    # defining beforeDeCross-function - START
    def beforeDeCross(clip):
      # requires colorformat YUV422P8
      return [clip]
    # defining beforeDeCross-function - END
    ...
    # adjusting color format to YUV422P8 for custom section
    clip = core.resize.Bicubic(clip=clip, format=vs.YUV422P8, range_in_s="limited")
    [clip] = beforeDeCross(clip)
    to the script and thus you could force a specific color space even before the deinterlacing.
    You could also use fmtc in such a 'Custom'-section. If you change the color format make sure to let Hybrid know you did so.
    Quote:Insert before:
    Select the position the custom script addition should be inserted before.


    In custom sections you can use:
    - '# scantype <tff|bff|telecine|progressive>' to let Hybrid know that the scan type changed.
    - '# colorformat <YUV420P8|...YUV444P16|RGB24|..|RGBS>' to let Hybrid know the color format changed.
    -'# width <48-16384>' to let Hybrid know the width changed.
    -'# height <48-16384>' to let Hybrid know the height changed.
    -'# framerate <0.01-1000>' to let Hybrid know the frame rate changed.
    -'# colormatrix <Rec.709|FCC|Rec.601/470bg/470m|..|Chroma cl>' to let Hybrid know the color matrix changed.
    -'# requires mod <1-..>' to let Hybrid know the custom addition requires modX.
    -'# requires colorformat <YUV420P8|...YUV444P16|RGB24|..|RGBS>' to let Hybrid know the custom addition requires a specific color format.
    -'# requires colormatrix <Rec.709|FCC|Rec.601/470bg/470m|..|Chroma cl>' to let Hybrid know the custom addition requires a specific color matrix.

    - '# additional output <variablename> [, colorformat: <Vapoursynth>][, width: <48-16384>][, height: <48-16384>][, fps: <0.01-1000>][, colormatrix: <Rec.709|FCC|Rec.601/470bg/470m|..|Chroma cl>][, yuvluminancescale: <limited|full>][, scanorder: <progressive|tff|bff|telecine>]' add an additional output with characteristics, all not specified characteristics will be copied from the current variable
    Hybrid will also replace:
    - %FILTERPATH% with the current filter base path
    - %SCRIPTPATH% with the current script base path
    (tool-tip of 'Insert before')

Cu Selur
Thank you so much for the detailed explanation!