Intentando que esto funcione. Tengo una tarjeta Quadro P1000, todas las verificaciones de cuda pasan, pero en la ejecución falla y se cambia a software. Adjunto el archivo de registro, aquí está el error que encuentro:
En realidad, el error que devuelven los controladores gráficos está relacionado con la decodificación y no con la codificación. Aún está utilizando el codificador de hardware:
La solicitud de decodificador de hardware de ffmpeg está siendo rechazada por la tarjeta gráfica, por lo que falla. Podría haber varias razones, quizás no identificó correctamente la secuencia de video para usar el códec adecuado o quizás no admite la decodificación de video mpeg2 para esa configuración de secuencia específica.
Es posible que no veas una gran mejora en el rendimiento, ya que tu video original es mpeg2 y la decodificación de mpeg2 es bastante eficiente en software; podría simplemente tomar más tiempo copiar todos los datos de video a la memoria gráfica, decodificarlo y devolverlo a ffmpeg, y luego devolverlo a la tarjeta de video para su codificación. Por lo general, h.264 y h.265 verán la mayor mejora en la decodificación por hardware.
Si aún así quieres probarlo, puedes intentar agregar esto a la línea ffmpeg-general de tu perfil; obliga a la tarjeta a usar un decodificador de hardware específico:
-c:v mpeg2_cuvid
Este debería ser el último parámetro en la línea ffmpeg-general.
Gracias por echarle un vistazo. Recientemente tuve que reconstruir mi servidor y, al reinstalar y reconstruir mis perfiles de MCE, desmarqué “seleccionar el mejor audio” y marqué “audio multicanal”.
No puedo explicarlo, pero desde entonces no he tenido el problema.
Lo comparto por si alguien más está teniendo un problema similar.
O puede que simplemente haya tenido un controlador corrupto o algo así y, al reconstruir el servidor, se solucionó.
[h264 @ 0x5641628791c0] decoder->cvdl->cuvidCreateDecoder(&decoder->decoder, params) failed → CUDA_ERROR_INVALID_VALUE: invalid argument
[h264 @ 0x5641628791c0] Using more than 32 (37) decode surfaces might cause nvdec to fail.
[h264 @ 0x5641628791c0] Try lowering the amount of threads. Using 16 right now.
[h264 @ 0x5641628791c0] Failed setup for format cuda: hwaccel initialisation returned error.
¿Por qué estás usando hwaccel para la decodificación? Lo más probable es que solo ralentice tu conversión debido a la sobrecarga de transferencia de bus y memoria.
Tengo 30 canales en vivo funcionando al mismo tiempo, el servidor tiene 2 GPUs Quadro P5000, estoy usando hwaccel para decodificar para evitar sobrecargar los CPUs.
Probablemente lo harás más lento y consumirás más CPU al habilitar la decodificación por las razones mencionadas arriba cuando uses otras funciones del software (como codificación de audio, filtros, etc.). Intenta no usarlo.