|

Veo 3.1 動画拡張APIマスターガイド:7秒ずつの増分延長で148秒の長尺動画を生成する完全ガイド

AIで8秒を超える長尺動画を生成したいのに、1回の生成時間に制限があることに気づいたことはありませんか?これはAI動画クリエイターがよく直面するボトルネックです。本記事では、Google Veo 3.1のextend(動画拡張)機能を徹底解説し、APIを通じて8秒の短尺動画を148秒の長尺動画へと延長するための完全な技術ソリューションをご紹介します。

核心となる価値: 本記事を読み終えることで、Veo 3.1のextend APIを使用した動画拡張方法を習得し、7秒ずつの増分延長メカニズムを理解し、最大148秒のAI動画生成を自立して実装できるようになります。

veo-3-1-extend-video-api-guide-ja 图示


Veo 3.1 動画拡張 API 核心ポイント

技術的な詳細に入る前に、Veo 3.1 の extend 能力に関する主要なパラメータと制限事項を確認しておきましょう。

パラメータ 数値 説明
1回あたりの拡張時間 7秒 extendを呼び出すたびに固定で7秒の動画を追加
最大拡張回数 20回 オリジナル動画から最大20回まで拡張可能
最大出力時間 148秒 8秒(オリジナル) + 20×7秒(拡張) = 148秒
入力解像度 720p / 1080p 2種類の解像度の入力に対応
出力解像度 720p 拡張出力は現在720pに制限
対応アスペクト比 16:9 / 9:16 横向き・縦向きの両方に対応
フレームレート要件 24 fps 入力動画は24 fpsである必要あり
ファイル形式 MP4 入出力ともにMP4形式

Veo 3.1 動画拡張の仕組み詳細

Veo 3.1のScene Extension機能は、巧妙な連続生成メカニズムを採用しています。

  1. 最後の1秒をサンプリング: システムは入力動画の最後の1秒(24フレーム)から視覚的特徴を抽出します。
  2. 連続性モデリング: これらの特徴に基づき、続く7秒間の動画内容を予測します。
  3. シームレスな結合: 新たに生成された7秒の動画を元の動画と結合し、1つの完全なファイルにします。
  4. 反復的な累積: 各拡張の出力は、次の拡張の入力として使用できます。

この設計により、複数回の拡張後も以下のような視覚的な連続性を維持できます。

  • 人物の動きのスムーズなつながり
  • シーンのライティングの自然な遷移
  • 背景要素の一貫性
  • 音声(ある場合)の連続性

🎯 テクニカルアドバイス: Veo 3.1の動画拡張APIを呼び出す必要がある場合は、APIYI(apiyi.com)プラットフォームを通じて統一されたインターフェースを取得でき、Googleの動画生成モデルシリーズを簡単に呼び出すことが可能です。


Veo 3.1 Extend API 技術仕様の詳細

入力制限事項

Veo 3.1 extend APIを呼び出す前に、入力動画が以下の仕様に準拠していることを確認する必要があります。

制限項目 要件 要件を満たさない場合の動作
ソース Veoで生成された動画であること validation error を返す
形式 MP4 形式がサポートされていないというエラーを出力
動画の長さ 1〜30秒 範囲外の場合エラーを出力
フレームレート 24 fps フレームレート不一致のエラーを出力
解像度 720p または 1080p 解像度チェックに失敗
アスペクト比 16:9 または 9:16 比率がサポートされていないというエラー

重要事項: Gemini APIのextend(延長)機能は、Veoで生成された動画のみを入力としてサポートしています。スマートフォンで撮影した動画や、他のAIで生成された動画など、他のソースの動画を使用しようとすると、APIはバリデーションエラーを返します。

出力仕様

出力項目 仕様
ファイル形式 MP4
延長時間 固定 7 秒
解像度 720p(現在の制限)
フレームレート 24 fps
音声 背景音の継続をサポート
ストレージ有効期間 サーバー上で 2 日間保持

