View Categories

P5 Archive を使用したメディアワークフローのプロキシ生成の自動化

はじめに

現代のメディア制作では、高解像度の映像素材を扱うことが標準となっています。4K、6K、さらには 8K の RAW ファイルなど、RED、ARRI、Blackmagic といったカメラで撮影された素材は、非常に大きなファイルサイズとなり、編集ワークフローに大きな負荷を与えます。編集者は効率的に作業するために軽量なプロキシファイルを必要とし、一方でオリジナルの高解像度マスターは安全にアーカイブされる必要があります。

P5 Archive には、強力でありながら見落とされがちな機能として カスタムプレビュー変換スクリプトがあります。この機能を利用することで、アーカイブ処理の中で自動的にプロキシファイルを生成し、アーカイブと制作ワークフローをシームレスに統合できます。

この記事では、P5 のこの機能を活用し、P5 ブラウザ用プレビュー編集ワークフロー向けプロキシを同時に自動生成する柔軟なプロキシ生成スクリプトを紹介します。このスクリプトは Windows、macOS、Linux のいずれでも動作します。

課題:アーカイブと編集のワークフローを連携させる

メディア制作施設は、一般的に次のような共通のジレンマに直面します。

  • 撮影現場から送られてきた未編集映像は、安全のためにアーカイブする必要がある
  • 編集チーム用にプロキシファイルを作成する必要がある
  • P5でアーカイブを閲覧するにはプレビューファイルが必要
  • これらのプロセスはしばしば別々に処理されるため、作業の重複や潜在的な矛盾が生じる

従来の手法では、映像素材の取り込み、別のトランスコーディングアプリケーションの実行、プロキシファイルの整理、そしてオリジナルファイルのアーカイブといった複数の手作業が必要となります。このワークフローは時間がかかり、エラーが発生しやすく、大規模な制作には適していません。

解決策:P5におけるプロキシ生成の統合

P5 Archive の プレビュー変換(preview converter)機能は、 アーカイブ処理の途中で カスタムスクリプトを実行できるようになっています。私たちの プロキシ生成スクリプトは、この仕組みを最大限に活用しており、次のような機能を提供します:

  • クロスプラットフォーム対応:Windows、macOS、Linuxで動作します
  • デュアル出力生成:P5ブラウザプレビューと高品質ワークフロープロキシを同時に作成します。
  • 柔軟なパスマッピング:既存のプロジェクト構造内でプロキシファイルを自動的に整理します
  • シングルエンコード最適化:両方の用途で同じ品質が求められる場合、エンコード処理は1回のみで済みます。
  • シームレスな統合:P5の既存のプレビューインフラストラクチャ内で動作します

仕組み

基本概念

P5 Archive が動画ファイルを処理する際、プレビュー生成のために外部スクリプトを呼び出すことができます。私たちのスクリプトは、この仕組みをさらに拡張し、次のような機能を実現します:

  • P5はソースファイルのパスをスクリプトに渡します
  • このスクリプトは(設定に応じて)1つまたは2つのプロキシファイルを生成します。
  • ワークフロープロキシは設定可能な場所に保存されます
  • プレビューファイルのパスがブラウザ表示用にP5に返されます。

構成の概要

このスクリプトは設定ヘッダーによって完全に制御され、コマンドラインパラメータは不要です。そのため、異なるアーカイブプランに対して異なる設定を簡単に構成できます。

設定パラメータ

スクリプトヘッダーには、設定可能なすべてのオプションが含まれています:
P5 プレビュー設定

ENABLE_P5_PREVIEW = true # P5 にプレビューを返す (false = ダミー画像) 
P5_PREVIEW_SOURCE = "preview" # プレビュー | ワークフロー (使用する品質)

ワークフロープロキシ設定

ENABLE_WORKFLOW_STORE = True # プロキシをワークフローの場所に保存します
WORKFLOW_STORE_SOURCE = "workflow" # "preview" | "workflow" (使用する品質)

FFmpegの設定

FFMPEG_PATH = "" # カスタムFFmpeg(空欄の場合はP5組み込み)
# Windows: r"C:\ffmpeg\bin\ffmpeg.exe"
# macOS/Linux: "/usr/local/bin/ffmpeg"

このスクリプトは、2種類のFFmpegバージョンをサポートしています。

  • P5内蔵FFmpeg(libopenh264):オプションは限定的で、ビットレート制御のみ可能
  • カスタムFFmpeg(libx264):CRF、プリセット、チューニングオプションによる、より優れた品質とより詳細な制御

ワークフローパス構成

