agentsclimarketplace

Av studio

Skill Tibsfox/gsd-skill-creator/examples/skills/media/av-studio

Audio/video studio production — multi-track editing, color grading, motion graphics, compositing, live streaming, screen recording, YouTube publishing.From its SKILL.md

Install
npx -y skills add Tibsfox/gsd-skill-creator --skill av-studio

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.

SKILL.md

8.9 KB, ~2.9k tokens by cl100k_base, as published. Nobody here has run it

AV Studio Production Skill

Combines ffmpeg-media (codecs/formats), audio-engineering (mastering/mixing), and gource-visualizer (repo visualization) into a unified production toolkit for video content creation, live streaming, and multimedia publishing.

Production Templates

YouTube Video Pipeline

# 1. Screen recording (with audio)
ffmpeg -f x11grab -video_size 1920x1080 -framerate 30 -i :0.0 \
  -f pulse -i default \
  -c:v libx264 -preset ultrafast -crf 18 \
  -c:a aac -b:a 192k \
  raw_recording.mkv

# 2. Trim to content
ffmpeg -ss 00:00:05 -i raw_recording.mkv -to 00:45:00 -c copy trimmed.mkv

# 3. Add intro + outro
cat > concat.txt << EOF
file 'intro.mp4'
file 'trimmed.mkv'
file 'outro.mp4'
EOF
ffmpeg -f concat -safe 0 -i concat.txt -c:v libx264 -c:a aac assembled.mp4

# 4. Color grade + normalize audio
ffmpeg -i assembled.mp4 \
  -vf "eq=brightness=0.04:contrast=1.1:saturation=1.15,unsharp=5:5:0.5" \
  -af "loudnorm=I=-14:TP=-1:LRA=11" \
  -c:v libx264 -preset medium -crf 20 -pix_fmt yuv420p \
  -c:a aac -b:a 192k \
  -movflags +faststart \
  final.mp4

# 5. Generate thumbnail
ffmpeg -i final.mp4 -ss 00:00:30 -frames:v 1 \
  -vf "scale=1280:720" thumbnail.jpg

Presentation Recording

# Record screen + webcam PiP
ffmpeg -f x11grab -video_size 1920x1080 -framerate 30 -i :0.0 \
  -f v4l2 -video_size 320x240 -framerate 30 -i /dev/video0 \
  -f pulse -i default \
  -filter_complex "[0:v][1:v]overlay=W-w-20:H-h-20[out]" \
  -map "[out]" -map 2:a \
  -c:v libx264 -preset fast -crf 22 \
  -c:a aac -b:a 128k \
  presentation.mp4

Tutorial / Screencast

# Record with mouse cursor highlight
ffmpeg -f x11grab -video_size 1920x1080 -framerate 30 \
  -draw_mouse 1 -i :0.0 \
  -f pulse -i default \
  -c:v libx264 -preset fast -crf 20 \
  -c:a aac -b:a 128k \
  tutorial.mp4

# Add chapter markers (for YouTube)
ffmpeg -i tutorial.mp4 -c copy \
  -metadata:c:0 title="Introduction" \
  -metadata:c:0 timebase=1/1000 \
  chaptered.mp4

Color Grading

LUT Application

# Apply a 3D LUT (cube format)
ffmpeg -i input.mp4 -vf "lut3d=cinematic.cube" graded.mp4

# Apply with blend (50% strength)
ffmpeg -i input.mp4 -vf "split[a][b];[b]lut3d=cinematic.cube[c];[a][c]blend=all_opacity=0.5" graded.mp4

Manual Color Correction

# Lift/Gamma/Gain (shadows/midtones/highlights)
ffmpeg -i input.mp4 -vf "\
  colorbalance=rs=0.1:gs=-0.05:bs=0.15:\
  rm=0:gm=0:bm=0:\
  rh=-0.05:gh=0:bh=0.05" \
  corrected.mp4

# White balance correction (warm up)
ffmpeg -i input.mp4 -vf "colortemperature=temperature=6500" warm.mp4

# Curves (S-curve for contrast)
ffmpeg -i input.mp4 -vf "curves=master='0/0 0.25/0.15 0.5/0.5 0.75/0.85 1/1'" contrast.mp4

Motion Graphics

Text Animations

# Fade-in title card (2 seconds)
ffmpeg -i input.mp4 -vf "\
  drawtext=text='Episode Title':\
  fontsize=72:[email protected]:\
  x=(w-text_w)/2:y=(h-text_h)/2:\
  alpha='if(lt(t,1),t,if(lt(t,3),1,if(lt(t,4),4-t,0)))'" \
  titled.mp4

# Lower third (name + title)
ffmpeg -i input.mp4 -vf "\
  drawbox=x=0:y=ih-120:w=500:h=120:[email protected]:t=fill,\
  drawtext=text='Jane Doe':fontsize=36:fontcolor=white:x=20:y=ih-110,\
  drawtext=text='Software Engineer':fontsize=24:fontcolor=0xcccccc:x=20:y=ih-65" \
  lower_third.mp4

Transitions

# Crossfade between two clips (1 second overlap)
ffmpeg -i clip1.mp4 -i clip2.mp4 \
  -filter_complex "\
  [0:v]trim=0:10,setpts=PTS-STARTPTS[v0];\
  [1:v]trim=0:10,setpts=PTS-STARTPTS[v1];\
  [v0][v1]xfade=transition=fade:duration=1:offset=9[vout];\
  [0:a]atrim=0:10,asetpts=PTS-STARTPTS[a0];\
  [1:a]atrim=0:10,asetpts=PTS-STARTPTS[a1];\
  [a0][a1]acrossfade=d=1[aout]" \
  -map "[vout]" -map "[aout]" crossfade.mp4

