XY工具箱

全程本地处理,不会上传服务器

添加图片

选择或拖拽多张图片(支持 JPG / PNG / WebP / GIF)。

点击选择图片或把图片拖拽到此处
可一次选择多张 · 添加后可拖动排序

拼接设置

拼合方式
0 px
开启(填充背景色)
0 = 不限制输出尺寸
输出选项
.jpg
后缀跟随输出格式;默认取第一张图的名字 + “-拼接”

输出预览

尚未输出

添加图片

选择或拖拽多张图片(支持 JPG / PNG / WebP / GIF),每张都会单独填充成正方形。

点击选择图片或把图片拖拽到此处
可一次选择多张 · 添加后可拖动排序

方形设置

按每张图片较长的边确定正方形边长(如 1000×2000 → 2000×2000),原图居中,其余用填充色补齐。

填充方式
开启(填充颜色)
默认白色;关闭后保持透明(需导出 PNG)。
输出选项
0 = 不缩放,直接按原图较长边定正方形;填写后超出上限的仍会等比缩小并保持居中。
.jpg
作为文件名前缀,多张会加上序号;默认取第一张图的名字 + “-方形”。

输出结果

尚未处理
处理结果将显示在这里,可逐张下载

添加图片

上传一张白底商品图,自动识别背景色并从四边泛洪抠除,商品内部的白色会保留,导出透明 PNG。支持点击、拖拽,或直接按 Ctrl / ⌘ + V 粘贴剪贴板中的图片。

点击选择图片或拖拽到此处
也可以直接粘贴图片 · 仅处理本地文件

抠图设置

商品本身是白色 / 浅色时,把「容差」调小;背景发灰或有阴影时调大。调整参数会实时重新处理。

背景识别
30
1 px
0 px
收缩可去掉商品边缘残留的一圈背景色。
细节处理
边缘去除底色(防白边)
半透明边缘按背景色反算,减少白边;背景偏白时建议开启。
裁掉四周透明留白
导出时自动裁到商品外接矩形,保持原图尺寸时关闭。

输出预览

尚未输出
尚未载入图片

添加视频

选择或拖拽 2 个及以上视频(MP4 / WebM / MOV / MKV),按列表顺序拼接。

点击选择视频或把视频拖拽到此处
可一次选择多个 · 添加后可拖动排序

拼接设置

无损说明

采用 ffmpeg「流拷贝(-c copy)」拼接,不重新编码,画质与体积保持原样,输出约等于各视频大小之和。要求所有视频编码参数一致(分辨率、帧率、编码器、音频格式相同),否则拼接可能失败或输出异常。首次拼接会从 CDN 下载约 30MB 的 ffmpeg 核心并显示下载进度(自动实测挑选最快 CDN,失败自动切换备用源);引导脚本与 Worker 分块由仓库内 lib/ 同源提供,避免跨域 Worker 被浏览器拦截。需通过 http(s) 打开本页。

输出选项
.mp4
默认取第一个视频的名字 + “-拼接”;格式跟随第一个视频。

输出预览

尚未输出

添加音频 / 视频

选择或拖拽多段音频 / 视频(视频会自动提取音轨),将按列表顺序拼接合并为 MP3 或 AAC。

点击选择文件或把音频/视频拖拽到此处
可一次选择多段 · 添加后可拖动排序

拼接设置

采用浏览器内 FFmpeg 处理:单文件可无损提取原音轨,也可按需重编码为 MP3 / AAC,本地处理、数据不出本地。

提取与声道
开启(单文件直接流拷贝原音轨)
仅当只添加 1 个文件时生效、不做重编码;添加多段或关闭后,按下方参数编码合并。
0 s
在两段音频之间插入的静音,可按需错开衔接(仅编码合并时生效)。
输出选项
开启(M4A 输出时把 moov 元数据前移到文件开头)
默认开启;仅对 MP4 容器(M4A)输出生效,方便网页边下边播。MP3 / AAC 原始流不受影响。
MP3 三档均支持;AAC 的 VBR 用质量档,ABR / CBR 均按目标比特率编码。
VBR 模式下对应当前三档质量;ABR / CBR 下为目标码率。
.mp3
默认取第一段音频的名字 + “-合并”;无损提取时扩展名跟随源音轨。

输出预览

尚未输出

音频 Faststart(moov 前移)

上传 M4A / AAC(MP4 容器)音频,检测 moov 元数据原子是否位于文件末尾(ffmpeg 默认输出);若是,自动用 -movflags +faststart 将其前移到文件开头,便于网页边下边播。支持多文件批量处理,逐条下载。

点击选择文件或把 M4A/AAC 音频拖拽到此处
可多选 · 支持 .m4a / .aac / .mp4(音频容器)

输出

尚未处理

添加视频

选择一个主视频和一个广告视频,广告会叠加在主视频画面中并真正合成输出为单个 MP4(广告始终可见,默认右下角)。

主视频(广告将叠加其上)
点击选择主视频或拖拽到此处
广告视频
点击选择广告视频或拖拽到此处

烧录设置

为合成叠加,视频将用 libx264 重新编码(画质有损、体积通常增大),音频直接复制、不重新编码。需通过 http(s) 打开本页。