WORKFLOW_PROJECT_FOLDER="" # ステップ 1: マーカー フォルダー (空 = スキップ) 
WORKFLOW_NEW_BASE="" # ステップ 2: 新しいベース パス
WORKFLOW_REMOVE_LEVELS=1 # ステップ 3: 削除するディレクトリ (0 = スキップ)
WORKFLOW_REPLACE_WITH="proxies" # ステップ 4: 追加するパス (空 = スキップ)

Windowsノート

バックスラッシュを含むパスには、生の文字列を使用してください。

WORKFLOW_NEW_BASE = r"X:\Proxy_Storage"

または、スラッシュ(/)を使用してください。これはWindowsでも有効です。

WORKFLOW_NEW_BASE = "X:/Proxy_Storage"

プレビュー品質設定(P5ブラウザ向け – 速度最適化済み)

PREVIEW_SCALE="320" # ピクセル単位の幅 (高さは比例) 
PREVIEW_ABITRATE="64k" # オーディオビットレート
PREVIEW_CODEC="h264" # h264 | prores | dnxhd

# P5 組み込み FFmpeg (libopenh264):
PREVIEW_VBITRATE="256k" # ビデオビットレート

# カスタム FFmpeg (libx264):
PREVIEW_CRF="28" # 品質 (高いほど小さい、範囲 18-32)
PREVIEW_PRESET="veryfast" # ultrafast|veryfast|fast|medium
PREVIEW_TUNE="fastdecode" # fastdecode|zerolatency|film (空欄 = なし)

ワークフロー品質設定(編集用 – 品質最適化済み)

WORKFLOW_SCALE="1920" # ピクセル単位の幅 (高さは比例) 
WORKFLOW_ABITRATE="128k" # オーディオビットレート
WORKFLOW_CODEC="h264" # h264 | prores | dnxhd

# P5 組み込み FFmpeg (libopenh264):
WORKFLOW_VBITRATE="5000k" # ビデオビットレート

# カスタム FFmpeg (libx264):
WORKFLOW_CRF="18" # 品質 (低いほど良い、範囲 16-23)
WORKFLOW_PRESET="medium" # fast|medium|slow|veryslow
WORKFLOW_TUNE="" # film|animation (空欄 = なし)

品質の定義

品質レベルは2つに分けられ、それぞれ独立して定義できます。

  • プレビュー品質(P5ブラウザ向けに最適化):読み込み速度を速くするためにファイルサイズを小さくし、解像度を低く(例:幅320ピクセル)、ビットレートを低く(例:256kbps)しています。
  • ワークフロー品質(編集用に最適化):高解像度(例:幅1920ピクセル)、高ビットレート(例:5Mbps)、Premiere、Final Cut、DaVinci Resolveなどでのオフライン編集に適しています。

汎用的な使用例

使用例1:P5プレビューのみ(デフォルトの動作)

P5アーカイブを閲覧するためのプレビューのみが必要な組織向け:

ENABLE_P5_PREVIEW=true 
P5_PREVIEW_SOURCE="preview"
ENABLE_WORKFLOW_STORE=false

結果:小さなプレビューファイルが1つ生成され、P5に返されます。

使用例2:ワークフロープロキシのみ

既存のプレビューソリューションを導入済みだが、プロキシの自動生成が必要な施設向け:

ENABLE_P5_PREVIEW=false 
ENABLE_WORKFLOW_STORE=true
WORKFLOW_STORE_SOURCE="workflow"

結果:高品質のプロキシが設定された場所に保存されます。P5はプレースホルダー画像を受け取ります。

使用例3:両方の目的に単一のプロキシを使用する

ワークフローの要件が控えめで、1つの品質レベルで両方のニーズを満たす場合:

ENABLE_P5_PREVIEW=true 
P5_PREVIEW_SOURCE="workflow"
ENABLE_WORKFLOW_STORE=true
WORKFLOW_STORE_SOURCE="workflow"

結果:1回のエンコード処理で、編集用に保存され、かつP5に返されるプロキシが作成されます。

使用例4:個別の品質(フル機能)

閲覧と編集におけるさまざまな要件に最大限の柔軟性を持たせるために:

ENABLE_P5_PREVIEW=true 
P5_PREVIEW_SOURCE="preview"
ENABLE_WORKFLOW_STORE=true
WORKFLOW_STORE_SOURCE="workflow"

結果:2回のエンコード処理により、それぞれの用途に最適化されたファイルが作成されます。

インテリジェントパスマッピング

最も強力な機能の一つは、柔軟なパス設定です。このスクリプトは、既存のプロジェクト構造に合わせてプロキシファイルを自動的に整理できます。

3つの独立した操作

宛先パスは、設定可能な3つのステップを経て構築されます。

