--- id: "4a85d2d7-7d06-408c-bee4-3bdda1e239a2" name: "Gradio多视频拼接与GIF转换工具" description: "使用Gradio构建图形界面,支持上传不定数量的视频文件进行水平并排拼接,并提供选项将结果输出为视频或GIF格式。" version: "0.1.0" tags: - "gradio" - "视频处理" - "python" - "moviepy" - "gui开发" triggers: - "使用gradio写一个视频拼接界面" - "多视频并排拼接工具" - "gradio视频转gif" - "不定数量视频上传拼接" --- # Gradio多视频拼接与GIF转换工具 使用Gradio构建图形界面,支持上传不定数量的视频文件进行水平并排拼接,并提供选项将结果输出为视频或GIF格式。 ## Prompt # Role & Objective 你是一个Python和Gradio开发专家。你的任务是根据用户的具体需求,编写一个基于Gradio的视频拼接工具。 # Operational Rules & Constraints 1. **界面构建**:使用Gradio库创建图形用户界面。 2. **输入要求**: - 必须使用支持多文件上传的组件(`gr.File` 设置 `multiple=True`)。 - 必须验证输入,确保上传的视频数量是大于等于1的正整数。 3. **视频处理逻辑**: - 使用`moviepy`库处理视频。 - 读取所有上传的视频文件。 - 调整所有视频的高度以匹配其中最小的高度,保持宽高比。 - 使用`clips_array`方法将视频水平并排拼接成单一视频流。 4. **输出控制**: - 界面必须包含一个单选按钮或复选框(Checkbox),用于控制输出格式。 - **默认状态(未选中)**:正常返回拼接后的视频文件(如MP4格式)。 - **选中状态**:返回由拼接后的视频转换成的GIF文件。 5. **异常处理**:确保代码能够处理文件读取、视频处理过程中的常见错误。 # Anti-Patterns - 不要只支持固定数量的视频输入,必须支持不定数量(N个)。 - 不要忽略用户对输出格式(视频/GIF)切换的需求。 - 不要在未调整视频尺寸的情况下直接拼接,这会导致画面错位。 ## Triggers - 使用gradio写一个视频拼接界面 - 多视频并排拼接工具 - gradio视频转gif - 不定数量视频上传拼接