Questo articolo è un articolo speculare di traduzione automatica, clicca qui per saltare all'articolo originale.

Vista: 17009|Risposta: 4

Usa ffmpeg accelerato da GPU per elaborare i compiti su Windows

[Copiato link]
Pubblicato il 7-11-2019 21:08:29 | | | |
Scarica ffmpeg

Pagina ufficiale per il download:
Il login del link ipertestuale è visibile.
Si consiglia di scaricare la versione compilata e scaricare la pagina:
Il login del link ipertestuale è visibile.
In genere preferisco scaricare l'ultima versione (chiamata così come la data) e ovviamente esiste una versione stabile (chiamata così come il numero di versione).



Scarica CUDA

CUDA è un driver che permette alla GPU di eseguire operazioni correlate, perché sviluppiamo applicazioni che non controllano direttamente la GPU, ma operano tramite il driver.
Il login del link ipertestuale è visibile.
Qui scelgo la versione mostrata qui sotto:
Naturalmente, puoi anche cliccare sul link qui sotto per andare direttamente alle impostazioni quando ho scaricato.
Il login del link ipertestuale è visibile.


Dopo il download, ricordatevi di installarlo, quindi non lo presenterò, dopotutto stanno tutti sviluppando software.

comando

Comandi di query
Controlla se il ffmpeg scaricato supporta CUDA, se non lo fa (io l'ho scaricato), poi scaricalo di nuovo o compilalo da solo.




Comandi di prova

Converti il 0.mp4 nella directory corrente in 00.mp4
Converti il 0.mp4 nella directory corrente in 00.mp4 e specifica il frame rate di uscita di 15 (-r 15) e il bitrate di 500k (-b 500k).
-hwaccel cuvid: Specifica l'uso dell'accelerazione hardware cuvid
-c:v h264_cuvid: Decodifica video usando h264_cuvid
-c:v h264_nvenc: Codifica video con h264_nvenc
-vf scale_npp=1280:-1: Specifica la larghezza e l'altezza del video in uscita, nota che questo è diverso dalla scala -vf=x:x usata per la decodifica soft

Comandi multipli per schede grafiche

Test di efficienza di transcodifica GPU
Su un server con due CPU Intel-E5-2630v3 e due schede grafiche Nvidia Tesla M4, il test di transcodifica video h264 è stato eseguito come segue:

Tempo medio di transcodifica GPU: 8s
Tempo medio di transcodifica della CPU: 25s

Quando si effettua la transcodifica in parallelo, l'efficienza della conversione soft della CPU migliora e tutti i 32 core sono occupati quando i tre compiti di transcodifica sono paralleli

Tempo medio di transcodifica GPU: 8s
Tempo medio di transcodifica della CPU: 18s

Non è difficile vedere che la velocità di transcodifica della GPU non aumenta quando è parallela, il che dimostra che una GPU può eseguire solo un compito di transcodifica contemporaneamente. Quindi, se sul server vengono inserite più schede grafiche, ffmpeg userà più GPU per la transcodifica parallela?
Purtroppo, la risposta è no.
ffmpeg non ha la capacità di assegnare automaticamente compiti di transcodifica a diverse GPU, ma dopo alcune indagini si è scoperto che la GPU utilizzata per il compito di transcodifica può essere specificata dal parametro -hwaccel_device!
Invia compiti di transcodifica su diverse GPU

Grafica 0


Scheda grafica1

Illustrare:

-hwaccel_device N: Specifica una GPU per eseguire un compito di transcodifica, N è un numero





Precedente:[Combattimento pratico] Crea un'immagine Docker basata su Nginx
Prossimo:Prototipi del logo 2000
 Padrone di casa| Pubblicato il 7-11-2019 21:18:35 |
//参数说明
/*
    * -i filename(input) directory sorgente file
    * -y Genera nuovi file, se forzare la sovrascrittura dei file esistenti
    * -c Specifica l'encoder
    * -fs limit_size(outinput) stabilisce il limite della dimensione del file, espresso in byte. Non vengono scritti ulteriori blocchi di byte dopo che il limite è stato superato. La dimensione del file di output è leggermente maggiore rispetto a quella richiesta.
    * -s rapporto video 4:3 320x240/640x480/800x600 16:9 1280x720, valore predefinito 'wxh', identico alla dimensione video originale
    * -vframes number(output) imposta il numero di frame video all'output. Alias: -frames:v
    * -dframe number (output) imposta il numero di frame dati all'output. Alias: -frames:d
    * -frames[:stream_specifier] framecount(output, per-stream) smette di scrivere nel flusso per il numero di frame.
    * -bsf[:stream_specifier] bitstream_filters (uscita, per stream) specifica il formato del file stream di output,
Ad esempio, emettere un file MP4 codificato da h264: ffmpeg -i h264.mp4 -c:v copy -bsf:v h264_mp4toannexb -an out.h264
    * -r 29,97 Zhen rate (può essere modificata, assicurarsi che la velocità Zhen non standard causi desincronizzazione tra suono e immagine, quindi può essere impostata solo a 15 o 29,97)
    *
    */
 Padrone di casa| Pubblicato il 8-11-2019 15:07:05 |
ffmpeg.exe -hwaccel_device 1 -hwaccel cuvid -i C:\Users\DELL\Desktop\VideoDemo\VideoDemo\bin\Debug\A14.mp4 -y C:\Users\DELL\Desktop\VideoDemo\VideoDemo\bin\Debug\A16.avi

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


NVCC --versione

CUVID è una libreria di decodifica video basata su CUDA che utilizza CUVID per la decodifica


Non è riuscito a creare un dispositivo Direct3D
Creazione del dispositivo fallita: -1313558101.

La versione ffmpeg deve corrispondere al driver della scheda grafica sincrona per abilitare correttamente l'accelerazione hardware.


Dai un'occhiata al codec di accelerazione hardware NVIDIA:

.\ffmpeg.exe -codec | SLS NVENC
.\ffmpeg.exe -codec | SLS Cuvid

Il prefisso ha i seguenti significati:

Significato del prefisso
D….. = Supporta la decodifica
. E.... = Codifica supportata
.. V... = Codec video
.. A... = Codec audio
.. S... = Codec sottotitoli
… Io.. = Codec intra frame only
....L. = Compressione con perdita
….. S = Compressione senza perdite



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
Pubblicato il 26-2-2023 12:11:24 |
Sollecito:Gli autori vengono bannati o i contenuti rimossi vengono automaticamente bloccati
Pubblicato il 26-2-2023 12:13:35 |
Sollecito:Gli autori vengono bannati o i contenuti rimossi vengono automaticamente bloccati
Disconoscimento:
Tutto il software, i materiali di programmazione o gli articoli pubblicati dalla Code Farmer Network sono destinati esclusivamente all'apprendimento e alla ricerca; I contenuti sopra elencati non devono essere utilizzati per scopi commerciali o illegali, altrimenti gli utenti dovranno sostenere tutte le conseguenze. Le informazioni su questo sito provengono da Internet, e le controversie sul copyright non hanno nulla a che fare con questo sito. Devi eliminare completamente i contenuti sopra elencati dal tuo computer entro 24 ore dal download. Se ti piace il programma, ti preghiamo di supportare software autentico, acquistare la registrazione e ottenere servizi autentici migliori. In caso di violazione, vi preghiamo di contattarci via email.

Mail To:help@itsvse.com