import vapoursynth as vs
core = vs.core

# Usa FFMS2 si lo tienes; si no, cambia a core.bs.VideoSource("tu_video.mkv")
src = core.ffms2.Source("/run/media/e/Almacenamiento/Media/Anime/Raws/[BDMV] Ojamajo Doremi (1999)/BIXA_9550_2/BDMV/STREAM/00001.m2ts")

# Forzar metadata BT.709 limited
src = core.std.SetFrameProps(src, _Matrix=1, _Transfer=1, _Primaries=1, _ColorRange=1)

FRAME = 100  # <-- pon aquí un entero válido

single = src[FRAME]

rgb = core.resize.Bilinear(
    single,
    format=vs.RGB24,
    matrix_in_s="709",
    transfer_in_s="709",
    primaries_in_s="709",
    range_in_s="limited",
    range_s="full",
    dither_type="none"
)

# Escribe PNG directamente desde VS
core.imwri.Write(rgb, imgformat="PNG", filename="frame_vs_raw_100.png").get_frame(0)