# Available xfade transitions:
# fade, wipeleft, wiperight, wipeup, wipedown, slideleft, slideright,
# slideup, slidedown, circlecrop, circleopen, circleclose, dissolve,
# pixelize, diagtl, diagtr, diagbl, diagbr, hlslice, hrslice,
# vuslice, vdslice, hblur, fadegrays, squeezeh, squeezev

Picture-in-Picture

# Webcam overlay (bottom right, 25% size)
ffmpeg -i screen.mp4 -i webcam.mp4 \
  -filter_complex "\
  [1:v]scale=iw/4:ih/4[pip];\
  [0:v][pip]overlay=W-w-20:H-h-20" \
  -c:v libx264 -crf 22 -c:a aac pip.mp4

# Animated PiP (slides in from right)
ffmpeg -i screen.mp4 -i webcam.mp4 \
  -filter_complex "\
  [1:v]scale=320:240[pip];\
  [0:v][pip]overlay=x='if(lt(t,1),W,W-w-20)':y=H-h-20" \
  animated_pip.mp4

Video Stabilization

# Two-pass stabilization with vidstab
# Pass 1: analyze
ffmpeg -i shaky.mp4 -vf vidstabdetect=shakiness=5:accuracy=15 -f null -
# Pass 2: apply
ffmpeg -i shaky.mp4 -vf vidstabtransform=smoothing=10:input=transforms.trf stabilized.mp4

Timelapse / Slow Motion

# Timelapse from photos (one frame per image)
ffmpeg -framerate 30 -pattern_type glob -i 'photos/*.jpg' \
  -c:v libx264 -crf 18 -pix_fmt yuv420p timelapse.mp4

# Speed ramp (normal → 4x → normal)
ffmpeg -i input.mp4 -filter_complex "\
  [0:v]trim=0:10,setpts=PTS-STARTPTS[v1];\
  [0:v]trim=10:30,setpts=0.25*(PTS-STARTPTS)[v2];\
  [0:v]trim=30:40,setpts=PTS-STARTPTS[v3];\
  [v1][v2][v3]concat=n=3:v=1:a=0[out]" \
  -map "[out]" speed_ramp.mp4

# Smooth slow motion (frame interpolation with minterpolate)
ffmpeg -i input.mp4 -vf "minterpolate=fps=120:mi_mode=mci:mc_mode=aobmc:vsbmc=1" \
  -r 30 slowmo.mp4

Live Streaming

# Stream to YouTube via RTMP
ffmpeg -f x11grab -video_size 1920x1080 -framerate 30 -i :0.0 \
  -f pulse -i default \
  -c:v libx264 -preset veryfast -maxrate 4500k -bufsize 9000k \
  -pix_fmt yuv420p -g 60 \
  -c:a aac -b:a 128k -ar 44100 \
  -f flv "rtmp://a.rtmp.youtube.com/live2/YOUR_STREAM_KEY"

# Stream to Twitch
ffmpeg -f x11grab -video_size 1920x1080 -framerate 30 -i :0.0 \
  -f pulse -i default \
  -c:v libx264 -preset veryfast -maxrate 6000k -bufsize 12000k \
  -pix_fmt yuv420p -g 60 \
  -c:a aac -b:a 160k -ar 44100 \
  -f flv "rtmp://live.twitch.tv/app/YOUR_STREAM_KEY"

Aspect Ratios

FormatRatioResolutionUse
Widescreen16:91920x1080YouTube, presentations
Vertical9:161080x1920TikTok, Reels, Shorts
Square1:11080x1080Instagram feed
Ultrawide21:92560x1080Cinematic
Classic4:31440x1080Legacy, some webcams
Cinema2.39:12048x858Film standard

Letterboxing / Pillarboxing

# Add letterbox (16:9 → 21:9 cinematic bars)
ffmpeg -i input.mp4 -vf "pad=iw:iw*9/21:(ow-iw)/2:(oh-ih)/2:black" cinematic.mp4

# Convert vertical to horizontal (blur background)
ffmpeg -i vertical.mp4 -filter_complex "\
  [0:v]scale=1920:1080:force_original_aspect_ratio=increase,crop=1920:1080,boxblur=20[bg];\
  [0:v]scale=-1:1080[fg];\
  [bg][fg]overlay=(W-w)/2:0" \
  horizontal_blurbg.mp4

YouTube Publishing Checklist

  1. Video specs: H.264, 1080p+, -14 LUFS audio, thumbnail 1280x720
  2. faststart: -movflags +faststart for progressive download
  3. Pixel format: -pix_fmt yuv420p for compatibility
  4. Chapters: Include in description (00:00 Intro, 01:30 Topic, etc.)
  5. Thumbnail: High-contrast, readable text at small sizes, faces perform well
  6. Subtitles: SRT file or burn-in with drawtext filter
  7. End screen: Last 20 seconds reserved for cards/end screen elements

Related Skills & Agents

AssetRole
ffmpeg-media skillCodec/format foundation
audio-engineering skillAudio mastering/mixing
ffmpeg-processor agentFormat conversion
audio-engineer agentAudio mastering
podcast-producer agentPodcast pipeline
music-analyzer agentAudio analysis
gource-visualizer skillRepository visualization → video

When This Skill Activates

  • Video editing, trimming, concatenation with transitions
  • Color grading and correction
  • Motion graphics, titles, lower thirds
  • Screen recording and screencasts
  • Live streaming (YouTube, Twitch)
  • Picture-in-picture compositing
  • Video stabilization
  • Timelapse and slow motion
  • Aspect ratio conversion
  • YouTube video publishing workflow

What ships with it

Read from the repository

Just SKILL.md. No reference files, no scripts.

Keep looking

Skills are one crate of 325,949. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.