叠加方式
占主视频宽度的百分比;高度按广告原始比例自动计算。
0 = 无限循环直到主视频结束(默认);填 n = 广告播放 n 次后消失。
拖动定位时广告框距画面边缘的最小距离(像素)。
输出选项
.mp4
默认取主视频的名字 + “-广告”。
数值越小画质越高、文件越大;一般 18–23 为宜(恒定质量,非目标码率)。
越快耗时越短、文件越大;越慢耗时越长、文件越小。

位置预览

显示主视频的一帧画面,广告按缩放尺寸叠加显示;按住广告框拖动即可调整位置(烧录时按相同相对位置输出)。

输出预览

尚未输出

添加视频

选择一个主视频并填写广告文案;文案会在浏览器内渲染成透明图层,再由 ffmpeg 叠加进画面,真正合成输出为单个 MP4(全程本地处理)。建议使用浏览器可播放的 MP4 / WebM / MOV,才能取帧预览并拖动定位。需通过 http(s) 打开本页。

点击选择主视频或拖拽到此处

广告文案

支持多行;文案由浏览器 canvas 渲染,中文、英文、数字和标点都能正常显示,字体样式所见即所得。

最多 200 字,按回车换行;文案过长时会自动缩小以完整显示在画面内(建议 2–4 行)。

文字样式

字体与颜色
实际字体取决于打开页面的设备,缺失时自动回退到系统字体。
按主视频高度的百分比计算(如 1080p 的 6% ≈ 65px)。
关闭(常规字重)
描边与底色
按字号百分比计算;0 = 无描边。描边可让文字在复杂画面上更清晰。
开启(半透明底色块)
底色块的不透明度:0 = 完全透明,100 = 不透明。

版式与输出

版式与时段
超过宽度自动换行;按主视频宽度的百分比计算。
行高倍数,1.3 表示行距为字号的 1.3 倍。
按主视频高度的百分比计算,拖动定位时文字框距画面边缘的最小距离。
至
0 / 0 = 全程显示;只填结束 = 从开头显示到该秒;只填开始 = 从该秒显示到结尾。
输出选项
.mp4
默认取主视频的名字 + “-文字”,始终输出 MP4。
数值越小画质越高、文件越大;一般 18–23 为宜(恒定质量,非目标码率)。
越快耗时越短、文件越大;越慢耗时越长、文件越小。

位置预览

显示主视频的一帧画面,文案按实际输出效果叠加;按住文字框拖动即可调整位置(烧录时按相同相对位置输出,所见即所得)。

输出预览

尚未输出

添加视频

选择一个视频,直接播放原文件预览(不经过 FFmpeg);若浏览器无法解码该 MOV(如 HEVC / ProRes),会优先用 WebCodecs 解封装后帧级解码绘制到画布(平台不支持时退回 FFmpeg 软解),无需提前转码文件。标记要保留的片段后无损切割(流拷贝,不重新编码)。需通过 http(s) 打开本页。

点击选择视频或拖拽到此处

预览与切点

高亮区间为保留片段,灰色刻度为关键帧。拖动时间轴、设起点/终点会按帧对齐,可逐帧精确定位。切割精度任选:无损(起点自动吸附到之前最近关键帧,所设即所得、画质不变)或精确到帧(严格跟随所选帧,但需重编码)。

00:00.000 / --:--

切割设置

切割精度
精确 = 严格跟随所选帧,但会重编码,可在右侧调整参数;无损 = 画质不变、速度快,但切割点只能落在关键帧上,起点会自动吸附并提前显示。
导出方式
合并导出 = 把所有片段拼回一个视频(切掉不要的部分);逐段导出 = 每个片段单独下载。
输出选项
跟随原格式 = 扩展名与容器与原视频一致;MP4 = 统一封装为 .mp4(无损模式下仅改封装,要求源编码 MP4 支持;不兼容时请改用「精确到帧」)。
.mp4
默认取视频名 + “-切割”;扩展名由上方「输出格式」决定。首次使用会从 CDN 下载约 30MB FFmpeg 核心(带下载进度)。
转码参数(仅精确到帧生效)
数值越小画质越高、文件越大;一般 18–23 为宜。
越快耗时越短、文件越大;越慢耗时越长、文件越小。
原始 = 保持源帧率;选具体数值会按该帧率重采样,仅精确到帧模式生效(无损流拷贝不改帧率)。
等比缩放,长边不超过所选;想省体积/降低解压压力时可缩小。仅精确到帧模式生效。
重编码音频的 AAC 比特率;原视频为无声时自动跳过。
保留音频(不静音)
开启后移除音轨:精确到帧时不再编码音频,无损模式时直接不复制音轨。

输出结果

尚未输出

添加视频

选择一个视频,按固定间隔把画面截成图片(默认每秒一张),可逐张下载或打包成 ZIP。全程在浏览器内处理,数据不出本地。首次使用会从 CDN 下载约 30MB FFmpeg 核心(带下载进度);若 FFmpeg 不可用,会自动改用浏览器解码(仅限浏览器能播放的格式)。FFmpeg 核心需通过 http(s) 打开本页才能加载。

