本文へ移動
cccskills
無料GitHub で公開日本語紹介

mix-master

短尺広告の映像にナレーション、BGM、効果音を一度のFFmpeg処理でまとめ、音量調整や尺合わせまで行うスキルです。

原文原文の説明を見る

Canonical short-form-ad audio mix in one FFmpeg pass. VO loudnorm + 3.0× per-clip + 2.0× mix, music 0.13 base + apad+afade, sidechain compress 20:1 @ 0.01, climax line +20%, optional video-to-music duration sync. Replaces the reactive multi-round tuning that cost v03 6+ passes.

gooseworks-ai/goose-skillsスター 1,272(GitHub 1,272 + cccskills 0)

実行スコア 未検証

インストール方法を見る

こんなときに便利

  • 広告動画の音声をまとめて仕上げたいとき
  • ナレーションに合わせてBGMを抑えたいとき
  • 映像と音楽の尺をそろえたいとき

日本語での紹介

できること

短尺広告の映像に、ナレーション、BGM、任意の効果音をまとめてミックスします。シーンごとの音声ファイルと開始時刻を指定すると、ナレーションの音量を正規化して配置し、BGMは音声に合わせて自動で抑えます。BGMの尺が映像より短い場合は延長し、長い場合は末尾をフェードアウトして、指定した総尺に合わせます。盛り上げたいナレーションを指定すれば、そのクリップだけ音量を追加できます。処理後は音量や音割れ、尺などを確認し、設定を記録したマニフェストと検証レポートを出力します。

こんなときに便利

広告動画の音声を、試行錯誤を重ねずに一定の手順で仕上げたいときに向いています。ナレーションとBGMの聞きやすさを整えたい場合や、効果音を含む最終版を一度に書き出したい場合にも使えます。

使い方の例

  • 「この映像にシーン別のナレーションとBGMを合わせ、30秒の広告動画にしてください」
  • 「14番目のナレーションを盛り上がりとして少し強調して、効果音も入れてください」

注意点

ffmpeg と ffprobe が PATH 上に必要です。

この紹介文は、公開されている SKILL.md をもとに AI(OpenAI Codex)が作成しました。正確な仕様は下の原文を確認してください。

含まれるファイル(3)

  • SKILL.md5.9 KB
  • scripts/mix.sh8.1 KB
  • skill.meta.json180 B

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

Superseded: the video kit now does this with the audio-mix part, version 1.0.1 and the sound-layer part, version 1.0.4, in the parts folder of this repository. Its mix mode is the audio-mix step (voice, a ducked bed and timed effects) and its finish mode is the sound layer, which levels every video to -14 LUFS with the true peak at or below -1 dBTP. This atom stays, unchanged in behaviour, for skills outside the kit until they move; its scripts still run.

mix-master

Purpose

The v03 Ironman LEARNINGS describe 6+ tuning rounds because no default mix protocol existed: round 1 music too loud, round 2 VO too quiet, round 3 Whisper mis-transcribed, round 4 sidechain ratio finally right, round 5 music ended too early, round 6 climax sat at the same loudness as the rest.

This atom encodes the protocol that landed and ships it as the default. Operators tune by flag; they don't redesign the chain.

Inputs

  • --video <path> — video file with no audio (or whose audio gets dropped) (required)
  • --vo <path,path,...> — comma-separated list of per-scene VO mp3s in scene order (required)
  • --vo-starts <ms,ms,...> — start time in milliseconds for each VO clip on the timeline (required, same length as --vo)
  • --music <path> — music bed file (required)
  • --sfx <path,path,...> — optional comma-separated SFX list
  • --sfx-starts <ms,ms,...> — optional SFX start times
  • --output <path> — output mp4 (required)
  • --total-duration <s> — target total duration in seconds (required — video AND music are sync-fit to this)
  • --vo-boost-line <N> — 1-indexed VO clip that is the climax; gets +20% additional volume (default unset)
  • --vo-volume <float> — per-clip VO volume multiplier (default 3.0)
  • --vo-mix-volume <float> — extra mix-bus volume on VO (default 2.0)
  • --music-volume <float> — base music volume (default 0.13)
  • --music-swell-volume <float> — peak music volume during apad/swell (default 0.21)
  • --sidechain-ratio <float> — sidechain ratio, capped at 20 by FFmpeg (default 20)
  • --sidechain-threshold <float> — sidechain threshold (default 0.01)
  • --target-i <lufs> — VO loudnorm integrated target (default -16)
  • --target-tp <dbtp> — VO loudnorm true-peak (default -1.5)
  • --target-lra <lu> — VO loudnorm LRA (default 11)

Workflow

  1. Validate inputs — --vo and --vo-starts must be same length; --sfx and --sfx-starts must be same length; ffmpeg + ffprobe must be on PATH.
  2. Probe music duration (ffprobe). If music shorter than --total-duration, append apad=pad_dur=2.0 then trim back to target. If music longer, trim with afade=out over last 1.5s.
  3. Build a filter_complex_script file (long chains exceed shell arg limits):
    • Per-VO: [N:a]loudnorm=I=...:TP=...:LRA=...,adelay=<start>|<start>,volume=<vo_volume>[voN];
    • Climax VO (if --vo-boost-line N): volume becomes vo_volume * 1.2.
    • Mix all VO: amix=inputs=K:duration=longest,volume=<vo_mix_volume>[vo_pre];
    • Split VO for sidechain key: [vo_pre]asplit=2[vo_final][vo_sc];
    • Music base: apad=pad_dur=2.0,atrim=0:<TOTAL>,afade=t=out:st=<TOTAL-1.5>:d=1.5,volume=<music_volume>[music_base];
    • Sidechain: [music_base][vo_sc]sidechaincompress=threshold=<thresh>:ratio=<ratio>:attack=20:release=600[music_ducked];
    • SFX (optional): per-SFX adelay + volume then mix into [sfx_bus].
    • Final: amix=inputs=<2 or 3>:duration=longest[a_out].
  4. Run a single ffmpeg invocation that consumes video, all VO, music, all SFX, applies the filter chain, and outputs the mixed mp4 (video re-encoded only if duration trim needed; otherwise -c:v copy).
  5. Run a verification probe: ffprobe loudness summary on [a_out], write manifest.json and verification.md.

