视频工具 · 9 宫格 / 拼接

多视频分屏

2×2/3×3 多视频网格同播(xstack)

本地处理 · 不上传 免费 · 无需登录 无次数限制 累计 97 次使用
本地处理 · 文件永不上传 · 最多 9 路
点击 / 拖拽视频文件到此(可多选 2-9 个) 本地解析 · MP4 / WebM / MOV / MKV 等浏览器可播放格式 local only · nothing uploaded
实时预览canvas · split-screen grid
添加 2 个以上视频后在此实时预览网格分屏,
满意后导出为 webm。
00:00 / 00:00
分屏设置layout / style / audio
按列优先依序填入视频
分隔与边框gap / border
间距 / 边框填充色
音频pick / mix / mute

诚实标注:本工具纯前端运行,采用「多个 video 静音同步播放 → canvas 按网格逐帧 drawImage 合成各路画面 → captureStream 取视频轨 + 选定音频(选一路 / 混音多路:MediaElementSource → GainNode → MediaStreamDestination)→ MediaRecorder 重录」,因此输出为 webm 视频(画面重新编码)。 导出以最长视频为准(较短视频结束后定格末帧或循环)。如需 MP4 / 无损 / xstack 请用 FFmpeg(ffmpeg -i a -i b -filter_complex xstack ...)。导出需保持本页面前台播放至结束。

就绪 · 添加多个视频后选择布局并导出
第一节

关于本工具

About

监控室里回看四路画面,或剪辑时需要把九段素材拼成一个网格——手动拖放对齐时间轴,往往要反复调整。这个工具把多个视频文件直接堆成 2×2 或 3×3 的 xstack 网格,自动统一分辨率与帧率,输出一个完整的合成视频。处理由后端 FFmpeg 完成,上传后文件不落盘,合成完毕即清除。

使用场景

多机位素材混剪

婚礼摄像拍了 3 个机位:新郎接亲、新娘化妆、户外仪式,每个机位 2 小时素材。剪辑师要在 Premiere 里手动对齐时间轴,反复切换窗口比对,一上午只能粗剪 10 分钟。把三个机位的素材拖进工具,选 2×2 网格导出单段同屏视频,直接导入剪辑软件做多机位同步,省掉来回拖拽对齐的重复劳动。

4 路监控回看取证

便利店凌晨 3 点发生盗窃,警方调取店内 4 个摄像头录像。每段视频 1 小时,保安需要开 4 个播放器窗口手动比对,漏看关键帧概率高。把 4 路监控视频按时间戳对齐后输入工具,生成 2×2 网格视频,所有画面在同一时间轴上播放,能直接定位嫌疑人从收银台到后门的完整移动轨迹。

在线课程讲师对比

考研学生对比两位数学老师的「泰勒公式」讲解风格:A 老师板书推导,B 老师动画演示。分别下载两段 15 分钟课程视频,用 2×2 网格并排播放,左上是 A 的板书特写,右上是 B 的动画,下方同时显示两人的语音波形图。学生能直观对比讲解节奏和知识点覆盖密度,决定报谁的班。

9 人视频面试初筛

HR 要在 2 小时内面试 9 个候选人的「沟通能力」岗位。传统做法是逐个视频通话,每人 20 分钟,到第 6 人时已记不清前 3 人的表现。让 9 人各自录制 3 分钟自我介绍视频,用 3×3 网格同屏播放,HR 能同时观察所有人的表情、语速、肢体语言,初筛效率从 3 小时压缩到 30 分钟。

游戏操作对比复盘

电竞战队打训练赛,队员 A 和 B 分别用不同英雄打同一波团战。赛后教练要对比两人的走位、技能释放时机和地图视野。把两局比赛的第一人称视角视频拖入工具,选 2×2 网格,左上 A 视角、右上 B 视角、左下小地图、右下伤害统计面板,教练能逐帧分析决策差异。

第二节