点击选择视频或拖拽到此处

截帧设置

截取方式
默认每秒截一张;间隔越大,图片越少。
添加视频后显示预计张数;超过上限会自动截断,避免内存占用过大。
输出选项
数值越小画质越高、文件越大;PNG 不受此设置影响。
输出为「前缀-0001.jpg」…;打包下载为「前缀.zip」。

输出结果

尚未输出
截取结果将显示在这里,可逐张下载或打包下载

添加 MOV / HEIC 文件

选择一个 MOV / MP4 视频或 HEIC / HEIF 图片,用浏览器内 FFmpeg 转成 GIF 动图。视频可截取时段并设定帧率、宽度与颜色数;HEIC 会先用解码库转成 PNG 帧(首次约 1.3MB,连拍/多帧按所选帧率合成动图),再由 FFmpeg 编码为 GIF。全程本地处理,首次使用还会从 CDN 下载约 30MB FFmpeg 核心(带下载进度),需通过 http(s) 打开本页。

点击选择文件或拖拽到此处

转换设置

动图参数
每秒帧数;越高越流畅,文件也越大。
限制宽度可显著减小 GIF 体积,高度按比例缩放。
颜色越少体积越小,但渐变处可能出现色块。
截取与输出
至 秒(0 = 到结尾)
仅对视频生效;HEIC 为单帧图片,输出静态 GIF。
.gif
默认取源文件名 + “-动图”。

输出预览

尚未输出

添加 MOV / HEIC 文件

把 MOV / MP4 视频转为通用性更好的 MP4,或把 HEIC / HEIF 图片制作成静态(多帧则逐帧)MP4。视频可选「快速无损」只改封装,或「兼容重编码」保证播放兼容;HEIC 会先用解码库转成 PNG 帧再交给 FFmpeg 编码。全程本地处理,首次使用会从 CDN 下载约 30MB FFmpeg 核心(带下载进度);HEIC 另需约 1.3MB 解码库。需通过 http(s) 打开本页。

点击选择文件或拖拽到此处

转换设置

编码选项
快速无损用「-c copy」只改封装,速度快、画质体积不变,但要求源编码 MP4 支持(常见 H.264/H.265 + AAC);失败时请改用兼容重编码。无损模式下编码格式、帧率、分辨率、静音等设置不生效。
H.264 兼容性最佳;H.265 体积更小,但编码更慢,部分旧设备/浏览器不支持。
数值越小画质越高、文件越大;18–23 适合大多数场景。
越快越省时间,越慢同等码率下画质略好。
输出选项
按最大宽度等比缩放;「原始」保留源尺寸(仅补齐偶数边长)。HEIC 图片默认 1080p 以控制编码时间。
保留音频(不静音)
开启后移除音轨(-an);关闭则重编码为 AAC 192kbps。
.mp4
默认取源文件名;输出为 MP4 容器。

输出预览

尚未输出

上传图片

上传一张图片,工具会居中裁剪为正方形,并按标准尺寸实时生成预览各类浏览器 / 移动端 / PWA 图标。建议使用清晰的高分辨率方形图(背景透明更佳)。

点击选择图片或拖拽到此处

实时预览

未上传图片前,这里会显示各尺寸图标的效果示例。上传后自动按标准尺寸生成,可逐个下载。

Font Awesome 图标搜索

静态搜索当前页面已加载的 Font Awesome 6.4 免费图标,支持关键词搜索与样式筛选,点击即可复制调用代码。全部在本地完成。

加载图标数据…

图标列表

添加图片

上传一张图片,浏览器本地读取为 Base64 字符串,数据不会上传服务器。支持点击、拖拽,或直接按 Ctrl / ⌘ + V 粘贴剪贴板中的图片。

点击选择图片或拖拽到此处
支持 PNG / JPG / GIF / WebP 等格式 · 仅处理本地文件

输出设置

去掉 data:...;base64, 前缀
关闭时输出完整 dataURL(可直接作为 img 的 src);开启时只保留 Base64 数据部分。
生成 <img> 标签
开启后输出 <img src="data:..." alt="文件名">,可直接粘贴到 HTML 中。

Base64 结果

尚未转换

添加 HEIC / HEIF 图片

把 iPhone / iPad 或相机拍摄的 HEIC / HEIF 图片转成通用性更好的 JPG,或把 HEIC 内部的连拍 / 多帧合成 GIF 动图。支持批量转换,全程在浏览器本地处理,图片不会上传服务器。首次转换会从 CDN 下载约 1.3MB 的解码库(之后复用);Safari 等原生支持 HEIC 的浏览器转 JPG 可直接解码,无需下载。

点击选择图片或把图片拖拽到此处
支持 .heic / .heif · 可一次选择多张

转换设置

GIF 会把 HEIC 内部的连拍 / 多帧按设定帧速合成动图;单帧文件输出静态 GIF(GIF 需下载解码库)。
0.90
越高越接近原图、文件越大;一般 0.85–0.95 即可。

输出结果

尚未转换
转换后的 JPG 会显示在这里,可逐张下载或打包下载