ステップ 1 – ベース パスの置換:プロジェクト構造を維持しながら、ストレージの場所を置き換えます。

ステップ 2 – ディレクトリ レベルの削除: パスから指定された数のディレクトリを削除します (例: プロジェクト レベルにプロキシを配置するために「Camera_Raw」を削除します)。

ステップ 3 – パスの追加: 新しいディレクトリ コンポーネント (例: 「プロキシ」) を追加します。

実例1:プロキシの異なるストレージ

高速RAWストレージに保存された映像について考えてみましょう。

ソース:

/Volumes/RAW_Storage/Projects/2024/BMW_Commercial/Footage/A-Cam/A001C003.mov

構成:

WORKFLOW_PROJECT_FOLDER="Projects" 
WORKFLOW_NEW_BASE = "/Volumes/Proxy_Storage" # Windows: r"X:\Proxy_Storage"
WORKFLOW_REMOVE_LEVELS=1
WORKFLOW_REPLACE_WITH="Proxies"

結果:

/Volumes/Proxy_Storage/Projects/2024/BMW_Commercial/Footage/Proxies/A001C003.mp4

これにより、プロジェクト構造を維持しつつ、プロキシを別の(場合によっては低速・低価格の)ストレージに整理して保存することができます。

実例2:ソース映像の隣にプロキシを配置する

ソース:

/Volumes/Production/2024/Documentary/Camera_Raw/Day01/B001.mov

構成:

WORKFLOW_PROJECT_FOLDER="" 
WORKFLOW_NEW_BASE=""
WORKFLOW_REMOVE_LEVELS=1
WORKFLOW_REPLACE_WITH="Proxies"

結果:

/Volumes/Production/2024/Documentary/Camera_Raw/Proxies/B001.mp4

技術詳細

コーデックのサポート

このスクリプトは、OpenH264エンコーダーを使用するP5の組み込みFFmpegと連携するように設計されています。これにより、編集ソフトウェアとの幅広い互換性、ほとんどのシステムでのハードウェアアクセラレーションによる再生、およびプロキシワークフローに適したファイルサイズが実現されます。

Apple ProResやAvid DNxHDなどのプロフェッショナルコーデックを必要とする施設では、適切なコーデックをサポートする外部FFmpegインストールを構成できます。

libx264を使用したカスタムFFmpeg

libx264をサポートするカスタムFFmpegを設定すると、高度なエンコードオプションが利用可能になります。

  • CRF(定レート係数):固定ビットレートではなく、一定の品質
  • プリセット:「超高速」(高速、大容量ファイル)から「超低速」(低速、最小容量ファイル)まで
  • チューニング:特定のコンテンツ向けに最適化(例:「高速再生のためのfastdecode」)

このスクリプトは、libx264が利用可能かどうかを自動的に検出し、適切なオプションを選択します。

自動クリーンアップ

プレビュープロキシはP5の一時ディレクトリに保存され、サーバー再起動時に自動的に削除されます。ワークフロープロキシは、編集チーム用の永続ファイルとして、設定された場所に保持されます。

デバッグモード

組み込みのデバッグモードは、パスマッピングやエンコーディングの問題のトラブルシューティングに役立ちます。有効にすると、各処理ステップの詳細情報がログファイルに書き込まれます。

aw_platform.pyを編集して、以下を設定します。

DEBUG_MODE = true

または、p5_proxy_generator.py のインポートの後に以下を追加してください。

aw.DEBUG_MODE = True

インストールとセットアップ

注:インストールを進める前に、この記事の末尾にある免責事項をお読みください。

要件

  • P5アーカイブ7.x以降
  • Python 3.6以降
  • P5に内蔵されているFFmpeg(P5に付属)またはカスタムFFmpegインストール

macOS/Linuxの場合

ステップ1:スクリプトディレクトリを作成します。

sudo mkdir -p /usr/local/aw/scripts

ステップ2:両方のスクリプトをこのディレクトリにコピーします。

sudo cp aw_platform.py p5_proxy_generator.py /usr/local/aw/scripts/

Windowsの場合

ステップ1:スクリプトディレクトリが存在しない場合は作成します。

mkdir "C:\Program Files\ARCHIWARE\Data_Lifecycle_Management_Suite\scripts"

ステップ2:aw_platform.pyとp5_proxy_generator.pyの両方をこのディレクトリにコピーします。

P5ブラウザで

ステップ3:アーカイブプランを開き、「プレビュー」セクションに移動します。プレビュージェネレーターの一覧の下にある「新規」をクリックし、ドロップダウンメニューから「カスタムスクリプトを追加」を選択します。相対パスを入力してスクリプトを割り当てます。