veo-3-1-extend-video-api-guide-ja 图示


Veo 3.1 ビデオ拡張 API クイックスタートガイド

環境準備

開始する前に、以下の準備ができていることを確認してください:

  1. Google AI Studio または Vertex AI のアカウントを所有していること
  2. Gemini API へのアクセス権を取得していること
  3. Python 3.8 以上の環境がインストールされていること
  4. google-genai SDK がインストールされていること
pip install google-genai

シンプルなコード例

以下は、Veo 3.1 のビデオ拡張(extend)API を呼び出すための最もシンプルなコードです:

from google import genai
import time

# 初始化客户端
client = genai.Client(
    api_key="YOUR_API_KEY"
    # 也可使用 APIYI apiyi.com 统一接口
)

# 步骤1: 先生成原始视频
print("正在生成原始视频...")
initial_operation = client.models.generate_videos(
    model="veo-3.1-generate-preview",
    prompt="一只金色的猎鹰在蓝天中翱翔,阳光穿透云层",
)

# 等待生成完成
while not initial_operation.done:
    time.sleep(30)
    initial_operation = client.operations.get(initial_operation)

initial_video = initial_operation.result.generated_videos[0]
print(f"原始视频生成完成,时长: 8秒")

# 步骤2: 扩展视频
print("正在扩展视频...")
extend_operation = client.models.generate_videos(
    model="veo-3.1-generate-preview",
    prompt="猎鹰继续在空中盘旋,俯冲捕捉猎物",
    video=initial_video
)

# 等待扩展完成
while not extend_operation.done:
    time.sleep(30)
    extend_operation = client.operations.get(extend_operation)

extended_video = extend_operation.result.generated_videos[0]
print(f"视频扩展完成,总时长: 15秒")

🚀 クイックスタート: Veo 3.1 API を素早くテストするには、APIYI (apiyi.com) プラットフォームの使用をお勧めします。このプラットフォームは、複雑な設定なしですぐに統合できるインターフェースを提供しています。

完全なコードを表示: 最大 148 秒のビデオ生成を実現
from google import genai
import time
import os

class Veo31VideoExtender:
    """Veo 3.1 视频扩展器 - 支持最长 148 秒视频生成"""

    def __init__(self, api_key: str):
        self.client = genai.Client(api_key=api_key)
        self.model = "veo-3.1-generate-preview"
        self.max_extensions = 20  # 最大扩展次数
        self.extension_duration = 7  # 每次扩展 7 秒

    def generate_initial_video(self, prompt: str, aspect_ratio: str = "16:9"):
        """生成初始视频"""
        print(f"[1/2] 生成初始视频...")
        print(f"    提示词: {prompt[:50]}...")

        operation = self.client.models.generate_videos(
            model=self.model,
            prompt=prompt,
            config={
                "aspect_ratio": aspect_ratio,
                "number_of_videos": 1
            }
        )

        video = self._wait_for_completion(operation)
        print(f"    初始视频生成完成 (8秒)")
        return video

    def extend_video(self, video, prompt: str, target_duration: int = 148):
        """
        扩展视频到目标时长

        Args:
            video: 输入视频对象
            prompt: 扩展提示词
            target_duration: 目标时长(秒),最大 148 秒

        Returns:
            扩展后的视频对象
        """
        # 计算需要的扩展次数
        initial_duration = 8
        needed_duration = target_duration - initial_duration
        extensions_needed = min(
            (needed_duration + self.extension_duration - 1) // self.extension_duration,
            self.max_extensions
        )

        print(f"[2/2] 开始视频扩展...")
        print(f"    目标时长: {target_duration}秒")
        print(f"    需要扩展: {extensions_needed}次")

        current_video = video
        current_duration = initial_duration

        for i in range(extensions_needed):
            print(f"    扩展进度: {i+1}/{extensions_needed}")

            operation = self.client.models.generate_videos(
                model=self.model,
                prompt=prompt,
                video=current_video
            )

            current_video = self._wait_for_completion(operation)
            current_duration += self.extension_duration

            print(f"    当前时长: {current_duration}秒")

        final_duration = min(current_duration, 148)
        print(f"视频扩展完成! 最终时长: {final_duration}秒")
        return current_video

    def _wait_for_completion(self, operation, check_interval: int = 30):
        """等待操作完成"""
        while not operation.done:
            time.sleep(check_interval)
            operation = self.client.operations.get(operation)

        if operation.result.generated_videos:
            return operation.result.generated_videos[0]
        raise Exception("视频生成失败")

    def download_video(self, video, output_path: str):
        """下载视频到本地"""
        print(f"下载视频到: {output_path}")

        # 获取视频内容
        video_data = self.client.files.download(video.video)

        with open(output_path, 'wb') as f:
            f.write(video_data)

        print(f"下载完成! 文件大小: {os.path.getsize(output_path) / 1024 / 1024:.2f} MB")


