mcpField
R
remotion-media

remotion-media

github.com/phamthanhnghiaクリエイティブ・メディア357 回インストール14 週間前に更新
リポジトリ

remotion-media について

remotion-mediaは、Remotionでメディア素材を解決、配置、検証するための制作スキルです。画像、音声、動画、フォント、字幕のローカル素材の扱いに加え、レンダリング時の同期やプレビューに関する指針を扱います。

主な機能

  1. 01staticFile()でpublic/内の素材を参照
  2. 02画像、音声、動画の取り扱いガイド
  3. 03Googleフォントとカスタムフォントの読み込み
  4. 04@remotion/captionsによる単語同期字幕
  5. 05音声分析とレンダリング時の同期ガイド

活用シーン

  1. 01Remotion作品向けにローカル素材を準備
  2. 02動画に単語同期字幕を追加
  3. 03レンダリング前にフォントや非同期素材を読み込み
  4. 04レンダリングまたはプレビュー用の動画コンポーネントを選択

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/phamthanhnghia/remotion-agent-skills --skill remotion-media

インストール後、Claude Code で/remotion-mediaを入力して読み込まれたか確認します。

同梱ファイルreferences/captions.mdreferences/media-elements.md

詳細

remotion-media

Remotion のメディア OS:解決・配置・検証 — あらゆるメディアタイプを、1 つのスキルで。

配置の契約

すべての静的アセットは public/ ディレクトリに配置します。参照には必ず staticFile() を使用してください。

import {staticFile} from 'remotion';

// Images
<Img src={staticFile('hero.jpg')} />

// Audio
<Audio src={staticFile('background.mp3')} volume={0.4} />

// Video
<OffthreadVideo src={staticFile('footage.mp4')} />

レンダリング時にネットワークアクセスが必要な相対パス、絶対ディスクパス、CDN URL は絶対に使用しないでください(オフラインレンダリングや Lambda で失敗します)。

アセットの種類とツール

種類ツール/パッケージ使用例
BGM解決済みのローカルファイル<Audio src={staticFile('bgm.mp3')} volume={0.3} />
効果音解決済みのローカルファイル<Audio src={staticFile('click.mp3')} startFrom={30} />
画像/背景ローカルファイルまたは staticFile()<Img src={staticFile('bg.jpg')} />
Google Fonts@remotion/google-fontsloadFont() は {fontFamily} を返します
ブランドロゴ(SVG)public/ 内のローカル SVG<Img src={staticFile('logo.svg')} />
ナレーション/TTSローカルの mp3 ファイル<Audio src={staticFile('narration.mp3')} />
動画素材ローカルの mp4 ファイル<OffthreadVideo src={staticFile('clip.mp4')} />
キャプション/字幕@remotion/captions単語単位でタイミングを合わせた <Captions> コンポーネント

フォント

Google Fonts には必ず @remotion/google-fonts を使用してください。<link> タグは使用しないでください。

npm install @remotion/google-fonts
import {loadFont} from '@remotion/google-fonts/Inter';

const {fontFamily} = loadFont();

const Text = () => (
  <div style={{fontFamily, fontWeight: 700}}>Hello</div>
);

カスタムフォントを使用する場合は、フォントファイルを public/fonts/ に配置し、calculateMetadata 内で、または delayRender/continueRender のペアを使って FontFace で読み込みます。

delayRender — 非同期アセットの読み込み

最初のフレームのレンダリング前にアセットを取得または生成する必要がある場合は、remotion の delayRender/continueRender を使用してください。

import {delayRender, continueRender} from 'remotion';

const handle = delayRender('Loading font');

fetch('/api/data')
  .then(r => r.json())
  .then(data => {
    setData(data);
    continueRender(handle);
  });

レンダリング関数内では delayRender を使用しないでください。モジュールスコープで呼び出すか、一度だけ実行される useEffect 内で呼び出してください。

音声/動画のタイミング

プロパティ効果
startFromアセットの最初の N フレームをスキップします
endAtアセットの N フレーム目で再生を停止します
volume0〜1 のスカラー値、またはフレームに応じた関数
playbackRate再生速度の倍率
loop音声をループ再生します(決定論的:コンポジションの長さに基づいて繰り返します)

OffthreadVideo と Video の比較

<OffthreadVideo><Video>
レンダリング精度フレーム単位で正確(推奨)フレームが落ちることがあります
シーク動作メインスレッド外でレンダリングブラウザー内で再生
用途最終コンポジションプレビューのみ

レンダリングには必ず <OffthreadVideo> を使用してください。 <Video> は Studio のプレビューでのみ使用できます。

キャプション

単語単位でタイミングを合わせたキャプションには @remotion/captions を使用してください。

npm install @remotion/captions
import {Captions} from '@remotion/captions';

<Captions
  subtitles={wordTimedSubtitles}
  startFrom={0}
  windowStart={currentWordStart}
  windowEnd={currentWordEnd}
  style={{fontSize: 48, color: 'white'}}
/>

文字起こしのワークフロー → references/captions.md。

音声リアクティブ処理の準備

@remotion/media-utils を使用して、レンダリングパイプラインの外部で音声を事前分析します。

import {getAudioData, visualizeAudio} from '@remotion/media-utils';

// In calculateMetadata (runs once before render):
const audioData = await getAudioData(staticFile('music.mp3'));

音声リアクティブなコンテンツの作成については、remotion-creative/references/audio-reactive.md をご覧ください。

積極的に提案する — メディア活用の機会を確認する

コンポジションを作成またはレビューする際は、根拠に基づいて一度確認し、その後一度だけ提案してください。

検出された兆候提案
ナレーションのない画面上のテキストTTS によるナレーションの選択肢
絵文字またはプレースホルダーのアイコン用 div実際の SVG アイコンを解決
プレースホルダー画像または単色の背景public/ 内の実際の画像を提案
音のないハードカットトランジション効果音を提案
BGM のない約 10 秒を超える場面BGM トラックを提案

ルール:根拠に基づき、一般論にしない(兆候がなければ提案しない)。具体的な修正方法を提案する。プロジェクトごとに一度だけ(提案はまとめて一度に行う)。

参照先

作業参照先
staticFile、public/ ディレクトリ、アセットのパスreferences/static-files.md
非同期読み込みでの delayRenderreferences/async-assets.md
フォントの読み込み(@remotion/google-fonts、カスタムフォント)references/fonts.md
OffthreadVideo、Audio のトリミング、音量カーブreferences/media-elements.md
キャプション、文字起こし、@remotion/captionsreferences/captions.md
音声リアクティブなモーション、getAudioDatareferences/audio-reactive.md

コメント