Magas CPU-használat/Magas kódolás/Túl sokáig tart a kódolás? Olvassa el ezt először!

A videók kódolása nagyon CPU-intenzív művelet, és ez alól az OBS sem kivétel. Az OBS a rendelkezésre álló legjobb nyílt forráskódú videokódoló könyvtárat, az x264-et használja a videó kódolásához, és képes hardveres kódolókat, például NVENC-et használni a csúcskategóriás GPU-kon. Egyesek azonban magas CPU-kihasználtságot tapasztalhatnak, és a számítógépen futó más programok teljesítménye is romolhat, amíg az OBS aktív, ha a beállítások túl magasak a számítógép hardveréhez képest. Bizonyos esetekben az OBS az állapotsorán azt fogja mondani, hogy “Encoding overloaded!”, ami azt jelenti, hogy a számítógép nem tudja elég gyorsan kódolni a videót a beállított beállítások fenntartásához, ami néhány másodperc után a videó lefagyásához vagy időszakos dadogáshoz vezet.
Itt van néhány módszer, amellyel csökkentheti az erőforrás-kihasználtságot, és remélhetőleg mind az OBS, mind a programjai gyorsabban futnak kódolás közben:
Levonja a kimeneti felbontást
A felbontás, amellyel kódol, a legnagyobb hatással van a CPU-használatra. Az 1080p például több mint kétszer annyi képpontot tartalmaz minden egyes képkockában, mint a 720p, és a CPU-használat ennek megfelelően megnő. A CPU-felhasználás csökkentésének leggyakoribb módja a felbontás lekicsinyítése. Lefelé méretezéskor az OBS fogadja a jelenetet, és lekicsinyíti annyival, amennyire Ön megmondja neki, mielőtt átadja a kódolónak. Lehet, hogy az alapfelbontást 1080p-ben szeretné, mivel ez a tartalom felbontása, de a CPU nem biztos, hogy képes lesz dekódolni egy lekicsinyített 1080p-s videót. Így lekicsinyítheti a felbontást 720p-re (vagy alacsonyabbra), hogy a kép ugyanolyan maradjon, de kisebb felbontást használjon a CPU-terhelés csökkentése érdekében.
A beállítások > Videó > Kimeneti (skálázott) felbontás > alatt módosíthatja a lekicsinyítés mértékét. Az alap (vászon) felbontást változatlanul hagyhatja, így az elrendezés nem változik, majd lekicsinyítheti a felbontást arra, ami jó teljesítményt biztosít.
A különböző lekicsinyítő szűrők (bilineáris, bikubikus és Lanczos) egyszerűen megváltoztatják a kép kicsinyítésére használt algoritmust: a bilineáris a leggyorsabb és a legkevesebb erőforrást igényli, de nem néz ki olyan jól, míg a Lanczos több erőforrást igényel, de jobban néz ki. Teljesítmény szempontjából azonban nem sokban különböznek. Nyugodtan kísérletezhetsz azzal, hogy melyik szűrő működik a legjobban neked.
A képkockasebesség csökkentése
Ha 30 FPS felett streamelsz, egy másik lehetőség, amit megfontolhatsz, hogy a képkockasebességet 30 FPS-re csökkented. Ez csökkenti a CPU-nak adott idő alatt feldolgozandó képkockák számát, ami csökkenti a CPU-használatot. Még az is előfordulhat, hogy szükségét érzi, hogy a képkockasebességet 30 FPS alá csökkentse, abban az esetben, ha a CPU valóban gyenge és küzd.
Hardveres kódolók használata (Quicksync, AMF vagy NVENC)
A Quicksync, AMF és NVENC olyan hardveres kódolók, amelyek a legújabb Intel integrált GPU-kon, az újabb AMD GPU-kon, illetve a legújabb NVIDIA GPU-kon vannak. A kódolási terhelést ezekre a hardveres kódolókra teheti át, aminek ára a minőség némileg észrevehető csökkenése ugyanazon bitráta mellett, bár az újabb NVIDIA kártyák valójában felülmúlják a szoftveres kódolást). Vegye figyelembe, hogy a QSV / AMF különösen rossz alacsony bitrátákon, ezért nem ajánlott streaminghez.
Ha rendelkezik az említett hardveres kódolók egyikével, akkor az Encoding settings (Kódolási beállítások) menüpontban megnézheti, hogy ezek a lehetőségek elérhetőek-e.
A quicksync beállítása egy kicsit bonyolultabb, de itt van egy útmutató: https://obsproject.com/forum/resources/how-to-use-quicksync.82/
Hasonlóképpen, itt van az AMF kódoló hibaelhárítási útmutatója: https://github.com/Xaymar/obs-studio_amf-encoder-plugin/wiki/Troubleshooting-Guide
Változtassa meg az x264 előbeállítását
Ha a szoftveres kódolót (x264) használja, annak számos “előbeállítása” van, amelyek ennek megfelelően változtatják a videó minőségét és a CPU-használatot. Az OBS alapértelmezett beállítása a veryfast, ami az esetek többségében a legjobb egyensúlyt jelenti a CPU-használat és a videó minősége között. Ez a beállítás megváltoztatható a Settings > Output (ellenőrizze a Enable Advanced Encoder Settings (Speciális kódolóbeállítások engedélyezése) opciót, ha egyszerű módban van) > Encoder Preset.
A preset neve azt hivatott jelezni, hogy az encoder mennyire “gyorsan” fusson. A gyorsabb előbeállítások kevesebb CPU-t használnak a minőségi számítások rovására. A lassabb előbeállítások több számítást használnak a minőség érdekében, de sokkal több CPU-t használnak.
Ha például a felbontás vagy az FPS módosítása nélkül szeretné megpróbálni csökkenteni a CPU-használatot, akkor csökkentheti a CPU-használatot, ha az x264 előbeállítást szupergyorsra vagy ultragyorsra változtatja, és az x264 kevesebb időt fog arra fordítani, hogy a képet jól nézzen ki, és megkímél néhány CPU-ciklust. A kép egy kicsit blokkosabbnak vagy pixelesebbnek tűnhet, de a felbontást/fps-t meg tudja tartani.
Legyen nagyon óvatos ezzel a beállítással, mert akár egy lépéssel gyorsabb vagy lassabb is óriási hatással lehet a CPU-használatra. Például a “gyorsabb” nevű előbeállítás kétszer annyi CPU-t használhat, mint a közvetlenül felette lévő “nagyon gyors”. Mindig állítsd vissza a “veryfast”-ra, ha nem vagy biztos benne, hogy mire kell ezt beállítani.
Vizsgáld meg a forrásaidat
Egyes források, például a webkamerák és a rögzítőkártyák már azzal is sok CPU-t használhatnak, hogy a jelenetben vannak, mivel dekódolniuk kell a videóadatokat. Ha webkamerát használ, ellenőrizze, hogy nem túl nagy felbontáson fut (480p-nél nagyobb felbontásra ritkán van szükség, ha nem teljes képernyős). A böngészőforrások is fogyasztanak CPU-t, ha összetett animációk vagy szkriptek aktívak.
Ha sok különböző jelenete van különböző forgatókönyvekhez, fontolja meg, hogy adott esetben külön jelenetgyűjteményekbe osztja őket. Ez csökkenti az aktív források számát, amelyeket az OBS-nek nyomon kell követnie, ami csökkentheti a CPU-használatot.
Hardverfrissítés
Néhány CPU annyira gyenge, hogy szinte reménytelen bármi tisztességes működésre bírni. A kétmagos CPU-k és az AMD APU-k különösen hírhedtek erről. Lehet, hogy meg tudnak úszni egy 360p-s streamet 25 FPS-sel az ultragyors előbeállítás használatával, de biztosan nem fog jól kinézni. Ezt már csak önön múlik, hogy eldöntse. Ha van egy Sandy Bridge i5 vagy i7 vagy újabb, vagy egy AMD 6 vagy 8 magos vagy újabb, akkor képesnek kell lennie arra, hogy elfogadható felbontás és képkockasebesség mellett tisztességesen kinéző streamet hozzon létre.
Az OBS abban különbözik sok más streaming/felvételi programtól, hogy a jobb teljesítmény érdekében kihasználja a GPU-t. Sajnos néhány régebbi vagy olcsó GPU-modell esetében ez szűk keresztmetszetet jelenthet a stream teljesítményében. Ennek oka általában az alacsony memória-sávszélesség és/vagy a processzormagok alacsony száma. Az olyan GPU-k, mint az nVidia GTX 200-sorozat (250, 260, 280) és a 9800GT és korábbiak egykor nagyon erősek voltak, de ma már nagyon régi kártyák, amelyek miatt az OBS teljesítménye nagyban szenved.
Minden hangforrást azonos frekvencián futtasson
Ha az asztali hang 44100 Hz-en fut, de az OBS-t 48000 Hz-es kódolásra állította be, akkor újra kell mintavételeznie a hangot, ami CPU-időt vesz igénybe. Minél több olyan hangforrást adsz hozzá (pl. Mikrofon, Médiaforrások), amelyek különböző mintavételi frekvenciát használnak, annál több CPU-felhasználást fog fogyasztani az újramintavételezés. Ennek elkerülése érdekében futtassa az összes audioeszközét és az OBS-t ugyanazon a frekvencián.
Más programok/játékok is CPU-t használnak
Egyes programok (különösen a játékok) sok CPU-t használhatnak. Ide tartoznak néhány nyilvánvaló, például a Battlefield 4, és néhány nem nyilvánvaló, például az emulátorokon keresztül játszott játékok. Ha egy játék sok CPU-t használ, az zavarhatja az OBS-t, ahogyan az OBS is zavarhatja a játékot, ezért fontolóra kell vennie, hogy ezeket a beállításokat lejjebb kapcsolja, hogy kompenzálja a játszott játékot. A Beállítások > Speciális a “Folyamat prioritása” beállítással is növelheti vagy csökkentheti a program processzorprioritását. Gyakori, hogy az OBS-nek “Normálnál magasabb” folyamatprioritást adunk, hogy az OBS-t a rendszer priorizálja és zökkenőmentesen fusson, bár ezt óvatosan használjuk.
Futtassa le a naplóját a naplóelemzőn keresztül további tanácsokért
Ha vannak más dolgok, amelyek az OBS lassú futását okozhatják, gyakran megtalálhatja őket, ha az OBS naplóját lefuttatja az R1CH naplóelemzőn keresztül. Ez tájékoztatni fog minden egyéb teljesítményproblémáról, ami lelassíthatja a dolgokat, vagy bármilyen más problémáról, ami a beállításaiddal kapcsolatos. Ezt megteheti az OBS Súgó > Naplófájlok menüből, vagy úgy, hogy beilleszti a naplóját az analizátor oldalán található mezőbe.

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.