Output

  • <output> — mixed mp4 with VO + music + SFX.
  • manifest.json — chain parameters, vo timing, climax line, integrated LUFS after.
  • verification.md — pass/fail report (integrated LUFS within ±0.5 of expected target, no clipping).

Quality Checks

  • Output integrated LUFS within ±0.5 of <target-i> (post-protocol; should be approximately -14 social-ready after the boosts).
  • True-peak strictly below <target-tp> (no clipping).
  • Output duration equals <total-duration> ± 100ms.
  • Music tail has afade=out — last 100ms RMS < -30 dB.
  • If --vo-boost-line was set, the corresponding clip's volume= value is vo_volume * 1.2.

Failure Modes

  • Sidechain ratio > 20 — FFmpeg errors "Result too large." Cap at 20 (the protocol default).
  • VO and starts arrays mismatched — fail fast at validation.
  • Music too short and apad insufficient — emit a warning; video may end before music. Operator should re-source music or shorten --total-duration.
  • VO clip > 5KB but actually error JSON — out of scope here; create-clips Phase 4 catches it.
  • Re-encoding video unnecessarily — if total duration matches input video duration, use -c:v copy to preserve quality.

Example

scripts/mix.sh \
  --video acme/ads/video-01/edits/master-no-audio.mp4 \
  --vo "acme/ads/video-01/audio/vo-scene-01.mp3,...,acme/ads/video-01/audio/vo-scene-14.mp3" \
  --vo-starts "0,2000,3500,...,28000" \
  --music acme/ads/video-01/audio/music-cue-01.wav \
  --output acme/ads/video-01/edits/master-final.mp4 \
  --total-duration 30.0 \
  --vo-boost-line 14

Consumed by: video-orchestrator/edit-video Phase 3–5, auto-fix-from-review-notes dispatcher (when vo-intelligibility or music-vo-balance polish-notes items reference mix-master).

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

コメント

ログインなしで書き込めます。使ってみた感想、質問、動かなかった環境などを気軽にどうぞ。

まだコメントはありません。最初のコメントを書いてみませんか。

送信するとすぐに公開されます。メールアドレスや電話番号などの個人情報は書かないでください。URL は 2 つまでです。

0 / 1000 文字

このフォームは reCAPTCHA で保護されており、Google のプライバシーポリシーと利用規約が適用されます。

同じリポジトリのスキル

<slug>

無料概要あり

資料には具体的なスキルの内容や手順が記載されていないため、用途や得られる結果を特定できません。

  • 用途を確認したいとき
  • 入力や手順を確認したいとき
  • 期待する結果を確認したいとき
gooseworks-ai/goose-skills1,2722026年10月27日 更新

ad-angle-miner

無料概要あり

顧客の課題や商品情報、広告事例を調べ、根拠のある広告訴求と静止画・動画・コピー案にまとめます。動画案は実際の制作フォーマットとの相性も確認し、商品単位の角度集として整理します。

  • 商品の根拠に沿った広告の切り口を探したいとき
  • 静止画広告や動画広告の案を作りたいとき
  • 顧客の言葉から見出しや広告文を考えたいとき
gooseworks-ai/goose-skills1,2722026年10月27日 更新

ad-campaign-analyzer

無料概要あり

Google、Meta、LinkedInなどの広告実績を分析し、成果の出た広告や予算の無駄を特定します。停止・拡大・テスト案や、具体的な予算配分を提案します。

  • 広告予算の無駄を見つけたいとき
  • 複数媒体の成果を比較したいとき
  • 広告の停止・拡大候補を決めたいとき
gooseworks-ai/goose-skills1,2722026年10月27日 更新

ad-lead-quality-analyzer

無料概要あり

広告費と登録後の成果を照合し、質の高いリード獲得にかかった実コストを算出します。広告素材ごとに拡大・維持・調査・停止の判断材料を整理するスキルです。

  • 広告素材ごとの実質獲得コストを比べたいとき
  • 低CPAでも質の低い広告を見つけたいとき
  • 登録後の成果データとの照合状況を調べたいとき
gooseworks-ai/goose-skills1,2722026年10月27日 更新

ad-management-intake

無料概要あり

Meta広告を始める前にブランド情報を調べ、予算や広告表現に関わる不明点だけを質問して準備を整えます。確認事項と仮定を記録し、ブランド情報とキャンペーン概要を作成します。

  • ブランド情報が未記録の状態で広告を始めたいとき
  • 予算や広告期間の前提を整理したいとき
  • 広告で使う主張や制約を記録したいとき
gooseworks-ai/goose-skills1,2722026年10月27日 更新

ad-policy-check

無料概要あり

広告文や画像内の表現を配信先と商品カテゴリのルールに照らして確認し、直せる箇所を修正しながら、法務や人の判断が必要なリスクを広告ごとに整理します。

  • 広告の配信前チェック
  • 広告画像や動画の表現確認
  • クリエイター広告の表示確認
gooseworks-ai/goose-skills1,2722026年10月27日 更新

gooseworks-ai のスキルをすべて見る

このスキルの問題を報告する