Windows:

python scripts/p5_proxy_generator.py

P5はデスクトップで使用しているユーザーとは異なるユーザーでWindowsサービスとして実行されるため、Pythonが「パス」に含まれておらず、P5によって見つからない可能性があります。Python実行ファイルへの完全なパスは、次のように指定できます。

/C/Users/Administrator/AppData/Local/Programs/Python/Python314/python.exe scripts/p5_proxy_generator.py

macOS/Linux:

python3 scripts/p5_proxy_generator.py

ステップ4:要件に合わせてp5_proxy_generator.pyを編集します。

  • .mov
  • .mp4
  • .mxf
  • .avi

構成

ステップ5:要件に合わせてp5_proxy_generator.pyを編集します。

  • プレビュープロキシとワークフロープロキシの品質パラメータを設定する
  • ストレージインフラストラクチャのパスマッピングを構成する
  • 必要に応じてP5プレビューとワークフローストレージを有効/無効にします。
  • オプション:高度なエンコードオプション用にカスタムFFmpegを設定する

テスト

ステップ6:いくつかのテストファイルをアーカイブして検証します。

  • P5ブラウザでプレビューが正しく表示されます
  • ワークフロープロキシは想定された場所に作成されます
  • ログファイルには処理が正常に完了したことが示されています(/usr/local/aw/log/proxy_generator.log を確認してください)。
    • macOS/Linux : /usr/local/aw/temp/proxy_generator.log
    • Windows : C:\Program Files\ARCHIWARE\Data_Lifecycle_Management_Suite\temp\proxy_generator.log

手動テスト

P5で使用する前に、コマンドラインからスクリプトをテストできます。

macOS/Linux:

cd /usr/local/aw 
python3 scripts/p5_proxy_generator.py "/path/to/test/video.mp4"

Windows:

cd "C:\Program Files\ARCHIWARE\Data_Lifecycle_Management_Suite" 
python scripts\p5_proxy_generator.py "X:\path\to\test\video.mp4"

ベストプラクティス

保管に関する考慮事項

ワークフロープロキシは、編集システムからアクセス可能なストレージに配置してください。プロキシのビットレートを選択する際は、ネットワーク帯域幅を考慮してください。頻繁にアクセスするプロキシには、より高速なストレージを使用してください。

品質設定

プロキシの解像度をオフライン編集の解像度に合わせてください。4Kプロジェクトの場合、通常は1080pまたは720pのプロキシで十分です。ビットレートが高いほどスクラブ性能は向上しますが、ストレージ容量の必要量が増加します。

パス構成

プロジェクト間で一貫したフォルダ構造を維持してください。パスマッピング機能を使用して、プロキシとオリジナルメディアを分離してください。プロキシとカメラオリジナル用に別々のストレージボリュームを使用することを検討してください。

結論

アーカイブワークフローの一環としてプロキシ生成を自動化することで、手作業の手順を排除し、一貫性を確保し、アーカイブシステムと本番システム間のギャップを埋めることができます。P5 Archiveのカスタムプレビューコンバーター機能は、適切に設計されたスクリプトと組み合わせることで、複雑な複数ステップのプロセスをシームレスな自動化ワークフローへと変革します。

ここで紹介するプロキシ生成スクリプトは、シンプルなプレビュー専用設定から、インテリジェントなパスマッピングを備えた高度なデュアル出力構成まで、さまざまな制作シナリオに対応できる柔軟性を備えています。プロキシ生成をアーカイブワークフローに統合することで、メディア施設は効率性を向上させ、エラーを削減し、編集者が必要なプロキシファイルを必要な場所に常に確実に配置できるようになります。

GitHubでスクリプトにアクセスしてください


免責事項:本スクリプトは、明示的または黙示的な保証を一切伴わず、「現状のまま」提供されます。Archiwareは、機能性、完全性、または特定の目的への適合性に関して一切の保証を行いません。使用は自己責任で行ってください。Archiwareは、本スクリプトの使用に起因する直接的または間接的な損害、データ損失、その他の障害について一切責任を負いません。

サポートこのスクリプトはFFmpegやPythonなどの外部コンポーネントに依存しており、その範囲は弊社のソフトウェアおよび責任範囲外であるため、使用に関する技術サポートは提供できません。ただし、フィードバックや改善のご提案は歓迎いたします。support@archiware.comまでご連絡ください。

本番環境で使用する前に、テスト環境でスクリプトを十分にテストすることをお勧めします。

Automating Proxy Generation for Media Workflows with P5 Archive - Archiware Blog
Introduction In modern media production, working with high-resolution footage has become the standard. Whether it’s 4K, ...