Feature: GPU deinterlace (yadif_cuda/bwdif_cuda) in capture path #165
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Context
SDI capture currently deinterlaces with CPU
yadif(~0.5–1 vCPU/signal). With the master+preview encodes moving to NVENC, deinterlace becomes the remaining per-signal CPU cost.Proposal
Use
yadif_cuda/bwdif_cudaonce frames are on the GPU, keeping the pipeline GPU-resident (decode/upload → deinterlace → encode) and CPU near-idle.Caveat (from design doc §4.1)
The current capture ffmpeg is built without
--enable-cuda-nvcc/--enable-libnpp, which the CUDA filters require. This needs the builder rebased onnvidia/cuda:12.x-devel(the Dockerfile comment already notes this). So this is: (1) rebuild ffmpeg with CUDA filter support, (2) swap the filter when on GPU.Why
Design doc §5 capacity goal — needed to actually hit 8 signals/node; otherwise CPU deinterlace caps the count.