fix(capture): connect deltacast growing-master filtergraph (split output 1 unconnected)
The growing-master ffmpeg orchestrator declared split=2[vhi][vlo] but only consumed [vlo] inside the `if (hlsDir)` block. For deltacast sources the caller passed hlsDir=null (the ternary only matched sourceType==='sdi'), so [vlo] was left unconnected → ffmpeg aborted with "Filter 'split' has output 1 (vlo) unconnected" / "Error binding filtergraph inputs/outputs" → 0 frames → no HLS → "playback failed" on all deltacast previews. Fix: - Pass sdiHlsDir for deltacast as well as sdi (deltacast also produces the 2nd-output HLS preview from the single SDI read). - Make the orchestrator filter_complex conditional: split=2[vhi][vlo] when an HLS dir is present, split=1[vhi] (master only) otherwise, so no split output is ever orphaned regardless of source type. Restores deltacast growing-master capture (master MXF + HLS preview). No poster tap (the incomplete recorder-thumbnails poster on the deploy node added an mjpeg output that destabilised the shared ffmpeg; tracked separately on the feature/recorder-thumbnails branch). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
parent
63654ea0ed
commit
9adcae0329
1 changed files with 9 additions and 2 deletions
|
|
@ -689,9 +689,16 @@ class CaptureManager {
|
|||
// (which would otherwise abort the video/audio outputs and produce nothing).
|
||||
const ff = ['ffmpeg', '-y', '-hide_banner', '-loglevel', 'warning', '-stats'];
|
||||
// SDI input is interlaced; yadif then split into the master + preview taps.
|
||||
// When there's an HLS dir we split the decode into the master ([vhi]) and
|
||||
// the H.264 preview ([vlo]); with no HLS dir, split=1 (master only) so no
|
||||
// split output is ever left unconnected (deltacast growing master had no
|
||||
// HLS dir, leaving [vlo] orphaned -> 'split output 1 (vlo) unconnected').
|
||||
const filterComplex = hlsDir
|
||||
? '[0:v]yadif=mode=1:deint=1,split=2[vhi][vlo]'
|
||||
: '[0:v]yadif=mode=1:deint=1,split=1[vhi]';
|
||||
const ffArgs = [
|
||||
...inputArgs,
|
||||
'-filter_complex', '[0:v]yadif=mode=1:deint=1,split=2[vhi][vlo]',
|
||||
'-filter_complex', filterComplex,
|
||||
// (a) MPEG-2 422 elementary video → "$VF"
|
||||
'-map', '[vhi]',
|
||||
...GROWING_VIDEO_ELEMENTARY_ARGS,
|
||||
|
|
@ -982,7 +989,7 @@ exit "$BMXRC"
|
|||
framerate,
|
||||
audioChannels,
|
||||
outPath: growingPath,
|
||||
hlsDir: (sourceType === 'sdi') ? sdiHlsDir : null,
|
||||
hlsDir: (sourceType === 'sdi' || sourceType === 'deltacast') ? sdiHlsDir : null,
|
||||
videoCodec,
|
||||
audioMap,
|
||||
});
|
||||
|
|
|
|||
Loading…
Reference in a new issue