开发者文档

命令行与无界面导出

从脚本启动播放器,并在渲染农场或流水线钩子中,不开窗口导出帧或视频。

程序在 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 让自动化端口监听 N,而不是 5556。同一台机器上的两个播放器必须使用不同的端口。
  • 只带选项(--ipc-port)时,播放器以暂停状态启动。
  • 如果该用户的某个播放器已在运行,文件会发送给它,而不是打开第二个播放器;但使用 --ipc-port 或 --export 时,或在偏好设置中取消勾选 Open files in the running player 时除外。因此,必须操控自己播放器的脚本,应当用 --ipc-port 启动它。

播放器运行之后如何操控它,参见 Python API 与 IPC。

无界面导出

--export 不打开任何窗口就运行一次导出,然后退出。它有三种形式。

叠加在预设上的选项:

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 总结该任务(输出、所用编码器,以及多个来源或方案时的 jobs)。
  • 退出码:全部成功时为 0,命令行或方案有误时为 1,导出失败时为 2。

把它接入农场之前

  • 视频来源在导出前会被解码为 8 位;RAW 和 EXR 保持其精度。
  • viewer 和 clip 色彩在没有窗口时没有意义:它们会变成 custom,使用 --cc 的值。
  • 绘制内容来自播放器的播放列表:没有窗口就没有可合并的内容。若要导出绘制内容,请从已打开的播放器中运行导出(带 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)。