Este artículo es un artículo espejo de traducción automática, por favor haga clic aquí para saltar al artículo original.

Vista: 17009|Respuesta: 4

Usa ffmpeg acelerado por GPU para procesar tareas bajo Windows

[Copiar enlace]
Publicado el 7-11-2019 21:08:29 | | | |
Descarga de ffmpeg

Página oficial de descarga del sitio web:
El inicio de sesión del hipervínculo es visible.
Se recomienda descargar la versión compilada y descargar la página:
El inicio de sesión del hipervínculo es visible.
Generalmente prefiero descargar la última versión (llamada así por la fecha) y, por supuesto, hay una versión estable (llamada así por el número de versión).



Descarga CUDA

CUDA es un controlador que permite a la GPU realizar operaciones relacionadas, porque desarrollamos aplicaciones que no controlan directamente la GPU, sino que operan a través del controlador.
El inicio de sesión del hipervínculo es visible.
Aquí elijo la versión que se muestra a continuación:
Por supuesto, también puedes hacer clic en el enlace de abajo para ir directamente a la configuración cuando la descargué.
El inicio de sesión del hipervínculo es visible.


Después de descargar, recuerda instalarlo, así que no lo presentaré, al fin y al cabo, todos están desarrollando software.

mandar

Comandos de consulta
Comprueba si el ffmpeg descargado soporta cuda, si no lo hace (yo lo descargué), luego descárgalo de nuevo o compilálalo tú mismo.




Comandos de prueba

Convierte el 0.mp4 del directorio actual a 00.mp4
Convierte el 0.mp4 del directorio actual a 00.mp4 y especifica la tasa de frames de salida de 15 (-r 15) y la tasa de bits de 500k (-b 500k).
-hwaccel cuvid: Especifica el uso de aceleración por hardware cuvid
-c:v h264_cuvid: Decodificación de vídeo usando h264_cuvid
-c:v h264_nvenc: Codificación de vídeo con h264_nvenc
-vf scale_npp=1280:-1: Especifica el ancho y la altura del vídeo de salida, ten en cuenta que esto es diferente de la escala -vf=x:x usada para la decodificación suave

Comandos múltiples para tarjetas gráficas

Prueba de eficiencia de transcodificación de GPU
En un servidor con dos CPUs Intel-E5-2630v3 y dos tarjetas gráficas Nvidia Tesla M4, la prueba de transcodificación de vídeo h264 se realizó de la siguiente manera:

Tiempo medio de transcodificación de GPU: 8s
Tiempo medio de transcodificación de la CPU: 25s

Cuando se transcodifica en paralelo, se mejora la eficiencia de la conversión suave de la CPU, y los 32 núcleos están ocupados cuando las tres tareas de transcodificación son paralelas

Tiempo medio de transcodificación de GPU: 8s
Tiempo medio de transcodificación de la CPU: 18s

No es difícil ver que la velocidad de transcodificación de la GPU no aumenta cuando es paralela, lo que indica que una GPU solo puede realizar una tarea de transcodificación a la vez. Entonces, si se insertan varias tarjetas gráficas en el servidor, ¿ffmpeg usará varias GPUs para la transcodificación en paralelo?
Desafortunadamente, la respuesta es no.
FFMPEG no tiene la capacidad de asignar automáticamente tareas de transcodificación a diferentes GPUs, pero tras investigar, se descubrió que la GPU utilizada para la tarea de transcodificación puede especificarse mediante el parámetro -hwaccel_device!
Enviar tareas de transcodificación a diferentes GPUs

Gráficos 0


Tarjeta gráfica1

Ilustrar:

-hwaccel_device N: Especifica una GPU para realizar una tarea de transcodificación, N es un número





Anterior:[Combate práctico] Crea una imagen Docker basada en Nginx
Próximo:Prototipos del logo de 2000
 Propietario| Publicado el 7-11-2019 21:18:35 |
