FFMPEG hevc_nvenc "No NVENC capable devices found" with NVidia GTX950M
Asked Answered
H

1

9

I get the error "No NVENC capable devices found" when trying a simple encoding like this, even skipping audio to make sure it's not an audio problem:

ffmpeg.exe -i input.mp4 -c:v hevc_nvenc -an out.mp4

I also tried with more details, like setting the pixel format, the preset, the rate-control, the format.

On the documentation page there: https://trac.ffmpeg.org/wiki/HWAccelIntro it says that if we get this error we should check for the pixel format. The video has yuv420p here and even specifying the format results in the same error.

i also checked the NVidia supported cards and it says GeForce, but no details about the models: https://developer.nvidia.com/video-encode-decode-gpu-support-matrix#Encoder

I tried h264_nvenc and it works perfectly however, the problem is only with hevc_nvenc Has anyone encountered this problem?

Complete console output:

[h264 @ 0000000002534560] Reinit context to 1280x544, pix_fmt: yuv420p
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'input.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 1
    compatible_brands: isom
    creation_time   : 2014-05-23T13:04:15.000000Z
  Duration: 01:54:03.95, start: 0.000000, bitrate: 3193 kb/s
    Stream #0:0(und): Video: h264 (High), 1 reference frame (avc1 / 0x31637661), yuv420p(left), 1280x544 [SAR 1:1 DAR 40:17], 2750 kb/s, 23.98 fps, 23.98 tbr, 24k tbn, 47.95 tbc (default)
    Metadata:
      creation_time   : 2014-05-23T11:25:27.000000Z
    Stream #0:1(spa): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, 5.1, fltp, 439 kb/s (default)
    Metadata:
      creation_time   : 2014-05-23T12:56:43.000000Z
Stream mapping:
  Stream #0:0 -> #0:0 (h264 (native) -> hevc (hevc_nvenc))
Press [q] to stop, [?] for help
[h264 @ 000000000260ea40] Reinit context to 1280x544, pix_fmt: yuv420p
[graph 0 input from stream 0:0 @ 0000000003857ec0] w:1280 h:544 pixfmt:yuv420p tb:1/24000 fr:24000/1001 sar:1/1 sws_param:flags=2
[hevc_nvenc @ 00000000038574e0] Loaded Nvenc version 8.0
[hevc_nvenc @ 00000000038574e0] Nvenc initialized successfully
[hevc_nvenc @ 00000000038574e0] 1 CUDA capable devices found
[hevc_nvenc @ 00000000038574e0] [ GPU #0 - < GeForce GTX 950M > has Compute SM 5.0 ]
[hevc_nvenc @ 00000000038574e0] Codec not supported
[hevc_nvenc @ 00000000038574e0] No NVENC capable devices found
[hevc_nvenc @ 00000000038574e0] Nvenc unloaded
Error initializing output stream 0:0 -- Error while opening encoder for output stream #0:0 - maybe incorrect parameters such as bit_rate, rate, width or height
Conversion failed!
Heighten answered 13/5, 2017 at 2:49 Comment(0)
I
13

950M doesn't support h265 codec indeed.

From nvidia nvenc page or the detailed support matrix, we can learn that h265/hevc is supported only from 2nd generation maxwell GPU.

Also check the maxwell wiki page and list of NVIDIA GPU. You can see that 950M's code name is GM107 which is a 1st generation maxwell architecture, that means no h265 support. Sorry, you have to fall back to h264.

Innes answered 13/5, 2017 at 5:29 Comment(4)
Oh wow! Extra thanks for all the links on how you found the answer, this is extra useful friend! And I almost bought the computer with the GTX960 that supported HEVC... Wish I had seen this beforeHeighten
Mine is GT 750M so it doesn't support x265_NVENC either I guess, but is there a work around to this ? I'm trying to encode a small 200 Mb file.Isom
@Isom No, there is no hardware supporting for this. Basically you need a hardware decoder on GPU, which is an embedded independent unit. If you need a faster encoder, try Intel QSV, or cuda solution if any.Innes
@Innes Ah I tried converting a ~250 Mb .mkv video with ImToo Video converter Ultimate (after enabling CUDA and all 4 CPU cores) into h.265 the end result was kind of okay while playing without a pause, but the problem is that the video file is not seek-able the video gets badly disrupted. Guess we do need better hardware for perfect conversion to x265.Isom

© 2022 - 2024 — McMap. All rights reserved.