# 使用示例
if __name__ == "__main__":
    # 初始化扩展器
    extender = Veo31VideoExtender(api_key="YOUR_API_KEY")

    # 生成初始视频
    initial_video = extender.generate_initial_video(
        prompt="夕阳下的海边,金色的阳光洒在波光粼粼的海面上,一艘帆船缓缓驶向远方",
        aspect_ratio="16:9"
    )

    # 扩展到 60 秒
    extended_video = extender.extend_video(
        video=initial_video,
        prompt="帆船继续前行,天空逐渐变成橙红色,海鸥在船边盘旋",
        target_duration=60
    )

    # 下载视频
    extender.download_video(extended_video, "extended_video_60s.mp4")

Veo 3.1 ビデオ拡張 API 応用テクニック

プロンプト戦略:ビデオの連続性を確保する

ビデオを拡張する際、プロンプトの書き方は拡張効果に直接影響します。以下にいくつかのベストプラクティスを紹介します:

戦略 説明
動作の継続 動作の次の段階を記述する 「ハヤブサがさらに急降下し、地面に近づく」
シーンの展開 シーンの自然な変化を記述する 「空が徐々に暗くなり、星が現れ始める」
主体の維持 ビデオの主体を一定に保つ 「同じハヤブサが森の上空を旋回している」
ジャンプを避ける 突然シーンを切り替えない ❌ 「室内シーンに切り替える」

オーディオ処理に関する注意事項

Veo 3.1 はネイティブなオーディオ生成をサポートしていますが、ビデオ拡張機能を使用する際にはいくつかの制限があります:

  1. 背景音響: 環境音や背景音楽を良好に継続できます。
  2. 対話/音声: 元のビデオの最後の 1 秒間に音声がない場合、拡張後も音声は生成されません。
  3. オーディオの連続性: システムはオーディオスタイルの一貫性を維持しようとします。

💡 アドバイス: ビデオに連続した対話が必要な場合は、元のビデオの最後の 1 秒間に対話音声が含まれていることを確認してください。そうしないと、拡張部分は背景音のみになります。

一括拡張とコスト最適化

大量の長いビデオを生成する必要がある場合は、以下の最適化戦略を検討してください。

veo-3-1-extend-video-api-guide-ja 图示

# 批量扩展优化示例
def batch_extend_videos(video_list, prompts, target_duration=60):
    """
    批量扩展视频
    通过 APIYI apiyi.com 平台可以获得更优惠的批量调用价格
    """
    results = []

    for i, (video, prompt) in enumerate(zip(video_list, prompts)):
        print(f"处理视频 {i+1}/{len(video_list)}")

        extended = extender.extend_video(
            video=video,
            prompt=prompt,
            target_duration=target_duration
        )
        results.append(extended)

        # 避免触发速率限制
        time.sleep(5)

    return results

Veo 3.1 動画拡張機能 vs 他のソリューションの比較

