Høj CPU-belastning/Høj kodning/Tager for lang tid at kode? Læs dette først!

Inkodning af video er en meget CPU-intensiv operation, og OBS er ingen undtagelse. OBS bruger det bedste tilgængelige open source-videokodningsbibliotek, x264, til at kode video og kan bruge hardware-enkodere som NVENC på high end GPU’er. Nogle mennesker kan dog opleve høj CPU-udnyttelse, og andre programmer, der kører på din computer, kan opleve forringet ydeevne, mens OBS er aktiv, hvis dine indstillinger er for høje for din computers hardware. I nogle tilfælde vil OBS sige “Encoding overloaded!” på statuslinjen, hvilket betyder, at din computer ikke kan kode din video hurtigt nok til at opretholde de indstillinger, du har indstillet den til, hvilket vil medføre, at videoen fryser efter nogle få sekunder eller periodisk stutteri.
Her er nogle måder, hvorpå du kan reducere ressourceudnyttelsen og forhåbentlig få både OBS og dine programmer til at køre hurtigere, mens du koder:
Downscale din outputopløsning
Den opløsning, du koder med, har den største indvirkning på CPU-forbruget. F.eks. har 1080p mere end dobbelt så mange pixels i hvert billede som 720p, og dit CPU-forbrug stiger tilsvarende. Den mest almindelige måde at reducere CPU-forbruget på er at nedskalere din opløsning. Når du nedskalerer, tager OBS din scene og formindsker den så meget, som du beder den om, før du giver den til encoderen. Du vil måske gerne have din basisopløsning på 1080p, da det er den opløsning, dit indhold er i, men din CPU er måske ikke i stand til at kode en ikke nedskaleret 1080p-video. Så du kan nedskalere din opløsning til 720p (eller lavere) for at beholde det samme billede, men bruge en mindre opløsning for at reducere CPU-belastningen.
Du kan ændre, hvor meget du vil nedskalere i Indstillinger > Video > Output (Scaled) Resolution. Du kan beholde din Base (Canvas) Resolution den samme, så dit layout ikke ændres, og derefter nedskalere opløsningen til det, der giver dig en god ydeevne.
De forskellige nedskaleringsfiltre (bilinear, bikubisk og Lanczos) ændrer blot den algoritme, der bruges til at formindske billedet: bilinear er hurtigst og tager færrest ressourcer, men ser ikke så godt ud, mens Lanczos tager flere ressourcer, men ser bedre ud. Ydelsesmæssigt er de dog ikke så meget forskellige. Du er velkommen til at eksperimentere med hvilket filter der fungerer bedst for dig.
Sænk din frame rate
Hvis du streamer over 30 FPS, er en anden mulighed at overveje er at sænke din frame rate til 30 FPS. Det vil reducere antallet af frames, som din CPU skal behandle i et givet tidsrum, hvilket vil reducere CPU-forbruget. Du kan endda føle dig nødsaget til at sænke din frame rate til noget under 30 FPS, hvis din CPU er virkelig svag og kæmper.
Brug hardware encodere (Quicksync, AMF eller NVENC)
Quicksync, AMF og NVENC er hardware encodere, der kommer på henholdsvis nyere Intel Integrated GPU’er, nyere AMD GPU’er og nyere NVIDIA GPU’er. Du kan aflaste kodningsbelastningen til disse hardware-enkodere på bekostning af et noget mærkbart fald i kvalitet ved samme bithastighed, selv om nyere NVIDIA-kort faktisk overgår software-kodning). Bemærk dog, at QSV / AMF er særligt dårlige ved lave bitrater, så de anbefales ikke til streaming.
Hvis du har en af de nævnte hardware encodere, kan du se, om disse muligheder er tilgængelige for dig i Encoding settings.
Quicksync er lidt mere tricky at sætte op, men her er en guide: https://obsproject.com/forum/resources/how-to-use-quicksync.82/
Der er ligeledes en guide til fejlfinding for AMF-enkoderen her: https://github.com/Xaymar/obs-studio_amf-encoder-plugin/wiki/Troubleshooting-Guide
Om du bruger software encoder (x264), har den en række “presets”, som ændrer din videokvalitet og CPU-forbrug i overensstemmelse hermed. OBS-standardindstillingen er veryfast, hvilket i de fleste tilfælde er den bedste balance mellem CPU-forbrug og videokvalitet. Denne indstilling kan ændres i Indstillinger Output (marker Enable Advanced Encoder Settings, hvis du er i Simple mode) Encoder Preset.
Navnet på presettet er beregnet til at angive, hvor “hurtigt” encoderen skal køre. Hurtigere presets vil bruge mindre CPU på bekostning af kvalitetsberegninger. Langsommere presets vil bruge bruge bruge flere beregninger til kvalitet, men vil bruge meget mere CPU.
For eksempel, hvis du gerne vil forsøge at reducere CPU-forbruget uden at ændre din opløsning eller FPS, kan du reducere dit CPU-forbrug ved at ændre din x264-forindstilling til superfast eller ultrafast, og x264 vil bruge mindre tid på at forsøge at få billedet til at se godt ud, og vil skåne dig for nogle CPU-cyklusser. Billedet kan se lidt mere blokeret eller pixeleret ud, men du vil kunne bevare din opløsning/fps.
Vær meget forsigtig med denne indstilling, fordi selv et enkelt trin hurtigere eller langsommere kan have en enorm indvirkning på CPU-forbruget. For eksempel kan den forudindstilling, der hedder “faster”, bruge dobbelt så meget CPU som “veryfast”, den lige over den. Sæt den altid tilbage til veryfast, hvis du ikke er sikker på, hvad du skal indstille den til.
Tjek dine kilder
Nogle kilder såsom webkameraer og optagekort kan bruge en masse CPU bare ved at være på din scene, da de skal afkode videodataene. Hvis du bruger et webkamera, skal du kontrollere, at det ikke kører med for høj opløsning (mere end 480p er sjældent nødvendigt, hvis det ikke er fuld skærm). Browserkilder kan også forbruge CPU, hvis der er komplekse animationer eller scripts aktive.
Hvis du har mange forskellige scener til forskellige scenarier, skal du overveje at opdele dem i separate scenesamlinger, hvis det er hensigtsmæssigt. Dette vil reducere antallet af aktive kilder, som OBS skal holde styr på, hvilket kan reducere CPU-forbruget.
Opgrader din hardware
Nogle CPU’er er så svage, at de er næsten håbløse til at få noget ordentligt til at fungere. Dual-core CPU’er og AMD APU’er er særligt berygtede for dette. De kan måske slippe af sted med et 360p-stream ved 25 FPS ved hjælp af den ultrahurtige forudindstilling, men det vil helt sikkert ikke se godt ud. Det er op til dig at afgøre det. Hvis du har en Sandy Bridge i5 eller i7 eller nyere, eller en AMD 6-core eller 8-core eller nyere, så burde du være i stand til at komme op med en anstændigt udseende stream ved rimelige opløsninger og billedfrekvenser.
OBS adskiller sig fra mange andre streaming/optagelsesprogrammer ved at gøre brug af din GPU for at opnå bedre ydeevne. Desværre kan dette på nogle ældre eller budgetmodeller af GPU’er være en flaskehals i din stream’s ydeevne. Dette skyldes generelt lav hukommelsesbåndbredde og/eller lavt antal processorkerner. GPU’er som nVidia GTX 200-serien (250, 260, 280) og 9800GT og tidligere var engang meget kraftfulde i sin tid, men er nu meget gamle kort, som vil få OBS-ydelsen til at lide meget under det.
Kør alle lydkilder ved samme frekvens
Hvis din desktoplyd kører ved 44100 Hz, men du har OBS indstillet til at kode ved 48000 Hz, skal den resample lyden, hvilket bruger CPU-tid. Jo flere lydkilder du tilføjer (f.eks. mikrofon, mediekilder), der bruger forskellige samplingfrekvenser, jo mere CPU-forbrug vil resampling bruge. Kør alle dine lydenheder og OBS med samme frekvens for at undgå dette.
Andre programmer/spil bruger også CPU
Visse programmer (især spil) kan bruge en masse CPU. Dette omfatter nogle åbenlyse, f.eks. Battlefield 4, og nogle ikke åbenlyse, f.eks. spil, der spilles via emulatorer. Hvis et spil bruger meget CPU, kan det forstyrre OBS, ligesom OBS kan forstyrre spillet, så du skal overveje at skrue ned for disse indstillinger for at kompensere for det spil, du spiller. Du kan også bruge indstillingen “Process priority” i Settings > Advanced (Indstillinger > Avanceret) til at øge eller reducere processorprioriteten for programmet. Det er almindeligt at give OBS “Over normal” procesprioritet for at sikre, at OBS prioriteres af systemet og kører problemfrit, men brug det med forsigtighed.
Kør din log gennem loganalysatoren for at få flere råd
Hvis der er andre ting, der kan være årsag til, at OBS kører langsomt, kan du ofte finde dem ved at køre din OBS-log gennem R1CH’s loganalysator. Det vil fortælle dig om eventuelle andre ydelsesproblemer, der kan gøre tingene langsommere, eller om andre problemer, som du måske har med dine indstillinger. Du kan gøre dette fra din OBS Help > Log Files menu, eller ved at indsætte din log i boksen på analysatorens side.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.