PowerShell 批处理自定义参数压制工具 v1.3

A@NAZOrip
A@NAZOrip 12月5日
  • 在其它设备中阅读本文章

为了实现急用版压制教程上位替代,将编码参数配置阶段的效率提高到极致而开发的软件规格脚本。逻辑上根据视频源属性,用户需求,引用各个程序的命令行格式等规则为前提,构建上游仅 Y4M 管道导出 + 下游深度定制参数的效率提升工具。

环境

支持的管道上游程序

  • ffmpeg
  • vspipe(支持 API 3.0、4.0 自动识别)
  • avs2yuv
  • avs2pipemod
  • SVFI

支持的管道下游程序

  • x264
  • x265
  • SVT-AV1

只要系统里有一个上游、一个下游程序即可。

优点

  • ✓ 图形 + 命令行交互界面:
    • 在选择文件、路径时调用高 DPI 模式的 Win Form 选窗
    • 在基本命令行选项上使用分色编码提示 + 纯选择交互逻辑(prompt)
  • ✓ 自动生成无滤镜 VS/AVS 脚本:加速完成脚本构建,或直接启动 vspipe、avs2yuv、avs2pipemod 上游
  • ✓ 独立封装命令脚本:导入视频流,音频流,字幕轨,字体
  • ✓ 深度定制编码参数:自动计算 + 用户定义实现尽可能符合需求的编码器配置
  • ✓ 快速命令行变更:在生成的批处理中,可以直接通过复制粘贴来替换先前导入的管道上游、下游工具;轻松衍生多种处理源与视频格式

用法

如需确保安全性,则可以通过微软官方的 PSScriptAnalyzer 检测工具来验证:

Invoke-ScriptAnalyzer -Path "X:\...\Batch-batch-encoder\bbenc-source" -Settings PSGallery -Recurse
  1. Windows 11 下需要确保安装了对应文件名语言的语言包(Windows 10)
    1. 例如,阿拉伯语文件名:设置 → 时间和语言 →[左栏] 语言 → 添加语言 → 阿拉伯语
  2. 在设置 → 更新和安全 → 开发者选项中解除 PowerShell 的运行限制,如图:
    bbenc-ttl5zh.png
  3. 解压下载好的压缩包
  4. 运行步骤 1 从而完成基本环境检测
    1. 如果安装了 VSCode,则建议直接安装微软 PowerShell 插件运行
    2. VSCode 选择 文件 → 打开文件夹 → 打开脚本根目录(...\bbenc-source\ZH v1.x\)
    3. VSCode 需要确认“信任发布者”才能运行脚本
  5. 运行步骤 2(生成编码管线批处理)、3(ffprobe 读取源)、4(生成编码任务)
  6. 运行步骤 4 生成的批处理以开始编码
    1. 若有多种格式的需求,去除备用参数的注释即可
  7. 运行步骤 5 以封装编码结果

脚本步骤2示例

脚本步骤 2 示例(仅 CLI 窗口,在 VSCode 中运行效果最佳)

下载链接

皆同步更新, QQ群里有很高几率能得到问题答复

  1. Github直链,
  2. 谷歌盘,
  3. 百度云, 提取码 hevc,
  4. QQ 群存档: 691892901

教程地图、工具下载见:iavoe.github.io

缺陷信息

用于生成备用管线(pipe 命令行)的导入命令最终都使用单一源文件,这可能是视频、.vpy 或 .avs 文件。因此,根据选择的管道上游程序不同,备用命令行中的上游程序输入/导入参数可能会导入到无效的文件。于是尽管格式正确,切换命令时需要手动编辑批处理。

打赏信息

开发这些工具并不容易。如果这套工具提高了你的效率,那么不妨赞助或推广一下下下。

bmc_qr.png

pp_tip_qr.png

——Buy me a coffee 链接

——PayPal 链接

更新信息

v1.3.8

  • 完成了 SVFI 上游适配:
    • 自动从渲染配置 INI 获取 Task ID 和源视频路径(JSON 解析)并构建管道参数,从而跳过视频导入步骤
  • 修复了 SVT-AV1 下游参数构建的格式失误
  • 添加了导入 one_line_shot_args.exe 与 vspipe.exe 的自动路径检测功能(导入更简单)
  • 添加了导入 SVFI INI 文件的自动路径检测功能(导入更简单)

v1.3.7

  • 重写了所有代码
  • 使用了数组、哈希表等等更合理的数据结构
  • 改进了报错逻辑
  • 进一步提高了对方括号路径、文件名的支持
  • 构建了全局脚本,简化了代码
  • 抛弃了大批量模式
  • 添加了 SVT-AV1 基础支持
  • 全部参数计算功能改写为函数,提高了模块化
  • 添加了分色处理的提示文本,统一化了外观
  • 改进了 vspipe 支持
  • 改进了 SVFI 支持
  • 添加了自动 VS、AVS 无滤镜脚本生成功能
  • 缓存数据集中导出到单一文件夹
  • 通过追加额外的 CSV,避免了步骤 4 脚本的重复导入,避免了 ffprobe 导出 CSV 兼容问题
  • 改进了步骤 1 的操作逻辑
  • 改进了 Y4M 管道支持
  • 完善了封装命令的操作逻辑、流程
  • 增加了更多优化操作相关的提示文本
  • 强化了文件导入脚本的逻辑
  • 行为变更:将 RAW 管道所需参数作为附录(Appendix)一并记录到输出批处理中
  • 添加了 SVT-AV1 的 ColorMatrix、Transfer、Primaries 参数生成功能
  • 已验证 ffmpeg 兼容性正常
  • 已验证 vspipe 兼容性正常
  • 已验证 avs2yuv 0.26+0.30 兼容性正常
  • 已验证 avs2pipemod 兼容性正常
  • 测试步骤 5(封装命令)已完成测试,弃用了所有 Invoke-Expression 来增加安全性
    A@NAZOrip
    A@NAZOrip  2023-01-01, 04:43

    由于作图日期较早,所以图2没加上MXF,VP9,FLAC

      A@NAZOrip
      A@NAZOrip  2023-01-01, 04:48

      奇怪了,背景图在火狐上看着偏红一些