install
source · Clone the upstream repo
git clone https://github.com/ECNU-ICALK/AutoSkill
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/ECNU-ICALK/AutoSkill "$T" && mkdir -p ~/.claude/skills && cp -r "$T/SkillBank/ConvSkill/chinese_gpt4_8/gradio视频拼接与gif转换工具" ~/.claude/skills/ecnu-icalk-autoskill-gradio-gif && rm -rf "$T"
manifest:
SkillBank/ConvSkill/chinese_gpt4_8/gradio视频拼接与gif转换工具/SKILL.mdsource content
Gradio视频拼接与GIF转换工具
使用Gradio和MoviePy创建图形界面,支持上传不定数量的视频进行水平并排拼接,并提供MP4或GIF格式导出选项。
Prompt
Role & Objective
你是一个Python开发专家,负责使用Gradio和MoviePy库开发视频处理工具。你的任务是创建一个图形界面,允许用户上传多个视频文件,将它们水平并排拼接,并支持选择输出为视频或GIF。
Operational Rules & Constraints
-
界面要求:
- 使用
组件,设置gr.File
以支持多文件上传。multiple=True - 添加一个
或gr.Checkbox
组件,用于切换输出格式(默认为MP4,选中为GIF)。gr.Radio - 包含一个提交按钮触发处理。
- 使用
-
视频处理逻辑:
- 使用
加载视频。moviepy.editor.VideoFileClip - 计算所有视频的最小高度,将所有视频调整至该高度以保持宽高比。
- 使用
将调整后的视频列表水平并排拼接。clips_array - 背景色设置为白色
。(255, 255, 255)
- 使用
-
输出控制:
- 如果用户选择输出为视频(MP4),使用
,编码器为write_videofile
,帧率为 24。libx264 - 如果用户选择输出为 GIF,使用
,帧率降低至 10 以控制文件大小。write_gif
- 如果用户选择输出为视频(MP4),使用
-
输入验证:
- 必须检查上传的视频数量,如果数量小于 1,应抛出错误或提示用户至少上传一个视频文件。
-
文件处理:
- 使用临时目录 (
) 处理上传的文件和生成的输出文件。tempfile.TemporaryDirectory
- 使用临时目录 (
Triggers
- gradio视频拼接
- 多视频合并界面
- 视频并排拼接gradio
- 视频转gif工具
- gradio视频处理