AGENT SKILL

safe-video-concat-workflow

Two-pass video concatenation workflow that avoids encoder compatibility issues by separating concat and audio mixing

License 许可
MIT
最近更新
2026-04-16
Stars
★ 0
Forks
0

01 前言 Front Matter

name
safe-video-concat-workflow
description
Two-pass video concatenation workflow that avoids encoder compatibility issues by separating concat and audio mixing

02 资源文件 1

03 SKILL.md 正文

Safe Video Concatenation Workflow

This workflow prevents encoder compatibility failures when creating video showreels or compilations by using a two-pass approach: concatenate video clips first, then add music/SFX in a separate pass.

When to Use

  • Creating video showreels from multiple source clips
  • Adding background music or sound effects to concatenated videos
  • Avoiding encoder errors when combining clips with audio mixing

Step 1: Probe Source Videos

Before processing, verify resolution and duration of all source clips using ffprobe:

# Get video resolution
ffprobe -v error -select_streams v:0 -show_entries stream=width,height -of csv=p=0 clip.mp4

# Get video duration
ffprobe -v error -show_entries format=duration -of csv=p=0 clip.mp4

Record the resolution (e.g., 1920x1080) to determine if stream copy is safe.

Step 2: Use Stream Copy When Resolution Matches

If source clips already match your target resolution, use -c:v copy to avoid re-encoding:

# Good: avoids encoder issues when resolution matches
-c:v copy

# Only re-encode if resolution conversion is needed
-c:v libx264 -s 1920x1080

This prevents encoder compatibility failures that can occur with complex filter chains.

Step 3: Build Concat List with Bare Filenames

Create the concat list file with bare filenames only (no directory prefixes):

file 'clip1.mp4'
file 'clip2.mp4'
file 'clip3.mp4'

Important: Run ffmpeg from the same directory as the video clips, or the concat demuxer may fail to find files.

cd /path/to/clips
ffmpeg -f concat -safe 0 -i file_list.txt ...

Step 4: Two-Pass Processing

Pass 1: Concatenate Video Clips

Concatenate all clips first into an intermediate file:

ffmpeg -f concat -safe 0 -i file_list.txt -c:v copy -c:a aac -y interim.mp4

Pass 2: Add Music/SFX with Complex Filter

Apply audio mixing or other complex filters in a separate pass:

ffmpeg -i interim.mp4 -i background_music.mp3 \
  -filter_complex "[0:a][1:a]amix=inputs=2:duration=first:dropout_transition=3" \
  -c:v copy -c:a aac -y final_output.mp4

Why Two Passes?

Combining concatenation and audio mixing in a single command can cause:

  • Encoder compatibility failures
  • Resource exhaustion
  • Complex filter chain errors

The two-pass approach isolates concerns and ensures each operation completes successfully.

Quick Reference Commands

# Probe resolution
ffprobe -v error -select_streams v:0 -show_entries stream=width,height -of csv=p=0 VIDEO.mp4

# Create concat list (bare filenames, run from clip directory)
echo "file 'clip1.mp4'" > concat_list.txt
echo "file 'clip2.mp4'" >> concat_list.txt

# Pass 1: Concatenate
ffmpeg -f concat -safe 0 -i concat_list.txt -c:v copy -c:a aac -y interim.mp4

# Pass 2: Add audio
ffmpeg -i interim.mp4 -i music.mp3 -filter_complex "[0:a][1:a]amix=inputs=2" -c:v copy -y output.mp4

04 同仓库更多 Skills

UF-gzj
UF-gzj/openspace-claude-evolution

write-special-chars-ts-check

Workaround for write_file failures caused by special characters (apostrophes, backticks, template literals) using a Python heredoc script, plus a reliable TypeScript type-checking step that filters output to only the newly-written files to avoid being misled by pre-existing errors.

★ 0
UF-gzj
UF-gzj/openspace-claude-evolution

write-special-chars-readback

Workaround for write_file failures caused by special characters (apostrophes, backticks, template literals) using a Python heredoc script, with mandatory post-write verification via read_file and cleanup of /tmp helper scripts.

★ 0
UF-gzj
UF-gzj/openspace-claude-evolution

write-special-chars-heredoc

Workaround for write_file failures caused by special characters (apostrophes, backticks, template literals) by using a Python heredoc script executed via shell.

★ 0
UF-gzj
UF-gzj/openspace-claude-evolution

worldmonitor-reference

Curated architecture index of the WorldMonitor open-source dashboard. Reference for extracting patterns — vanilla TypeScript, Panel class hierarchy, service layer, CSS grid, API edge functions, refresh scheduler, and 60+ data source integrations.

数据分析师
★ 0
UF-gzj
UF-gzj/openspace-claude-evolution

virtual-list

Implement efficient virtual scrolling for rendering large lists with DOM recycling, chunk-based rendering, and performance optimizations

★ 0
UF-gzj
UF-gzj/openspace-claude-evolution

verify-directory-structure

Diagnose and resolve file access issues by first verifying the directory structure.

★ 0