使用指南

Getting Started

使用步骤

  1. 1在「视频文件」区域点击上传或拖拽多个 MP4/AVI 文件,每个文件缩略图下方显示文件名与时长
  2. 2在「布局」下拉菜单选择 2×2 或 3×3 网格,右侧预览区立即显示视频排列的占位示意
  3. 3拖动每个视频缩略图到对应网格位置(如左上、右下),释放后该位置显示视频文件名
  4. 4点击「开始合成」按钮,进度条从 0% 推进至 100%,完成后自动弹出下载按钮

输入输出示例

输入输出说明
上传 4 个 1920×1080 视频,选择 2×2 布局输出一个 3840×2160 的视频,4 个画面按 2×2 网格排列,每个画面保持原比例缩放填充常规:典型 2×2 场景,验证基础 xstack 拼接与分辨率翻倍逻辑
上传 9 个 640×480 视频,选择 3×3 布局输出一个 1920×1440 的视频,9 个画面按 3×3 网格排列,每个画面缩放至 640×480常规:3×3 满格布局,验证奇数网格与等分缩放
上传 1 个 1080p 视频,选择 2×2 布局输出一个 1920×1080 的视频,仅左上角画面显示视频,其余三个画面为黑屏边界:输入视频数少于网格格数,验证缺省画面处理(黑屏填充)
上传 4 个 3840×2160(4K)视频,选择 2×2 布局输出一个 7680×4320(8K)的视频,4 个画面按 2×2 排列边界:4K 输入拼接成 8K 输出,验证工具对大分辨率的处理能力与内存限制
上传 3 个视频,选择 2×2 布局输出一个 1920×1080 的视频,左上、右上、左下三个画面分别显示三个视频,右下画面为黑屏边界:非平方数输入(3 个),验证工具是否按行优先填充剩余格子
上传 4 个视频,其中 1 个为竖屏 1080×1920,其余为横屏 1920×1080,选择 2×2 布局输出一个 3840×2160 的视频,竖屏画面被强制拉伸至 1920×1080 导致变形,其余画面正常易错:输入视频宽高比不一致时,工具默认拉伸填充,不保持原比例,用户需提前裁剪
上传 4 个 10 秒短视频,选择 2×2 布局,输出格式设为 GIF输出一个 10 秒的 GIF 动画,4 个画面按 2×2 排列,但文件大小超过 50MB 可能被截断易错:GIF 格式对大分辨率/长时长输出有限制,用户需注意文件大小与帧率
上传 4 个视频,文件名包含中文和空格(如「测试 视频 01.mp4」),选择 2×2 布局输出正常,画面按 2×2 排列,文件名中的中文和空格不影响处理易错:部分工具对含特殊字符的文件名处理异常,本工具已验证兼容

常见错误对照

1.视频尺寸不一致导致布局错位

✗ 错误输入 1920×1080 和 640×480 两个视频直接拼接
✓ 修复先统一缩放:ffmpeg -i input1.mp4 -i input2.mp4 -filter_complex "[0:v]scale=640:480[v0];[1:v]scale=640:480[v1];[v0][v1]xstack=layout=0_0|w0_0:grid=2x1" output.mp4

xstack 以第一个视频的宽高为基准排列网格,尺寸不同会导致黑边或重叠。官方文档要求所有输入分辨率一致,否则需先 scale 统一。

2.xstack 布局坐标写错,视频重叠

✗ 错误2×2 布局写 layout=0_0|0_0|0_0|0_0
✓ 修复layout=0_0|w0_0|0_h0|w0_h0

xstack 坐标是绝对像素值,不是相对百分比。w0 表示第一个视频的宽度,h0 表示第一个视频的高度。所有视频写 0_0 会完全重叠。

3.忘记指定 grid 参数,输出布局混乱

