Skip to main content

PHONiX 对 VapourSynth Script 和 Functions 的编译

项目描述

pvsfunc

pvsfunc(PHOENiX 的 VapourSynth 函数)是我对 VapourSynth 脚本、函数和助手的编译。

构建测试 执照 深源 问题 公关接受

安装

首先安装VapourSynth!(这与 pypi/pip vapoursynthpython 包装器不同!)

pip install --user pvsfunc

完毕!但是,根据您打算使用的类和您的用例,您可能需要安装下面列出的更多依赖项。如果需要,不要忘记安装它们!

建造

从源代码构建需要诗歌
只需运行poetry installpoetry build用于分发轮和源程序包。

执照

这个项目是在 GNU GENERAL PUBLIC LICENSE Version 3 (GPLv3) 许可下发布的。使用前请阅读并同意许可,可在许可文件中找到。


以下是有关 pvsfunc 中包含的可供使用的项目的信息。不要将其视为正在处理的完整文档。

PD2V

用于处理 DGIndex D2V 项目文件(MPEG-1/2 视频)的便利类。包括源加载、帧匹配、去隔行等。

示例用法

from pvsfunc import PD2V
from functools import partial
from havsfunc import QTGMC

clip = PD2V(r"C:\Users\john\Videos\s01e01.d2v", verbose=True).\
    ceil().\
    deinterlace(
        kernel=partial(QTGMC, FPSDivisor=2, Preset="Very Slow"),
        verbose=True
    ).\
    clip

# ... any manual changes to clip

clip.set_output()

上面的示例将加载位于C:\Users\john\Videos\s01e01.d2vVerbose 模式下的 D2V 项目文件。详细模式将在 PD2V 使用期间显示额外信息。

然后,ceil()它通过复制逐行帧(而不是隔行扫描)来运行将视频的逐行扫描部分与隔行扫描部分匹配的帧。

然后它以 QTGMC 作为内核对视频的隔行扫描部分进行去隔行扫描。Kernel 必须有一个tffor TFF参数才能兼容,但字段顺序不应由用户手动设置。

最后,它获取剪辑并将其设置为 VapourSynth 输出。

依赖项

  • d2vsource (core.d2v) VapourSynth 插件
  • DGIndex v1.5.8 或更新版本
  • mkvextract仅当您计划提供非解复用流(例如,mp4、mkv)时才需要

要安装d2vsource,它就像vsrepo install d2vsource在 Windows 上一样简单。其他操作系统用户知道这个练习,去检查你的包存储库或自己编译它。

确保DGIndexmkvextract在您的环境路径上可用并且具有执行权限。注意 Linux 用户:添加到系统配置文件路径,而不是终端/rc 路径。DGIndex 仅适用于 Windows,但如果您安装 Wine,则受支持。

PLS

用于处理 L-SMASH-WORKS LWI 项目文件的便利类。包括源加载和去隔行扫描。一旦基于 Python 的 LWI 项目解析器可用,未来将实现更多功能。

请参阅 PD2V 示例用法,因为它与 PLS 的使用方式非常相似。

依赖项

  • lsmash (core.lsmas) VapourSynth 插件
  • mkvmerge仅当输入文件的容器设置帧速率与编码帧速率不同时才需要

安装lsmash就像vsrepo install lsmas在 Windows 上一样简单。其他操作系统用户知道这个练习,去检查你的包存储库或自己编译它。

确保mkvmerge在您的环境路径上可用并且具有执行权限。注意 Linux 用户:添加到系统配置文件路径,而不是终端/rc 路径。

PDebox

基于输出纵横比应用拆箱的轻量级类。类似的脚本会烦人地希望您自己裁剪,这非常烦人。

Pdecimate

使用循环和偏移量以指定模式抽取(删除)帧。这通常用于 Inverse-Telecine 目的。

出于 IVTC 的目的,通常可以进行抽取以删除恒定模式下拉帧。

内核

我正在处理或修补您可能想要使用的任何自定义 Deinterlacing 内核的内核存储类。只需知道它们很可能不是您所期望的去隔行扫描类型,因为它通常是研究奇怪的去隔行扫描策略的游乐场。

虚空编织

VoidWeave 是一种去隔行方法,涉及使用机器学习进行绘画。

它拍摄镜头并分离编织的字段,以便每个字段都是全高的,字段的缺失数据是 255 RGB 绿色而不是空/黑色。然后,内画机器学习系统将在找到 255 个 RGB 绿色像素的任何地方修复缺失的数据。它工作得很好,因为 YUV 4:2:0 DVD 数据似乎从来没有达到 255 绿色,虽然它确实接近了,但从来没有达到 255。

我在 Live Action DVD 上对其进行了测试,结果确实非常出色!运行内画所用的时间与非常慢的 QTGMC 大致相同,结果相似!我认为这种方法可能真正发挥作用的地方在于卡通/动画资源,因为 QTGMC 做得不好。

这一切仍然需要更多的测试,但它看起来可能是一个非常好的方法!尤其是现在我了解到迪斯尼也在大约同一时间,早在 2020 年就一直在努力:P

项目详情