fix(recorders): pre-create live asset with .mxf key when growing_enabled (was .mov, broke proxy lookup -> error)

This commit is contained in:
Zac Gaetano 2026-06-02 22:10:30 +00:00
parent 228f68ab6d
commit a8b59f087d

View file

@ -521,9 +521,17 @@ router.post('/:id/start', requireRecorderEdit, async (req, res, next) => {
// live-asset: create the asset row right now (status='live') so the // live-asset: create the asset row right now (status='live') so the
// library shows the recording while it is happening. // library shows the recording while it is happening.
//
// CRITICAL: the original_s3_key extension MUST match what the capture
// sidecar actually produces, or the post-stop proxy/promotion worker
// downloads a nonexistent object and the asset goes to 'error'.
// - growing-files ON → capture-manager writes a growing OP1a/RDD-9 MXF
// (GROWING_EXT = 'mxf'), uploaded by the promotion worker. So the key
// MUST be .mxf regardless of the recorder's configured container.
// - growing-files OFF → ffmpeg muxes the configured container (mov/mp4…).
const assetIdLive = uuidv4(); const assetIdLive = uuidv4();
try { try {
const ext = recorder.recording_container || 'mov'; const ext = recorder.growing_enabled ? 'mxf' : (recorder.recording_container || 'mov');
await pool.query( await pool.query(
`INSERT INTO assets ( `INSERT INTO assets (
id, project_id, bin_id, filename, display_name, status, media_type, id, project_id, bin_id, filename, display_name, status, media_type,