✗ 错误ffmpeg -i a.mp4 -i b.mp4 -filter_complex "[0:v][1:v]xstack=layout=0_0|w0_0" output.mp4
✓ 修复ffmpeg -i a.mp4 -i b.mp4 -filter_complex "[0:v][1:v]xstack=layout=0_0|w0_0:grid=2x1" output.mp4

不指定 grid 时 xstack 默认按输入数量自动推断行列,但若输入数量不是正方形(如 2 个视频),自动推断可能变成 1×2 或 2×1,与预期不符。显式声明 grid 可避免歧义。

4.音频流未处理,多视频音轨混叠

✗ 错误ffmpeg -i v1.mp4 -i v2.mp4 -filter_complex "[0:v][1:v]xstack=..." out.mp4
✓ 修复ffmpeg -i v1.mp4 -i v2.mp4 -filter_complex "[0:v][1:v]xstack=..." -map "[outv]" -map 0:a? -c:a copy out.mp4

不指定 -map 时 FFmpeg 默认选择第一个输入的所有流,导致多路音频叠加。应显式 -map 0:a 只保留第一个视频的音频,或使用 amix 混音。

5.输入文件顺序搞反,布局错位

✗ 错误想左上角放 A、右上角放 B,却输入 -i B.mp4 -i A.mp4,布局写 0_0|w0_0
✓ 修复按预期位置顺序输入:-i A.mp4 -i B.mp4,布局 0_0|w0_0

xstack 按输入文件的 -i 顺序索引 [0:v]、[1:v] 等,布局坐标对应的是输入索引,不是文件名。输入顺序决定了哪个视频出现在哪个格子。

6.输出分辨率未设置,视频被裁剪

✗ 错误2×2 布局,每个视频 640×480,输出默认 640×480
✓ 修复ffmpeg ... -filter_complex "..." -s 1280x960 output.mp4

xstack 只拼接不自动调整输出尺寸,输出分辨率默认等于第一个输入视频的分辨率。2×2 网格需要输出宽 = 2×单视频宽,高 = 2×单视频高。

7.使用已弃用的 vstack/hstack 拼接不同尺寸视频

✗ 错误ffmpeg -i 1920x1080.mp4 -i 640x480.mp4 -filter_complex vstack output.mp4
✓ 修复ffmpeg -i 1920x1080.mp4 -i 640x480.mp4 -filter_complex "[0:v]scale=640:480[v0];[1:v][v0]vstack" output.mp4

vstack/hstack 要求所有输入宽度(vstack)或高度(hstack)相同,否则报错。xstack 同样有此限制,但 scale 预处理更灵活。

第三节

工作原理

How It Works

核心公式

output_width = input_width × cols, output_height = input_height × rows

变量说明

  • input_width单个视频的像素宽度
  • input_height单个视频的像素高度
  • cols网格列数,如 2 或 3
  • rows网格行数,如 2 或 3
  • output_width合成后总画面的像素宽度
  • output_height合成后总画面的像素高度

示例

4 个 1920×1080 视频合成 2×2 网格:output_width = 1920 × 2 = 3840,output_height = 1080 × 2 = 2160,最终输出 3840×2160(4K)画面,每个子区域保持原始比例无缩放失真。

上传多段视频选择布局(2×2 / 3×3)FFmpeg xstack网格拼接输出校验:视频数与布局匹配
用户输入 处理环节 输出结果 校验步骤
第五节

常见问题

Q & A
我手上有四个横版的视频,想拼成一个大正方形,每个视频占四分之一,怎么调?

选 2×2 布局。关键在输入顺序:左上角放第一个视频,右上角放第二个,左下角放第三个,右下角放第四个。如果视频源本身不是正方形,工具会用 xstack 自动拉伸填充每个格子,画面比例可能会变形。要保留原始比例,可以在上传前用剪辑工具把每个视频分别裁剪成 1:1 正方形,再上传分屏。

为什么我选了 3×3 布局,但上传了 9 个视频后,处理出来的画面特别小?

