ユーザーが動画をAdstackerにアップロードするとき、彼らが期待することは一つです。クリップが、戸惑うような待機、壊れたエクスポート、または同期がずれた字幕なしに、洗練された広告バリエーションに変換されることです。このシンプルなワークフローの背後には、意図的に段階付けされたAIを活用した動画パイプラインがあります。私たちは、プロジェクトに入る前にすべてのアセットを検証し、音声をフレーム単位で正確な字幕データに変換し、その後、再利用可能なクリエイティブコンポーネントをレンダリングしてから最終バリエーションを組み立てます。
これがAdstackerがユーザー動画をアップロードからエクスポートまでどのように処理するか、そしてなぜそのアーキテクチャが信頼性の高いクリエイティブの量のために設計されているかです。
課題:動画入力はデフォルトで本番環境対応であることは稀である
動画ファイルはファイル選択画面では似ているように見えても、レンダリングパイプラインでは大きく異なる挙動を示すことがあります。クリップは予期しない長さ、低解像度、携帯電話のカメラからの回転フラグ、または全く使用できない動画ストリームを持つ可能性があります。プロジェクトのレンダリングが開始された後にこれらの問題を発見すると、ユーザーは時間を失い、計算リソースが無駄になります。
字幕は第二の課題を追加します。単なる文字起こしだけではソーシャル広告には十分ではありません。テキストは、話者とともに表示され、読みやすく、次の行と重ならないように、単語レベルのタイミングを必要とします。
最後に、Adstackerは少数のアセットから多くの組み合わせを作成するように構築されています。フック、ボディ、CTA、および字幕スタイルのすべての組み合わせに対して、同一のキャプション付きクリップを再レンダリングすることは、不必要に遅く、高価になります。
私たちのソリューション:明確な責任を持つ段階的なパイプライン
私たちは、検証、文字起こし、オーバーレイレンダリング、および最終的なアセンブリを分離しています。各段階は、次の段階が使用できる永続的な結果を生成し、システムが失敗したステップをプロジェクト全体を再開することなく再試行できるようにします。
アーキテクチャ

1. FFprobeはプロジェクト開始前に不正な入力を検出します
Adstackerがアップロードされたクリップをプロジェクトにコミットする前に、すべてのファイルに対して軽量なメディア検査ツールであるFFprobeを実行します。私たちは、信頼性の高い出力のために重要な詳細を読み取ります。
- 実際の動画ストリームが存在すること。
- 期間がプロジェクトで許可されている範囲内であること。
- 実効解像度が私たちの最低品質基準を満たし、設定された最大値を超えないこと。
- タイミング計算のためにフレームレートが利用可能であること。
- 表示方向が正しいこと(ピクセル寸法ではなくメタデータに回転情報がある携帯電話の動画も含む)。
これは「失敗を早期に検出する」ゲートです。アセットが信頼できる広告を生成しない場合、レンダリングが始まる前にクリエーターに役立つメッセージが表示されます。また、プロジェクトの基準解像度を制限できるため、下流のワーカーはすべての生のソースサイズを個別に処理する代わりに、予測可能なキャンバスで動作します。
2. AssemblyAIは音声を実用的な字幕タイミングに変換します
字幕を使用するプロジェクトの場合、ソース音声をAssemblyAIに送信すると、テキストのブロック以上のもの、つまり開始と終了のタイムスタンプを持つ個々の単語を受け取ります。これらのタイムスタンプは、話し言葉と視覚的なタイミングとの間の架け橋となります。
私たちはタイミングを秒単位に正規化し、プロジェクトのターゲットフレームレートでフレームに変換し、単語を短い字幕チャンクにグループ化します。このグループ化は意図的なもので、意味のある一時停止の後、または現在の行が読みやすい長さに達したときに新しいキャプションが始まります。また、ソースの単語タイミングが重なっている場合でも、一度に一つのチャンクのみが表示されるように隣接するチャンクをクランプします。
その結果、動画に貼り付けられた一般的な文字起こしではなく、簡潔で、フレームを認識し、選択された視覚スタイルに対応できる字幕データが生成されます。
3. 共有オーバーレイを一度レンダリングし、再利用します
クリエイティブの規模を拡大するための鍵は、重複作業を避けることです。Adstackerプロジェクトでは、同じフッククリップを多くのボディクリップ、CTA、テキストレイヤー、および字幕スタイルと組み合わせることがあります。私たちは、それを使用するすべての最終組み合わせごとに一度レンダリングするのではなく、各固有のレシピに対してキャプション付きまたはテキストレイヤー付きセグメントを一度だけレンダリングします。 これは、当社のポートフォリオにあるショートフォーム動画作成プラットフォームSsemble向けに構築した自動キャプション作成アプローチを反映しています。
オーバーレイワーカーは、準備されたソース動画、ターゲットアスペクト比、カスタムテキストレイヤー、および字幕チャンクを受け取ります。一貫したキャンバス上で視覚的な処理をレンダリングし、完成したオーバーレイを再利用可能なアセットとして保存します。その後、最終マージ段階で正しいフック、ボディ、CTAオーバーレイを選択し、完成したバリエーションを組み立てます。
この分割には、2つの実用的な利点があります。
- 再利用により、多くの組み合わせが同じ構成要素を共有する場合、レンダリング作業が削減されます。
- 独立した再試行により、1つのオーバーレイまたは1つの最終マージでの失敗が、完了した作業を破棄することなく修正できます。
実例:1回の製品撮影で数十種類のテスト可能な広告
スキンケアブランドが3つのフック、2つの製品デモンストレーション、2つのCTAをアップロードしたと想像してみてください。また、2つの字幕スタイルを選択します。クリエイティブの可能性は急速に増えますが、いくつかの最終動画は同じソースセグメントとキャプション処理を再利用します。
Adstackerは、これら7つのクリップすべてを事前に検証し、ポートレート方向のメタデータを考慮し、各話されたセグメントから時間指定された字幕チャンクを構築します。その後、必要となる各オーバーレイを一度だけ作成します。最終的な組み合わせが組み立てられるとき、システムはそれらの準備された部品を繰り返し再作成するのではなく、再利用します。
ブランドは、一貫したテスト準備済みの広告セットを手に入れ、パイプラインはそれらを作成するために最小限の必要な作業を行います。
信頼性の高いクリエイティブボリュームのために構築
Adstackerでは、動画処理は不透明な「レンダリング」ボタンではありません。それは、ソースの検証、音声の理解、再利用可能なレイヤーのレンダリング、最終的なクリエイティブの組み立てという一連の集中的なステップです。この構造により、アップロード時の品質を保護し、キャプションの同期を保ち、無駄を増やすことなくバリエーションを拡張できます。これは、柔軟なコンテナ化されたワークロードのために構築されたクラウドインフラストラクチャ上で動作します。
動画アセットをアップロードし、テストしたいクリエイティブの構成要素を選択するだけで、Adstackerが舞台裏の制作パイプラインを処理します。
テクノロジースタック:NestJS · FFprobe · AssemblyAI · AWS S3 · AWS ECS Fargate · Remotion · FFmpeg · MongoDB
チームからもっと読む
1. Export Service vs. Video Editor Pipeline

