Šis straipsnis yra veidrodinis mašininio vertimo straipsnis, spauskite čia norėdami pereiti prie originalaus straipsnio.

Rodinys: 17009|Atsakyti: 4

GPU pagreitinto ffmpeg naudojimas užduotims apdoroti sistemoje "Windows"

[Kopijuoti nuorodą]
Publikuota: 2019-11-7 21:08:29 | | | |
ffmpeg atsisiųsti

Oficialus svetainės atsisiuntimo puslapis:
Hipersaito prisijungimas matomas.
Rekomenduojama atsisiųsti sukompiliuotą versiją ir atsisiųsti puslapį:
Hipersaito prisijungimas matomas.
Aš paprastai noriu atsisiųsti naujausią versiją (pavadinta pagal datą) ir, žinoma, yra stabili versija (pavadinta pagal versijos numerį).



CUDA atsisiuntimas

CUDA yra tvarkyklė, leidžianti GPU atlikti susijusias operacijas, nes mes kuriame programas, kurios tiesiogiai nevaldo GPU, bet veikia per tvarkyklę.
Hipersaito prisijungimas matomas.
Čia aš pasirenku versiją, kaip parodyta žemiau:
Žinoma, taip pat galite spustelėti žemiau esančią nuorodą, kad pereitumėte tiesiai į nustatymus, kai atsisiuntiau.
Hipersaito prisijungimas matomas.


Atsisiuntę nepamirškite jo įdiegti, todėl nepristatysiu, juk jie visi kuria programinę įrangą.

komanda

Užklausos komandos
Patikrinkite, ar atsisiųstas ffmpeg palaiko cuda, jei ne (aš jį atsisiuntiau), tada atsisiųskite dar kartą arba sukompiliuokite patys.




Bandymo komandos

Konvertuoti dabartinio katalogo 0.mp4 į 00.mp4
Konvertuokite dabartinio katalogo 0.mp4 į 00.mp4 ir nurodykite išvesties kadrų dažnį 15 (-r 15) ir 500k (-b 500k) bitų spartą.
-hwaccel cuvid: nurodo cuvid aparatinės įrangos spartinimo naudojimą
-c:v h264_cuvid: Vaizdo įrašų dekodavimas naudojant h264_cuvid
-c:v h264_nvenc: Vaizdo kodavimas naudojant h264_nvenc
-vf scale_npp=1280:-1: Nurodykite išvesties vaizdo įrašo plotį ir aukštį, atkreipkite dėmesį, kad jis skiriasi nuo -vf scale=x:x, naudojamo minkštam dekodavimui

Kelios vaizdo plokštės komandos

GPU perkodavimo efektyvumo testas
Serveryje su dviem Intel-E5-2630v3 procesoriais ir dviem Nvidia Tesla M4 vaizdo plokštėmis h264 vaizdo perkodavimo testas buvo atliktas taip:

Vidutinis GPU perkodavimo laikas: 8 s
Vidutinis procesoriaus perkodavimo laikas: 25 s

Perkoduojant lygiagrečiai, pagerėja procesoriaus minkštojo konvertavimo efektyvumas, o visi 32 branduoliai yra užimti, kai trys perkodavimo užduotys yra lygiagrečios

Vidutinis GPU perkodavimo laikas: 8 s
Vidutinis procesoriaus perkodavimo laikas: 18s

Nesunku pastebėti, kad GPU perkodavimo greitis lygiagrečiai nedidėja, o tai rodo, kad GPU vienu metu gali atlikti tik vieną perkodavimo užduotį. Taigi, jei į serverį įdėtos kelios vaizdo plokštės, ar ffmpeg lygiagrečiam perkodavimui naudos kelis GPU?
Deja, atsakymas yra neigiamas.
ffmpeg neturi galimybės automatiškai priskirti perkodavimo užduočių skirtingiems GPU, tačiau atlikus tam tikrą tyrimą buvo nustatyta, kad perkodavimo užduočiai naudojamą GPU galima nurodyti parametru -hwaccel_device!
Perkodavimo užduočių pateikimas skirtingiems GPU

Grafika 0


Vaizdo plokštė1

Iliustruoti:

-hwaccel_device N: nurodykite GPU perkodavimo užduočiai atlikti, N yra skaičius