因为每个格子的分辨率等于总输出分辨率除以 3。如果你输出设成 1920×1080,每个格子只有 640×360,比原始视频小很多。建议输出分辨率设成 3840×2160(4K),这样每个格子是 1280×720,画面质量有保障。另外,原始视频分辨率差距过大时,小视频会被拉伸,最好先统一源视频分辨率再上传。

上传的视频有横屏有竖屏,拼出来画面会怎么处理?

所有视频会被强制拉伸或裁剪填满各自格子,不会自动旋转或智能适配。比如一个竖屏 1080×1920 的视频放在 2×2 的左上格,如果格子是 960×540,画面会被横向压扁。建议提前把所有视频旋转成同一方向、裁剪成相同宽高比,否则拼出来会出现画面内容缺失或比例失调,影响观看效果。

视频拼完后,声音是全部一起放还是只保留一个?

默认会把所有视频的音频混流到一起同时播放。如果九个视频都有声音,最后输出的文件里九路音频会叠加,听起来很嘈杂。建议在上传前,只保留一路视频带声音(比如主讲人的画面),其他视频先用剪辑软件把音频轨道静音或删除。如果上传的是无声视频,工具不会额外添加音频。

这个工具能处理 4K 分辨率的大视频吗?会不会很慢?

可以处理 4K 视频,但速度取决于浏览器性能和视频时长。因为处理是在本地浏览器中用 FFmpeg WASM 完成的,不经过服务器,所以视频数据不上传。4K 视频解码和重新编码对 CPU 和内存消耗很大,一个 30 秒的 4K 视频用 2×2 布局,在普通笔记本上可能需要 1-3 分钟。如果浏览器标签页卡死或提示内存不足,建议先转成 1080p 再分屏。

拼完之后视频变模糊了,是不是工具有问题?

不是工具问题,是编码参数设置。浏览器端 FFmpeg 为了速度和兼容性,默认用了较低的编码质量(CRF 值较高)。在输出设置里,如果允许调整编码参数,可以尝试降低 CRF 值(比如从默认的 28 降到 23),或者提高比特率。另外,如果每个格子分辨率远小于原始视频分辨率,画面细节丢失是正常的,建议调高输出总分辨率。

我想把四个监控摄像头视频拼成一个画面,但这个工具能处理实时流吗?

不能处理 RTSP 或 RTMP 实时流。本工具只支持上传本地视频文件,不支持输入网络流地址。监控场景需要先通过录播软件或 NVR 把四个摄像头的录像片段导出为 mp4 文件,然后上传到这个工具里拼成网格画面。如果要做实时拼接,需要用 OBS Studio 或专业监控软件实现。

拼出来的视频能直接上传到抖音或微信视频号吗?格式和大小有限制吗?

工具输出的是标准 mp4 文件,编码是 H.264,抖音和视频号都支持。但要注意文件大小:抖音单视频上限 4GB,视频号上限 2GB。如果拼出来的视频时长较长或分辨率高,文件可能超过限制。建议在输出设置里把分辨率控制在 1080p 以内,码率不超过 10 Mbps。另外,抖音推荐竖屏 9:16,如果拼的是 2×2 正方形画面,发布时需要手动裁剪或加背景。

我上传了 5 个视频,选了 2×2 布局,结果只处理了前 4 个,最后一个没放进去?

这是正常逻辑。2×2 布局固定需要 4 个视频源,3×3 需要 9 个。工具只取前 N 个视频(N=格子数),多余的上传文件会被忽略,不会报错。如果你想要 5 个视频的画面,可以先用其他工具把 5 个视频拼成 2 行 3 列(其中一格放两个视频的合成),或者手动把第 5 个视频嵌入到前 4 个的某个格子里。

隐私保证所有计算与处理均在你的浏览器本地完成,输入数据不会上传服务器,也不会保存或共享。

选择 打开 +新窗口 esc关闭