Hög CPU-användning/Hög kodning/Tar för lång tid på sig att koda? Läs det här först!

Kodning av video är en mycket processorkrävande operation, och OBS är inget undantag. OBS använder det bästa videokodningsbiblioteket för öppen källkodning som finns tillgängligt, x264, för att koda video, och kan använda hårdvarukodare som NVENC på avancerade GPU:er. Vissa personer kan dock uppleva högt CPU-utnyttjande, och andra program som körs på din dator kan uppleva försämrad prestanda medan OBS är aktivt om dina inställningar är för höga för din dators hårdvara. I vissa fall kommer OBS att säga ”Encoding overloaded!” i statusfältet, vilket innebär att datorn inte kan koda videon tillräckligt snabbt för att bibehålla de inställningar som du har ställt in den på, vilket kommer att leda till att videon fryser efter några sekunder eller att den periodiskt stuttrar.
Det här är några sätt som du kan använda för att minska resursanvändningen och förhoppningsvis få både OBS och dina program att gå snabbare när du kodar:
Nedskala utdataupplösningen
Upplösningen som du kodar med har störst påverkan på CPU-användningen. Till exempel har 1080p mer än dubbelt så många pixlar i varje bild jämfört med 720p, och din CPU-användning ökar i enlighet med detta. Det vanligaste sättet att minska CPU-användningen är att skala ner upplösningen. När du skalar ner tar OBS din scen och krymper den så mycket som du säger att den ska göra innan du ger den till kodaren. Du kanske vill ha din basupplösning på 1080p, eftersom det är den upplösningen som ditt innehåll är i, men din CPU kanske inte kan koda en icke nedskalad 1080p-video. Så du kan skala ner din upplösning till 720p (eller lägre) för att behålla samma bild, men använda en mindre upplösning för att minska CPU-belastningen.
Du kan ändra hur mycket du vill skala ner i Inställningar > Video > Output (Scaled) Resolution. Du kan behålla din Base (Canvas) Resolution samma, så att din layout inte ändras, och sedan skala ner upplösningen till det som ger dig god prestanda.
De olika nedskalningsfiltren (bilinear, bicubic och Lanczos) ändrar helt enkelt den algoritm som används för att krympa bilden: bilinear är snabbast och tar minst resurser i anspråk, men ser inte lika bra ut, medan Lanczos tar mer resurser i anspråk, men ser bättre ut. Prestandamässigt är de dock inte så mycket olika. Experimentera gärna med vilket filter som fungerar bäst för dig.
Sänk bildfrekvensen
Om du streamar över 30 FPS är ett annat alternativ att överväga är att sänka bildfrekvensen till 30 FPS. Det kommer att minska antalet ramar som din CPU måste bearbeta under en viss tid, vilket kommer att minska CPU-användningen. Du kan till och med känna ett behov av att sänka bildfrekvensen till något under 30 FPS, om din CPU är riktigt svag och kämpar.
Använd hårdvarukodare (Quicksync, AMF eller NVENC)
Quicksync, AMF och NVENC är hårdvarukodare som ingår i nyare integrerade grafikkretsar från Intel, nyare grafikkretsar från AMD respektive nyare grafikkretsar från NVIDIA. Du kan avlasta kodningsbelastningen till dessa hårdvarukodare till priset av en något märkbar minskning av kvaliteten vid samma bithastighet, även om nyare NVIDIA-kort faktiskt presterar bättre än mjukvarukodning). Observera att QSV / AMF är särskilt dåliga vid låga bithastigheter så de rekommenderas inte för streaming.
Om du har en av de nämnda hårdvarukodarna kan du se om dessa alternativ är tillgängliga för dig i Kodningsinställningar.
Quicksync är lite knepigare att ställa in, men här är en guide: https://obsproject.com/forum/resources/how-to-use-quicksync.82/
Det här är också felsökningsguiden för AMF-kodaren: https://github.com/Xaymar/obs-studio_amf-encoder-plugin/wiki/Troubleshooting-Guide
Ändra din x264-förinställning
Om du använder mjukvarukodaren (x264) har den ett antal ”förinställningar” som ändrar din videokvalitet och CPU-användning i enlighet med detta. OBS:s förinställning är veryfast, vilket i de flesta fall är den bästa balansen mellan CPU-användning och videokvalitet. Den här inställningen kan ändras i Settings > Output (kontrollera Enable Advanced Encoder Settings om du är i Simple mode) > Encoder Preset.
Namnet på förinställningen är tänkt att indikera hur ”snabbt” kodaren ska köras. Snabbare förinställningar kommer att använda mindre CPU på bekostnad av kvalitetsberäkningar. Långsammare förinställningar kommer att använda mer beräkningar för kvalitet, men kommer att använda mycket mer CPU.
Om du till exempel vill försöka minska CPU-användningen utan att ändra din upplösning eller FPS, kan du minska din CPU-användning genom att ändra din x264-förinställning till superfast eller ultrafast, och x264 kommer att spendera mindre tid på att försöka få bilden att se bra ut, och kommer att skona dig några CPU-cykler. Bilden kan se lite mer blockig eller pixlig ut, men du kommer att kunna behålla din upplösning/fps.
Var mycket försiktig med den här inställningen, eftersom även ett steg snabbare eller långsammare kan ha en enorm inverkan på CPU-användningen. Till exempel kan förinställningen som heter ”faster” använda dubbelt så mycket CPU som ”veryfast”, den som ligger precis ovanför. Ställ alltid in den tillbaka till veryfast om du är osäker på vad du ska ställa in den till.
Kontrollera dina källor
Vissa källor som webbkameror och upptagningskort kan använda mycket CPU bara genom att vara på din scen eftersom de måste avkoda videodata. Om du använder en webbkamera, kontrollera att den inte körs med för hög upplösning (mer än 480p behövs sällan om det inte är helskärm). Webbläsarkällor kan också förbruka CPU om det finns komplexa animationer eller skript som är aktiva.
Om du har många olika scener för olika scenarier kan du överväga att dela upp dem i separata scensamlingar om det är lämpligt. Detta minskar antalet aktiva källor som OBS måste hålla reda på, vilket kan minska CPU-förbrukningen.
Uppgradera din hårdvara
Vissa CPU:er är så svaga att de är nästan hopplösa för att få något anständigt att fungera. CPU:er med dubbla kärnor och AMD APU:er är särskilt ökända för detta. De kanske kan komma undan med en 360p-ström vid 25 FPS med den ultrasnabba förinställningen, men det kommer definitivt inte att se bra ut. Det är upp till dig att avgöra. Om du har en Sandy Bridge i5 eller i7 eller senare, eller en AMD 6-kärnig eller 8-kärnig eller senare, så borde du kunna få till en hygglig stream med rimliga upplösningar och bildfrekvenser.
OBS skiljer sig från många andra streaming-/inspelningsprogram på så sätt att det utnyttjar din grafikprocessor för bättre prestanda. Tyvärr kan detta på vissa äldre eller budgetmodeller av GPU:er vara en flaskhals i din strömmings prestanda. Detta beror i allmänhet på låg minnesbandbredd och/eller lågt antal processorkärnor. GPU:er som nVidia GTX 200-serien (250, 260, 280) och 9800GT och tidigare var en gång mycket kraftfulla på sin tid, men är nu mycket gamla kort som gör att OBS-prestandan blir mycket lidande.
Kör alla ljudkällor med samma frekvens
Om ditt skrivbordsljud körs med 44100 Hz men OBS är inställt på att koda med 48000 Hz, måste ljudet samplas på nytt, vilket använder CPU-tid. Ju fler ljudkällor du lägger till (t.ex. mikrofon, mediakällor) som använder olika samplingsfrekvenser, desto mer CPU-användning kommer att förbrukas av omprovningen. Kör alla dina ljudenheter och OBS på samma frekvens för att undvika detta.
Andra program/spel använder CPU också
Vissa program (särskilt spel) kan använda mycket CPU. Detta inkluderar vissa uppenbara, som Battlefield 4, och vissa icke uppenbara, som spel som spelas via emulatorer. Om ett spel använder mycket CPU kan det störa OBS precis som OBS kan störa spelet, så du måste överväga att sänka dessa inställningar för att kompensera för det spel du spelar. Du kan också använda inställningen ”Processprioritet” i Inställningar > Avancerat för att öka eller minska programmets processorprioritet. Det är vanligt att ge OBS ”Över normal” processprioritet för att säkerställa att OBS prioriteras av systemet och körs smidigt, men använd det med försiktighet.
Kör din logg genom logganalysatorn för mer råd
Om det finns andra saker som kan orsaka att OBS körs långsamt kan du ofta hitta dem genom att köra din OBS-logg genom R1CH:s logganalysator. Det kommer att informera dig om eventuella andra prestandaproblem som kan sakta ner saker och ting, eller andra problem som du kan ha med dina inställningar. Du kan göra detta från menyn OBS Hjälp > Loggfiler, eller genom att klistra in din logg i rutan på analysatorns webbplats.

Lämna ett svar

Din e-postadress kommer inte publiceras.