dragonflight/services/worker
Claude fcf4c8bbe7 fix(worker): conform — lock fps + sample rate in concat filter graph
After the demuxer → filter switch, concat still failed with
  [fc#0] Error sending frames to consumers: Invalid argument
on Job 8. The filter graph normalised pixels (scale+pad+yuv420p) but
left the time-domain axes mixed:

  segment-1: 23.98 fps video, 44100 Hz audio
  segment-2: 60    fps video, 48000 Hz audio
  segment-3: …

ffmpeg 8's concat filter requires identical frame rate + audio sample
rate + channel layout across inputs. Force them on each leg:

  video: fps=<seqFps>, setpts=PTS-STARTPTS
  audio: aresample=48000,
         aformat=channel_layouts=stereo:sample_fmts=fltp,
         asetpts=PTS-STARTPTS

setpts/asetpts re-zero each input's clock so concat's per-input PTS
window resets cleanly between segments.

Target fps comes from the sequence's frame_rate (rounded) — same axis
the sequence editor stores. Sample rate is pinned to 48000 (broadcast
standard) so the AAC encode is consistent.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-28 15:21:23 -04:00
..
src fix(worker): conform — lock fps + sample rate in concat filter graph 2026-05-28 15:21:23 -04:00
Dockerfile feat(ingest): YouTube importer — paste link, asset travels normal pipeline 2026-05-23 16:05:41 -04:00
Dockerfile.gpu feat(ingest): YouTube importer — paste link, asset travels normal pipeline 2026-05-23 16:05:41 -04:00
package-lock.json feat: implement advanced features (conform, auto-relink, GUI redesign, docs, tests) 2026-05-24 13:19:24 -04:00
package.json feat: implement advanced features (conform, auto-relink, GUI redesign, docs, tests) 2026-05-24 13:19:24 -04:00