DOCUMENTACIÓN PARA DESARROLLADORES

Línea de comandos y exportación sin ventana

Inicie el reproductor desde un script y exporte fotogramas o películas sin ventana, en una granja de render o en un hook del pipeline.

El programa es BernardReview.exe en Windows (C:\Program Files\Bernard Review\bin\) y bernard-review en Linux. Los ejemplos siguientes escriben BernardReview; sustitúyalo por la ruta de su instalación.

Iniciar el reproductor

BernardReview <media or .bpl> [<media> ...] [--video <file>] [--frame N] [--ipc-port N]
  • Una ruta sola, o una indicada con --video, se abre al arrancar; varias rutas se añaden a la playlist por orden. Un archivo de medio en la línea de comandos se reproduce en cuanto se abre: así es como una asociación de archivos u Abrir con entrega un clip al reproductor.
  • --frame N coloca el cabezal de reproducción en la posición N del primer clip, contada desde 0 (como el comando seek).
  • --ipc-port N hace que el puerto de automatización escuche en N en lugar de 5556. Dos reproductores en una misma máquina deben usar dos puertos distintos.
  • Con solo opciones (--ipc-port), el reproductor arranca en pausa.
  • Si ya hay un reproductor del usuario en ejecución, los archivos se le envían a él en lugar de abrir un segundo reproductor, salvo con --ipc-port o --export, o cuando Open files in the running player está desmarcada en las preferencias. Un script que deba controlar su propio reproductor lo inicia, por tanto, con --ipc-port.

Para controlar el reproductor una vez en marcha, véase API de Python e IPC.

Exportar sin ventana

--export ejecuta una exportación sin abrir ninguna ventana y después termina. Existe de tres formas.

Opciones superpuestas a un preajuste:

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}"

Varias fuentes, cada una en su propio archivo gracias a <clip>:

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

Un archivo de trabajo JSON, con los mismos campos que el comando export (ejemplos en api/export_examples/):

BernardReview --export job.json

Sin --format, la extensión de la salida indica el formato: dailies.mov, shot.####.dpx. Para una secuencia, la salida es un patrón #### o una carpeta.

Las opciones

OpciónValores
--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, o un preajuste del estudio
--source PATH (repetible), --output o -oEntradas y salida; <clip>, <version> y <recipient> en la salida
--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, --compressionCalidad y compresión
--audiopcm, aac, none
--fps, --in, --out, --step, --frame-offset NFrecuencia de imagen, rango (posiciones desde 0), desplazamiento de los números incrustados
--start-number, --paddingNumeración de una secuencia de salida
--resize WxH, --proxy-scaleTamaño de salida (0 mantiene la proporción), resolución de decodificación
--colorsource (píxeles tal como se decodifican) o custom (los valores de --cc)
--cc "key=value,..."exposure, gamma, contrast, brightness, saturation, hue, r, g, b, temp, tint...
--input-space, --display-spacePor ejemplo acescg, srgb, logc4; rec709, p3, rec2020, aces2
--layerPase de un EXR multicapa
--burn-in ["layout"], --no-burn-inIncrustación: tl, tc, tr, bl, bc, br separadas por ;
--watermark, --watermark-text, --watermark-position, --watermark-opacity, --watermark-size, --no-watermarkMarca de agua (solo MOV, MP4 y JPEG)
--recipient NAME, --studio NAMERellenan {recipient}, {studio} y <recipient>
--hardware, --no-hardware, --smart-tier, --no-smart-tierDecodificar en la tarjeta gráfica; decodificar a la resolución que necesita la salida
--annotations, --no-annotationsAplanar los dibujos (véase más abajo)

Las opciones --no- y sus formas positivas prevalecen sobre lo que fije un preajuste o un archivo de trabajo.

Una receta

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

La receta aporta todo lo demás: cada salida se hace para cada fuente, una tras otra. Solo admite --recipe, --source, --recipient, --studio y --session.

Lo que recibe el script

  • Durante la exportación, líneas export: frame N/M; al final, una última línea JSON que resume el trabajo (salida, codificador usado y jobs para varias fuentes o una receta).
  • Código de salida: 0 cuando todo ha ido bien, 1 para una línea de comandos o una receta incorrectas, 2 cuando ha fallado una exportación.

Antes de integrarlo en una granja

  • Una fuente de vídeo se decodifica a 8 bits antes de exportar; el RAW y el EXR conservan su precisión.
  • El color viewer y clip no significa nada sin ventana: pasan a ser custom, con los valores de --cc.
  • Los dibujos proceden de la playlist del reproductor: sin ventana no hay ninguno que aplanar. Para exportar dibujos, ejecute la exportación desde un reproductor abierto (el comando export con annotations, véase API de Python e IPC).
  • H.264 y H.265 necesitan un codificador por hardware o del sistema en la máquina (NVENC, Quick Sync, AMF, Media Foundation en Windows; NVENC, VA-API, Quick Sync en Linux). Una máquina de la granja sin tarjeta gráfica exportará ProRes o DNxHR.
  • Un SWF vectorial lo renderiza el exportador de Ruffle, que necesita una tarjeta gráfica; la variable BERNARD_RUFFLE_EXPORTER da su ruta en una granja.
  • NOVA: --format nvfx con --compression htj2k o wavelet (con pérdida, --quality), lossless o raw, y --bit-depth 16 o 32.
  • La marca de agua rechaza los formatos de plates (EXR, DPX, TIFF, PNG) y NOVA. El destinatario no aparece ni en el resumen ni en el registro: el resumen y el registro escriben <recipient> en su lugar.

Para ir más lejos: el manual completo, partes 8.6 a 8.8 y 11 (Help > User Guide en el reproductor).