//参数说明
/*
    * -i Archivo Nombre(entrada) Directorio fuente
    * -y Genera nuevos archivos, si se debe forzar sobrescribir archivos existentes
    * -c Especifica el codificador
    * -fs limit_size(entrada) establece el límite del tamaño del archivo, expresado en bytes. No se escriben bloques de bytes adicionales después de superar el límite. El tamaño del archivo de salida es ligeramente mayor que el tamaño solicitado.
    * -s Relación de vídeo 4:3 320x240/640x480/800x600 16:9 1280x720, valor por defecto 'wxh', igual que el tamaño original del vídeo
    * -vframes number (salida) establece el número de frames de vídeo a la salida. Alias: -frames:v
    * -d número de fotogramas (salida) establece el número de fotogramas de datos a la salida. Alias: -frames:d
    * -frames[:stream_specifier] framecount (salida, por stream) deja de escribir en el stream por el número de frames.
    * -bsf[:stream_specifier] bitstream_filters (salida, por flujo) especifica el formato de flujo de archivos de salida,
Por ejemplo, saca un archivo MP4 codificado por h264: ffmpeg -i h264.mp4 -c:v copy -bsf:v h264_mp4toannexb -an out.h264
    * -r 29,97 tasa Zhen (se puede cambiar, asegúrese de que la tasa Zhen no estándar haga que el sonido y la imagen estén desincronizados, así que solo puede ponerse en 15 o 29,97)
    *
    */
 Propietario| Publicado el 8-11-2019 15:07:05 |
ffmpeg.exe -hwaccel_device 1 -hwaccel cuvid -i C:\Users\DELL\Desktop\VideoDemo\VideoDemo\Video A14.mp4 -y C:\Users\DELL\Desktop\VideoDemo\VideoDemo\bin\Debug\A16.avi

https://blog.csdn.net/Tosonw/article/details/90178195


NVCC --versión

CUVID es una biblioteca de decodificación de vídeo basada en CUDA que utiliza CUVID para la decodificación


No se ha conseguido crear un dispositivo Direct3D
Fallo en la creación del dispositivo: -1313558101.

La versión ffmpeg debe corresponder al controlador de la tarjeta gráfica síncrona para permitir correctamente la aceleración por hardware.


Echa un vistazo al códec de aceleración por hardware de NVIDIA:

.\ffmpeg.exe -códecs | SLS NVENC
.\ffmpeg.exe -códecs | SLS Cuvid

El prefijo tiene los siguientes significados:

Significado del prefijo
D….. = Decodificación soportada
. E.... = Codificación soportada
.. V... = Códec de vídeo
.. A... = Códec de audio
.. S... = Códec de subtítulos
… Yo.. = Códec intra solo fotograma
....L. = Compresión con pérdida
….. S = Compresión sin pérdidas



ffmpeg.exe -hwaccel_device 1 -hwaccel cuvid -c:v h264_cuvid -i C:\Users\DELL\Desktop\VideoDemo\VideoDemo\bin\Debug\A14.mp4 -c:v h264_nvenc -y C:\Users\DELL\Desktop\VideoDemo\ VideoDemo\bin\Debug\A16.avi

ffmpeg.exe -hwaccel cuvid -c:v h264_cuvid -i C:\Users\DELL\Desktop\VideoDemo\VideoDemo\bin\Debug\A14.mp4 -c:v h264_nvenc -y C:\Users\DELL\Desktop\VideoDemo\VideoDemo\bin\Debug\ A16.avi


https://developer.nvidia.com/ffmpeg
Publicado el 26-2-2023 12:11:24 |
Pronto:Los autores son baneados o el contenido eliminado se bloquea automáticamente
Publicado el 26-2023-26 12:13:35 |
Pronto:Los autores son baneados o el contenido eliminado se bloquea automáticamente
Renuncia:
Todo el software, materiales de programación o artículos publicados por Code Farmer Network son únicamente para fines de aprendizaje e investigación; El contenido anterior no se utilizará con fines comerciales o ilegales; de lo contrario, los usuarios asumirán todas las consecuencias. La información de este sitio proviene de Internet, y las disputas de derechos de autor no tienen nada que ver con este sitio. Debes eliminar completamente el contenido anterior de tu ordenador en un plazo de 24 horas desde la descarga. Si te gusta el programa, por favor apoya el software genuino, compra el registro y obtén mejores servicios genuinos. Si hay alguna infracción, por favor contáctanos por correo electrónico.

Mail To:help@itsvse.com