Ankstesnis:[Praktinė kova] Sukurkite "Docker" vaizdą pagal "Nginx".
Kitą:2000 logotipų prototipai
 Savininkas| Publikuota: 2019-11-7 21:18:35 |
//参数说明
/*
    * -i failo pavadinimas (įvestis) šaltinio failo katalogas
    * -y Išveda naujus failus, ar priverstinai perrašyti esamus failus
    * -c Nurodo koduotuvą
    * -fs limit_size(outinput) nustato failo dydžio ribą, išreikštą baitais. Viršijus ribą, daugiau baitų blokų nerašoma. Išvesties failo dydis yra šiek tiek didesnis nei reikalaujamas failo dydis.
    * -s vaizdo santykis 4:3 320x240/640x480/800x600 16:9 1280x720, numatytoji reikšmė "wxh", tokia pati kaip ir pradinis vaizdo įrašo dydis
    * -vframes number(output) nustato išvesties vaizdo kadrų skaičių. Pseudonimas: -frames:v
    * -dframes numeris (išvestis) nustato išvesties duomenų kadrų skaičių. Slapyvardis: -frames:d
    * -frames[:stream_specifier] framecount(output, per-stream) nustoja rašyti į srautą kadrų skaičiui.
    * -bsf[:stream_specifier] bitstream_filters (išvestis, per srautą) nurodo išvesties failo srauto formatą,
Pavyzdžiui, išveskite MP4 failą, užkoduotą h264: ffmpeg -i h264.mp4 -c:v copy -bsf:v h264_mp4toannexb -an out.h264
    * -r 29.97 Zhen greitis (galima keisti, įsitikinkite, kad dėl nestandartinio Zhen dažnio garsas ir vaizdas bus nesinchronizuoti, todėl jį galima nustatyti tik į 15 arba 29.97)
    *
    */
 Savininkas| Publikuota: 2019-11-8 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 --versija

CUVID yra CUDA pagrįsta vaizdo dekodavimo biblioteka, kuri dekodavimui naudoja CUVID


Nepavyko sukurti Direct3D įrenginio
Įrenginio sukurti nepavyko: -1313558101.

ffmpeg versija turi atitikti sinchroninės vaizdo plokštės tvarkyklę, kad būtų galima tinkamai įjungti aparatinės įrangos spartinimą.


Peržiūrėkite NVIDIA aparatinės įrangos spartinimo kodeką:

.\ffmpeg.exe -kodekai | SLS NVEC
.\ffmpeg.exe -kodekai | SLS CUVID

Priešdėlis turi šias reikšmes:

Priešdėlio reikšmė
D….. = Palaikomas dekodavimas
. E.... = Kodavimas palaikomas
.. V... = Vaizdo kodekas
.. A... = Garso kodekas
.. S... = subtitrų kodekas
… I.. = Tik kadro kodekas
....L. = nuostolingas suspaudimas
….. S = glaudinimas be nuostolių



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
Paskelbta 2023-2-26 12:11:24 |
Raginimas:Autoriai uždrausti arba pašalintas turinys automatiškai blokuojamas
Publikuota: 2023-2-26 12:13:35 |
Raginimas:Autoriai uždrausti arba pašalintas turinys automatiškai blokuojamas
Atsakomybės apribojimas:
Visa programinė įranga, programavimo medžiaga ar straipsniai, kuriuos skelbia Code Farmer Network, yra skirti tik mokymosi ir mokslinių tyrimų tikslams; Aukščiau nurodytas turinys negali būti naudojamas komerciniais ar neteisėtais tikslais, priešingu atveju vartotojai prisiima visas pasekmes. Šioje svetainėje pateikiama informacija gaunama iš interneto, o ginčai dėl autorių teisių neturi nieko bendra su šia svetaine. Turite visiškai ištrinti aukščiau pateiktą turinį iš savo kompiuterio per 24 valandas nuo atsisiuntimo. Jei jums patinka programa, palaikykite autentišką programinę įrangą, įsigykite registraciją ir gaukite geresnes autentiškas paslaugas. Jei yra kokių nors pažeidimų, susisiekite su mumis el. paštu.

Mail To:help@itsvse.com