Change #272105
| Category | ffmpeg |
| Changed by | stevxiao <steven.xiao@amd.com> |
| Changed at | Mon 22 Jun 2026 14:06:40 |
| Repository | https://git.ffmpeg.org/ffmpeg.git |
| Project | ffmpeg |
| Branch | master |
| Revision | a2856b3c3084ea45ca5b94a5daded25f85c41dac |
Comments
avfilter/dnn: add ONNX Runtime backend with GPU execution provider support This patch adds ONNX Runtime as a new DNN backend for FFmpeg's dnn_processing filter, enabling hardware-accelerated neural network inference on multiple GPU and NPU platforms. Execution Providers Supported: - CPU execution provider (default) - CUDA execution provider (NVIDIA GPUs) - DirectML execution provider (AMD/Intel/NVIDIA GPUs on Windows) - VitisAI execution provider (AMD Ryzen AI NPU) The options for dnn_processing with dnn_backend=onnx: - device: execution provider — cpu, cuda, dml, or vitisai (default: cpu) - device_id: GPU device index (default: 0) - threads_per_operation: inference thread count for CPU EP (default: 0, auto) - input: input tensor name. When omitted the backend resolves it from loaded session - output: output tensor name. When omitted the backend resolves it from loaded session Example usage: # CPU inference ffmpeg -i input.mp4 -vf "format=rgb24,dnn_processing=dnn_backend=onnx:model=model.onnx:input=image_in:output=image_out" output.mp4 # CUDA GPU inference ffmpeg -i input.mp4 -vf "dnn_processing=dnn_backend=onnx:model=model.onnx:device=cuda:device_id=0" output.mp4 # DirectML GPU inference (Windows) ffmpeg -i input.mp4 -vf "dnn_processing=dnn_backend=onnx:model=model.onnx:device=dml:device_id=0" output.mp4 # VitisAI NPU inference ffmpeg -i input.mp4 -vf "dnn_processing=dnn_backend=onnx:model=model.onnx:device=vitisai" output.mp4 Note: depending on the model, you may need a format filter (e.g. format=rgb24 or format=grayf32) before dnn_processing to convert the frames to the pixel format the model's input tensor expects. Signed-off-by: younengxiao <steven.xiao@amd.com> Reviewed-by: Guo Yejun <yejun.guo@intel.com>
Changed files
- Changelog
- configure
- doc/filters.texi
- doc/general_contents.texi
- libavfilter/dnn/Makefile
- libavfilter/dnn/dnn_backend_onnx.c
- libavfilter/dnn/dnn_interface.c
- libavfilter/dnn_filter_common.c
- libavfilter/dnn_interface.h
- libavfilter/vf_dnn_processing.c