<p>No, the <code>nlmeans_opencl</code> filter supports <code>yuv420p</code>, <code>yuv444p</code> and <code>gbrp</code>, all 8-bit planar formats.</p>

CC BY-SA 4.0
2021-03-21T04:55:54.013Z
2021-03-21T04:55:54.013Z
Gyan
<p>So far I have only managed to run <code>nlmeans_opencl</code> filter with the following settings:</p>
<pre><code>ffmpeg -init_hw_device opencl=gpu:0.0 -filter_hw_device gpu -i 10bit_input.ts \
       -vf &quot;hwupload,nlmeans_opencl,hwdownload,format=yuv420p&quot; -an output.mp4
</code></pre>
<p>Pretty much every other pixel format I set to <code>format=</code> fails one way or another. For example</p>
<p>My source is <code>yuv420p10le</code>, so that is my first choice, but I get this error:</p>
<pre><code>[hwdownload @ 0x55ab32e60c40] Invalid output format yuv420p10le for hwframe download
[Parsed_hwdownload_2 @ 0x55ab32e61c80] Failed to configure output pad on Parsed_hwdownload_2
Error reinitializing filters!
Failed to inject frame into filter network: Invalid argument
Error while processing the decoded data for stream #0:0
Conversion failed!
</code></pre>
<p>With <code>yuv420p16le</code>:</p>
<pre><code>[Parsed_nlmeans_opencl_1 @ 0x563d97d93600] input format yuv420p16le not supported
Error while filtering: Invalid argument
Failed to inject frame into filter network: Invalid argument
Error while processing the decoded data for stream #0:0
Conversion failed!
</code></pre>
<p>With no <code>format=...</code> at all:</p>
<pre><code>[hwdownload @ 0x5610a4653380] Invalid output format gray for hwframe download.
[Parsed_hwdownload_2 @ 0x5610a472a400] Failed to configure output pad on Parsed_hwdownload_2
Error reinitializing filters!
Failed to inject frame into filter network: Invalid argument
Error while processing the decoded data for stream #0:0
Conversion failed!
</code></pre>
<p>So, is there any way to make this work, without dropping component precision to 8 bits?</p>

<ffmpeg>
Is there a way to use nlmeans_opencl filter with a 10 bits source?
lvella
# Is there a way to use nlmeans_opencl filter with a 10 bits source?

(Asked by: username_0 on 2021-03-20)

So far I have only managed to run nlmeans_opencl filter with the following settings:
ffmpeg -init_hw_device opencl=gpu:0.0 -filter_hw_device gpu -i 10bit_input.ts \
       -vf "hwupload,nlmeans_opencl,hwdownload,format=yuv420p" -an output.mp4

Pretty much every other pixel format I set to format= fails one way or another. For example
My source is yuv420p10le, so that is my first choice, but I get this error:
[hwdownload @ 0x55ab32e60c40] Invalid output format yuv420p10le for hwframe download
[Parsed_hwdownload_2 @ 0x55ab32e61c80] Failed to configure output pad on Parsed_hwdownload_2
Error reinitializing filters!
Failed to inject frame into filter network: Invalid argument
Error while processing the decoded data for stream #0:0
Conversion failed!

With yuv420p16le:
[Parsed_nlmeans_opencl_1 @ 0x563d97d93600] input format yuv420p16le not supported
Error while filtering: Invalid argument
Failed to inject frame into filter network: Invalid argument
Error while processing the decoded data for stream #0:0
Conversion failed!

With no format=... at all:
[hwdownload @ 0x5610a4653380] Invalid output format gray for hwframe download.
[Parsed_hwdownload_2 @ 0x5610a472a400] Failed to configure output pad on Parsed_hwdownload_2
Error reinitializing filters!
Failed to inject frame into filter network: Invalid argument
Error while processing the decoded data for stream #0:0
Conversion failed!

So, is there any way to make this work, without dropping component precision to 8 bits?

**Tags:** ffmpeg


---

## 1 answers

### Answer by username_1 on 2021-03-21. Score: 1 | Accepted answer

No, the `nlmeans_opencl` filter supports `yuv420p`, `yuv444p` and `gbrp`, all 8-bit planar formats.


---

