Two-pass video concatenation workflow that avoids encoder compatibility issues by separating concat and audio mixing
55
61%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Passed
No findings from the security scan
Fix and improve this skill with Tessl
tessl review fix ./benchmarks/gdpval/skills/safe-video-concat-workflow/SKILL.mdThis 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.
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.mp4Record the resolution (e.g., 1920x1080) to determine if stream copy is safe.
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 1920x1080This prevents encoder compatibility failures that can occur with complex filter chains.
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 ...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.mp4Apply 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.mp4Combining concatenation and audio mixing in a single command can cause:
The two-pass approach isolates concerns and ensures each operation completes successfully.
# 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.mp4c5a9c4b
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.