市場にはさまざまな AI 動画生成ソリューションが存在します。以下は、Veo 3.1 の拡張(Extend)機能と、その他の主要なソリューションとの比較です。

比較項目 Veo 3.1 Extend Sora Kling Runway Gen-3
最長再生時間 148 秒 60 秒 120 秒 40 秒
拡張メカニズム 7 秒ずつの増分 拡張不可 5 秒ずつの増分 拡張不可
最大解像度 4K (生成) / 720p (拡張) 1080p 1080p 1080p
ネイティブオーディオ 対応 対応 一部対応 非対応
縦型動画対応 9:16 9:16 9:16 9:16
API の可用性 Gemini API 制限あり 公開 公開
利用可能なプラットフォーム APIYI apiyi.com, Google AI Studio 公式 公式, APIYI 公式

選択のアドバイス

  • 最長再生時間を重視する場合: 148 秒まで対応している Veo 3.1 が最適です。
  • 画質の安定性を重視する場合: 連続性が最も高く維持される Veo 3.1 を推奨します。
  • 予算が限られている場合: APIYI (apiyi.com) を通じて、よりお得な価格で利用できます。
  • 迅速な生成が必要な場合: レスポンスの速い Veo 3.1 Fast バージョンが適しています。

Veo 3.1 動画拡張に関するよくある質問(FAQ)

Q1: バリデーションエラー(validation error)が出て動画を拡張できないのはなぜですか?

これは通常、入力された動画が Veo で生成されたものではないことが原因です。Gemini API の extend 機能は、Veo によって生成された動画のみを入力としてサポートしています。

解決策:

  1. 元の動画が Veo 3.1 で生成されたものであることを確認してください。
  2. 動画形式が MP4 であるか確認してください。
  3. フレームレートが 24fps、解像度が 720p または 1080p であることを確認してください。
  4. APIYI (apiyi.com) プラットフォームを利用すると、詳細なエラー診断サポートを受けることができます。
Q2: 拡張後の動画のスタイルを一貫させるにはどうすればよいですか?

動画のスタイルを一貫させるための鍵は、プロンプトの戦略にあります。

  1. 元のプロンプトの継承: 拡張用のプロンプトでも、元の動画と同様の表現を使用します。
  2. スタイルの飛躍を避ける: 拡張時に新しい視覚的スタイルの説明を加えないようにします。
  3. 主体の同一性を保持: 「同じ」主体が動作を継続していることを明示します。
  4. シーンの漸進的変化: シーンを変化させる場合は、突然切り替えるのではなく、段階的に変化させます。

:

  • 元の動画: 「芝生で遊んでいる白い猫」
  • 拡張: 「同じ白い猫が、引き続き芝生を走り回り、蝶を追いかけている」 ✅
  • 拡張: 「黒い犬が画面に現れる」 ❌
Q3: 20回ほど拡張を繰り返すと画質は低下しますか?

理論上、何度も拡張を繰り返すと、ある程度の画質のドリフト(劣化)が生じる可能性があります。しかし、Veo 3.1 は設計段階でこの問題に対して最適化されています。

  • 拡張のたびに元のスタイルの特徴を参照します。
  • 連続性モデリングにより、滑らかな動作を確保します。
  • 解像度は 720p で安定して出力されます。

アドバイス: 非常に高い品質を求める場合は、10〜15 回程度の拡張ごとに効果を再評価することをお勧めします。APIYI (apiyi.com) プラットフォームを利用すれば、簡単に複数回のテストと比較を行うことができます。

Q4: 拡張された動画の保存期間はどのくらいですか?

生成された動画は Google のサーバー上に 2 日間 保存されます。2 日を過ぎると、動画は自動的に削除されます。

重要な注意点:

  • 拡張された動画も新しい生成動画として扱われ、同様に保存期間は 2 日間です。
  • 生成後は速やかにローカルにダウンロードして保存することをお勧めします。
  • コード内の download_video メソッドを使用すれば、自動的にダウンロードを完了できます。
