開発者向けドキュメント

コマンドラインとヘッドレス書き出し

スクリプトからプレーヤーを起動し、レンダーファームやパイプラインのフックで、ウィンドウなしにフレームやムービーを書き出します。

プログラムは、Windows では BernardReview.exe(C:\Program Files\Bernard Review\bin\)、Linux では bernard-review です。以下の例では BernardReview と書いています。お使いのインストール先のパスに置き換えてください。

プレーヤーを起動する

BernardReview <media or .bpl> [<media> ...] [--video <file>] [--frame N] [--ipc-port N]
  • パスだけ、または --video で指定したパスは、起動時に開かれます。複数のパスを指定すると、順番にプレイリストに追加されます。コマンドラインで指定したメディアファイルは、開いた時点ですぐに再生されます。ファイルの関連付けや Open with がクリップをプレーヤーに渡すのは、この仕組みによります。
  • --frame N は、最初のクリップの位置 N に再生ヘッドを置きます。0 から数えます(seek コマンドと同じです)。
  • --ipc-port N は、オートメーション用ポートを 5556 ではなく N で待ち受けさせます。1 台のマシンで 2 つのプレーヤーを動かすには、異なる 2 つのポートを使う必要があります。
  • オプションだけ(--ipc-port)を指定した場合、プレーヤーは一時停止の状態で起動します。
  • そのユーザーのプレーヤーがすでに起動している場合、ファイルは 2 つ目のプレーヤーを開かずに、そのプレーヤーへ送られます。ただし --ipc-port または --export を指定した場合と、環境設定で Open files in the running player のチェックを外している場合は除きます。そのため、自分専用のプレーヤーを操作するスクリプトは、--ipc-port を付けて起動してください。

起動後のプレーヤーを操作する方法は、Python API と IPCを参照してください。

ウィンドウなしの書き出し

--export は、ウィンドウを開かずに書き出しを実行して終了します。3 つの形式があります。

プリセットにオプションを重ねる形式:

BernardReview --export --preset dailies_prores_lt \
  --source "D:/shots/SQ010_SH010_ANIM_v002.mov" \
  --output "D:/dailies/SQ010_SH010_ANIM_v002.mov" \
  --cc "exposure=0.5" --display-space rec709 \
  --burn-in "tl={clip} {version};bl={frame} {timecode};br={date}"

複数のソース(<clip> により、それぞれ別のファイルに出力されます):

BernardReview --export --preset jpg_review \
  --source A001_C001.R3D --source A001_C002.R3D \
  --output "D:/stills/<clip>/" --resize 1920x0 --chroma 444

JSON のジョブファイル(export コマンドと同じフィールドを持ちます。サンプルは api/export_examples/ にあります):

BernardReview --export job.json

--format を指定しない場合は、出力の拡張子からフォーマットが決まります。dailies.mov、shot.####.dpx などです。連番の場合、出力は #### のパターンまたはフォルダーです。

オプション

オプション値
--preset NAMEplates_exr_half_zip, plates_exr_float_piz, dpx_10bit, tiff_16bit_viewer, jpg_review, dailies_prores_lt, dailies_dnxhr_sq, master_prores_hq, master_prores_4444, master_dnxhr_444, client_h264, client_h265, nvfx_review, nvfx_lossless、またはスタジオのプリセット
--source PATH(複数指定可)、--output または -o入力と出力。出力では <clip>、<version>、<recipient> が使えます
--formatexr, dpx, tiff, jpg, png, nvfx (NOVA), mov, mp4
--codecprores_proxy, prores_lt, prores_422, prores_hq, prores_4444, dnxhr_lb, dnxhr_sq, dnxhr_hq, dnxhr_hqx, dnxhr_444, h264, h265, mjpeg
--chroma, --crf, --bitrate, --quality, --bit-depth, --compression品質と圧縮
--audiopcm, aac, none
--fps, --in, --out, --step, --frame-offset Nフレームレート、範囲(位置は 0 から)、焼き込む番号のオフセット
--start-number, --padding出力する連番の番号付け
--resize WxH, --proxy-scale出力サイズ(0 ならアスペクト比を維持)、デコード解像度
--colorsource(デコードしたままのピクセル)または custom(--cc の値)
--cc "key=value,..."exposure, gamma, contrast, brightness, saturation, hue, r, g, b, temp, tint...
--input-space, --display-spaceたとえば acescg, srgb, logc4、および rec709, p3, rec2020, aces2
--layerマルチレイヤー EXR のパス
--burn-in ["layout"], --no-burn-inバーンイン:tl, tc, tr, bl, bc, br を ; で区切る
--watermark, --watermark-text, --watermark-position, --watermark-opacity, --watermark-size, --no-watermarkウォーターマーク(MOV、MP4、JPEG のみ)
--recipient NAME, --studio NAME{recipient}、{studio}、<recipient> を埋める
--hardware, --no-hardware, --smart-tier, --no-smart-tierグラフィックスカードでデコード。出力が必要とする解像度でデコード
--annotations, --no-annotations描画を平坦化する(後述)

--no- で始まるオプションと、その肯定形のオプションは、プリセットやジョブファイルの設定よりも優先されます。

レシピ

BernardReview --export --recipe evening_dailies.json \
  --source SQ010_SH010_COMP_v003.mov --source SQ010_SH020_COMP_v007.mov \
  --recipient "Client A"

そのほかはすべてレシピが定めます。各ソースに対して各出力が、順に作成されます。指定できるのは --recipe、--source、--recipient、--studio、--session だけです。

スクリプトが受け取るもの

  • 書き出し中は export: frame N/M の行が出力され、最後にジョブの概要を示す JSON が 1 行出力されます(出力、使用したエンコーダー、複数のソースまたはレシピの場合は jobs)。
  • 終了コード:すべて成功したら 0、コマンドラインまたはレシピが不正なら 1、書き出しが失敗したら 2 です。

ファームに組み込む前に

  • ビデオのソースは、書き出しの前に 8 ビットにデコードされます。RAW と EXR は精度を保ちます。
  • ウィンドウがないと、viewer と clip のカラーは意味を持ちません。--cc の値を使った custom になります。
  • 描画はプレーヤーのプレイリストから取得されます。ウィンドウがない状態では、平坦化する描画がありません。描画を書き出すには、起動中のプレーヤーから書き出しを実行してください(annotations を指定した export コマンド。Python API と IPCを参照)。
  • H.264 と H.265 には、マシンにハードウェアまたはシステムのエンコーダーが必要です(Windows では NVENC、Quick Sync、AMF、Media Foundation、Linux では NVENC、VA-API、Quick Sync)。グラフィックスカードのないファームのマシンでは、ProRes または DNxHR を書き出すことになります。
  • ベクターの SWF は Ruffle のエクスポーターでレンダリングされ、これにはグラフィックスカードが必要です。ファームでは、環境変数 BERNARD_RUFFLE_EXPORTER でそのパスを指定します。
  • NOVA:--format nvfx に、--compression htj2k または wavelet(非可逆、--quality)、lossless または raw、そして --bit-depth 16 または 32 を組み合わせます。
  • ウォーターマークは、プレート用のフォーマット(EXR、DPX、TIFF、PNG)と NOVA では使えません。宛先は、概要にもログにも現れません。概要とログには、その代わりに <recipient> と書かれます。

さらに詳しくは、完全版マニュアルのパート 8.6 〜 8.8 と 11 を参照してください(プレーヤーの Help > User Guide)。