作者tyf99 (呵呵)
看板MAC
标题Re: [软体] 影片大量转档程式
时间Tue Oct 7 23:38:15 2025
更新一下 Batch-FFmpeg 脚本 v2.0
这是用 Applescript 写的 ffmpeg GUI 介面脚本
主要让使用者从 Finder 选取影片,重新编码成新影片
花了几个礼拜把脚本整个重写,增加了自订轨号和自订滤镜的功能
需要的人自取
脚本下载
https://www.mediafire.com/file/iboz8839tudimds/Batch-FFmpeg2.zip
为什麽不用 macOS 系统内建的影片转码功能?
内建的转码,只能输出标准解析度,ffmpeg 自由性高很多,还能套用上百种滤镜
另外,使用 ffmpeg libx265 转码後,容量可大幅缩小
─────────────────────────────────────
准备工作 1
执行 macOS 内建的 Script Editor.app,然後在设定内勾选显示工序指令选单
打开後,右上方的常驻程式区会多一个工序指令的图示
https://i.meee.com.tw/PerGGn4.png
准备工作 2
下载脚本解压缩後放在 ~/Library/Scripts/ 下面即可
zip 解开有两个档案,两个档案必须放在同一资料夹内
Batch-FFmpeg 是脚本主体,setting 放自订参数
可依喜好修改 setting 的参数,复制多份不同设定来使用
https://i.meee.com.tw/7EOz7GW.png
准备工作 3
脚本会用到两个套件,ffmpeg 和 mkvtoolnix
更详细的说,是 ffmpeg, ffprobe, mkvppropedit 这三个程式
可从官网下载编译好的程式,或是透过 Homebrew 编译安装(详见 setting 里面的注解)
安装完成後,修改 setting 档案内的对应程式路径即可
https://i.meee.com.tw/LY83Jl0.png
macOS 权限
脚本会使用到 Finder, System Events, TextEdit 这几个内建 app
在[系统设定/隐私权与安全性]里面的[自动化]&[辅助使用],允许"工序指令选单"的权限
另外脚本预设在结束时会发出系统通知,也可在 setting 里面设定不发出通知
脚本第一次存取磁碟档案时,macOS 安全性应该会跳出来挡.
除了脚本,也会询问 ffmpeg, ffprobe, mkvpropedit 的磁碟存取权限,分别允许即可
https://i.meee.com.tw/43hOvK8.png
─────────────────────────────────────
使用方式:
直接在 Finder 选取要转档的影片,然後点选右上方的工序指令图示,执行脚本就行
或是反过来先执行脚本,再从跳出的视窗里选取档案也可.
https://i.meee.com.tw/VwjIbC1.png
(Finder 一次最多可处理 999 个档案,官方设的系统限制,超过的话无法使用脚本)
选取的每个影片都可自订要保留的轨号
像下图这影片,包含了1视讯轨+2音讯轨+16语言字幕+9个字型+1张封面图,共29轨
脚本预设抓取视讯第1轨、音讯第1轨、字幕则依照 setting 内设定的字幕语言
有封面图的话预设也会保留,可手动选取轨号,其他没被选取的就是直接舍弃.
https://i.meee.com.tw/Alne3GI.png
(要一次处理大量影片的话,建议在 setting 里关闭自订轨号以节省时间)
选完轨号後,可编码成新影片。或是不转码、只把选中的轨号重新复制打包(Remux)
(编码项目在 setting 内可自订)
https://i.meee.com.tw/fGlWop2.png
选取的轨号有特效字幕(ass/ssa)或档案附件时,会用 mkv 封装,否则以 mp4 封装
(ffmpeg 对 mp4 的支援度比较好,对於 mkv 支援度略差,尤其是附件。
若要弄成 mkv,建议先用 ffmpeg 输出 mp4,再用 mkvtoolnix 把附件一起封装成 mkv)
选重新编码的话,可套用 ffmpeg 的滤镜。若选 Remux 则无法套用滤镜
(滤镜项目在 setting 内可自订)
https://i.meee.com.tw/ihjCzPZ.png
降低摇晃(防手震)是 2-pass 滤镜,也就是说第一轮会先分析整段影片,储存分析档,
第二轮才对照分析档开始编码。费时较长、分析档的容量也不小,需留意硬碟空间.
但某些拍摄很随便的影片(例如fc2ppv)套这滤镜还是挺有用的
目前脚本只支援防手震这个 2-pass 滤镜,其他自订滤镜只能用 1-pass 的
前面那个29轨的影片,选取其中5轨转码成 hevc 的最终结果
https://i.meee.com.tw/yZrq8su.png
输出的影片,会解除所有字幕轨的"forced"标签,不强制显示任何字幕
因为被设定强制显示的字幕,通常不是中文字幕
─────────────────────────────────────
脚本开始转码时会建立一个 4MB RAM disk,用来存放编码进度和错误记录
正常结束时就会自动卸载,编码未结束前不要把它强制卸载
https://i.meee.com.tw/aoF43GA.png
https://i.meee.com.tw/8qwqGlx.png
转码中的资讯窗: (整体进度) [现/全] 目前处理的影片 (目前影片进度%)
预设每 3 秒更新一次进度
https://i.meee.com.tw/zvCbi55.png
转码输出的影片存放在同一目录下,档名尾端可附加自订字串,以示区别
目标档名已存在时,会自动加上流水号另存新档,不覆盖
https://i.meee.com.tw/tDANbL3.png
setting 里面可自订档名的字串取代规则,主要用来缩短档名
https://i.meee.com.tw/X63NAnx.png
全部转码结束时的摘要视窗
https://i.meee.com.tw/5NV1s3e.png
(这里是设定略过 hevc 影片,只把其它格式的影片转成 hevc)
编码记录有花费时间和取用的轨号,利於後续确认。
原影片的轨号,顺序是 { {视讯轨}, {音讯轨}, {字幕轨}, {资料轨}, {封面图} }
若影片有问题,导致编码出错的话,也可在这里面查询错误讯息
https://i.meee.com.tw/u2GfL4O.png
以上.
这脚本大致上把我平常会用到的都写进去了,也留一些自订的扩展性.
应该可以再用个几年吧.
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 122.121.165.219 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/MAC/M.1759851503.A.834.html
1F:推 tomap41017: Shutter-Encoder参考看看 10/08 10:07
2F:→ tyf99: shutter encoder 完全无法处理软字幕 10/09 03:51
3F:→ tyf99: 唯一能做到的就是把字幕"烙印"在画面上 10/09 03:51
4F:推 Ice9: 未用先推。另请问,资料轨是指 metadata 吗? 10/09 08:38
5F:推 AnderinSky: 推 10/09 11:08
6F:→ tyf99: 资料轨是其他各种额外资料,字型、章节时间表 10/09 20:31
7F:→ tyf99: 字型能套用到字幕上,章节时间表可以像youtube那样显示段落 10/09 20:32
8F:→ tyf99: 更新2.0.2,bugfix 10/17 04:50
9F:→ tyf99: 更新2.0.11 11/24 21:41