Q5: Veo 3.1 API へのアクセス権を取得するにはどうすればよいですか?

現在、Veo 3.1 API は Paid Preview(有料プレビュー)段階にあり、以下の方法で取得可能です。

  1. Google AI Studio: 開発者が直接申請できます。
  2. Vertex AI: 企業ユーザーは Google Cloud コンソールから有効化できます。
  3. APIYI apiyi.com: 統合された API インターフェースを提供しており、Veo 3.1 の呼び出しに対応しています。登録後すぐに利用可能です。

Veo 3.1 動画拡張 API エラーハンドリング

実際の利用シーンでは、さまざまなエラーが発生する可能性があります。以下に、一般的なエラーとその解決策をまとめました。

エラータイプ エラーメッセージ 原因 解決策
認証・検証エラー Video validation failed 入力動画が仕様に適合していません ソース、フォーマット、解像度を確認してください
タイムアウトエラー Operation timed out 生成に時間がかかりすぎています 待機時間を増やして再試行してください
クォータエラー Quota exceeded API 呼び出し回数が上限を超えています クォータのリセットを待つか、プランをアップグレードしてください
フォーマットエラー Unsupported format 動画フォーマットがサポートされていません MP4 形式に変換してください
フレームレートエラー Invalid frame rate フレームレートが 24fps ではありません 動画を再エンコードしてください
# 错误处理示例
def safe_extend_video(video, prompt, max_retries=3):
    """带重试机制的视频扩展"""
    for attempt in range(max_retries):
        try:
            operation = client.models.generate_videos(
                model="veo-3.1-generate-preview",
                prompt=prompt,
                video=video
            )

            while not operation.done:
                time.sleep(30)
                operation = client.operations.get(operation)

            return operation.result.generated_videos[0]

        except Exception as e:
            print(f"尝试 {attempt + 1} 失败: {e}")
            if attempt < max_retries - 1:
                time.sleep(60)  # 等待后重试
            else:
                raise

Veo 3.1 動画拡張 API の活用シーン

短編動画制作

8秒のクリップを60秒以上の完全な短編動画に拡張できます。以下のような用途に最適です:

  • TikTok などのコンテンツ制作
  • YouTube ショートの制作
  • SNS広告素材

映画・ドラマのプレビュー

1〜2分のコンセプト動画を素早く生成し、以下の用途に活用できます:

  • 脚本の視覚化
  • ストーリーボード(絵コンテ)の動静化
  • クリエイティブ案のデモンストレーション

製品紹介

製品のダイナミックな紹介動画を制作できます:

  • 製品の360度回転展示
  • 利用シーンのシミュレーション
  • 機能デモアニメーション

veo-3-1-extend-video-api-guide-ja 图示


まとめ

Google Veo 3.1 の extend(動画延長)機能は、AI 動画生成において画期的な動画時間の延長を可能にしました。

  1. 7 秒の増分メカニズム: 1 回の延長で固定の 7 秒が追加されます。最後の 1 秒をサンプリングのベースにすることで、動画の連続性を確保します。
  2. 最大 20 回の反復: 最大 20 回まで延長操作を実行できます。
  3. 最大 148 秒の出力: オリジナルの 8 秒 + 140 秒(延長分)= 合計 148 秒の長尺動画が生成可能です。
  4. 厳格な入力制限: Veo で生成された MP4 動画のみをサポートし、設定は 24fps、720p/1080p である必要があります。

長尺動画の生成を必要とする開発者やクリエイターにとって、Veo 3.1 extend API を使いこなすことは、コンテンツ制作効率を大幅に向上させる鍵となります。ぜひ APIYI (apiyi.com) を通じて、その効果を素早く検証し、安定した API サービスを利用してみてください。


本記事は APIYI Team 技術チームによって執筆されました。AI API の活用方法についての詳細は、apiyi.com をご覧ください。

類似投稿