GTX 1660 ti /NVENC was snel, maar de bestandsgroottes waren verschrikkelijk!

Mijn systeem is een Ryzen 7-1700 met 16 GB RAM, een verzameling harde schijven en een SSD als OS-schijf – Windows 10 Professional. Mijn videokaart was/is een GT 730 2 GB. Ik gebruik de donator-versie 2.4 v11 van MCEB en hebt HW-encoding ingeschakeld.

Vroeg dit jaar begon ik met het opnemen van oude televisieseries van een half uur via mijn Roku en een capture-box. Ik gebruik OBS Studio versie 23.2 (nieuwste) met vrijwel standaardinstellingen (1920 × 1080). Ik heb het beeld iets uitgerekt omdat de series in een ouder formaat zijn. Het uiteindelijke beeld ziet er geweldig uit op een HDTV! Nadat de box het bestand heeft vastgelegd, gaat het naar mijn HTPC, waar MCEB het oppakt en verwerkt met de HEVC MP4-codec. Ik heb hiervoor een speciale profiel gemaakt omdat de series geen advertenties bevatten – Comskip is dus niet nodig.

Met de GT 730-setup was het ruwe bestand ongeveer 470 MB. MCEB reduceerde dit tot ongeveer 220 MB. Ik wil de bestanden zo klein mogelijk hebben, want er zijn ongeveer 40 afleveringen per seizoen en ik wil ze allemaal archiveren.

Na veel research besloot ik een betere grafische kaart te kopen. Ik vond een goede deal op de GTX 1660 Ti en installeerde deze. Ik werkte de drivers bij en gebruikte de H265 NVENC-codec in OBS. Na de onderstaande resultaten probeerde ik ook de H264-codec (vermoedelijk dezelfde die de 730 gebruikte?) en kreeg vergelijkbare resultaten.

De verwerkingstijden in MCEB daalden dramatisch – van 40 minuten naar 9 minuten – en de CPU-belasting verdween vrijwel; eerder liep de CPU op 100% bij twee gelijktijdige streams. Ik was teleurgesteld te zien dat de uiteindelijke bestandsgroottes bijna even groot waren als het oorspronkelijke opnamebestand (ruim 400 MB).

Ik experimenteerde met verschillende instellingen, zoals bitrate, maar kon het compressieniveau niet op het oude niveau krijgen. Uiteindelijk heb ik de 1660 teruggestuurd en de 730 herinstalleerd. Mijn eerste conversie daarna verliep weer zoals vroeger qua verwerkingstijd en bestandsgrootte. Omdat het een dedicated machine is, kan ik de conversies buiten werktijd draaien, maar ik had veel betere resultaten verwacht, zeker omdat Nvidia en OBS samen aan de nieuwste OBS-versie hebben gewerkt. Als ik iets verkeerd deed, weet ik niet wat.

Ik ben benieuwd of iemand anders iets vergelijkbaars heeft gezien met een Nvidia-kaart? En of een eenvoudigere kaart zoals een 1050 mogelijk beter werkt.

Ik heb ontdekt dat de bestandsgroottes bij NVENC suboptimaal zijn. Ik stel voor dat je de compressie flink verhoogt om de bestanden weer kleiner te krijgen. Teruggaan naar een 1050 maakt de bestanden niet kleiner - het vertraagt alleen de conversie.

Bedankt. Hoe verhoog ik de compressie? Ik probeerde de bitrate te verlagen van 2500 naar 2000 en 1500, en de eerste leverde weinig verschil in bestandsgrootte op, terwijl de laatste een video van slechte kwaliteit opleverde.

Ik stel voor dat je naar het profiel kijkt. Zoek naar deze regel:

ffmpeg-video=-ss 9 -c:v hevc_nvenc -cq 26 -rc vbr -map 0:v

Het CQ-deel verwijst naar “Constant Quality” - Hogere getallen zijn lagere kwaliteit en uiteraard is de h265-schaal anders dan de h264; een CQ van 23 in H265 komt ongeveer overeen met een kwaliteitsscore van 20 in H264.

Bovenstaande gebruiken zal de bestandsgroottes met ongeveer 60% verkleinen ten opzichte van het ongecomprimeerde .TS-bestand. De schaal is logaritmisch, dus kleine aanpassingen kunnen een groot effect hebben.

Succes! Will.

Bedankt voor je tijd en advies. Ik heb de profielinstellingen gevonden, en dit staat op die regel:
ffmpeg-video=-ss 0 -vf yadif=0:-1:1,hqdn3d -vcodec libx265 -preset medium -crf 26 -map 0:v -sn

Ik neem aan dat het anders is omdat de GTX/NVENC verdwenen is.

Heb je advies voor een betere H265-compatibele videokaart om deze operatie uit te voeren? Ik wil liever niet opnieuw $200+ uitgeven als een goedkopere kaart redelijke resultaten geeft en de CPU ontlast. Ik weet dat de 1050 een populaire kaart is, vandaar dat ik die noemde.

Zodra ik een HEVC-compatibele kaart heb, kan ik, als ik vergelijkbare ffmpeg-instellingen in OBS vind, mogelijk ook MCEB ontlasten.

Hallo. Het profiel dat je hebt overgenomen gebruikt x265, dat volledig in software draait. Als je libx265 wijzigt in hevc_nvenc, gaat je videokaart de encoding doen. De syntax van ffmpeg is wat cryptisch – ik heb hieronder het profiel dat ik zelf gebruik:

[MKV HVEC Beta Profile Constant Quality]
Description=WARNING: Handbrake Constant Quality encoding (26) with Nvidia HVEC.
order=ffmpeg, handbrake
AllowH264CopyRemuxing=true
FixedResolution=true
AutoDeinterlace=true
ffmpeg-UsingHardwareEncoding=True
ffmpeg-general=-threads 0 -hwaccel auto
ffmpeg-video=-ss 9 -c:v hevc_nvenc -cq 26 -rc vbr -map 0:v
ffmpeg-audio=-acodec ac3 -ab 192k -map 0:a
ffmpeg-audioac3=-acodec ac3 -ab 384k -map 0:a
ffmpeg-ext=.mkv
ffmpeg-audiodelay=skip
handbrake-UsingHardwareEncoding=true
handbrake-general=--decomb --denoise="weak" --loose-anamorphic --verbose=2 -T -O
handbrake-video=--start-at duration:0 --encoder nvenc_h265 --encoder-preset slow --quality 23 --vfr
handbrake-audio=-E ffac3 -R auto -B 192 -D 0 -a 1,2,3,4,5
handbrake-audioac3=-E ffac3 -R auto -B 384 -D 0 -a 1,2,3,4,5
handbrake-ext=.mkv
handbrake-audiodelay=skip
PreConversionCommercialRemover=true

De kaart die je hebt is ruim voldoende – het is een opvolger van de GTX 10xx-serie. Ik kocht een RTX 2060 voor mijn Plex-/MCEBuddy-machine, maar jouw 16xx was toen nog niet verkrijgbaar. Succes! Will.

Nog iets: als je een recente versie van Windows 10 gebruikt, kun je in de taakmanager kijken waar het werk wordt uitgevoerd terwijl het bestand wordt geconverteerd. Als alles goed werkt, zou je moeten zien dat de videokaart piekt naar 99% wanneer de conversie daadwerkelijk loopt. Het is best gaaf. Bedankt! Will.

Bedankt voor de post. Ik heb de GTX 1660 ti geretourneerd & teruggestuurd, dus ik ben weer terug bij de GT 730 waarvan NVIDIA op hun matrix aangeeft dat hij geen H265 ondersteunt.

EDIT
Ik gebruik zowel HW monitor als GPU monitor programma’s om te zien wat de CPU en GPU doen wanneer MCEB draait.

Ik zal proberen een budget 10-serie kaart te vinden die dat wel doet. Nogmaals bedankt.

Ik ben tevreden met mijn 2060 – de 2050 werkt ook en is goedkoper…

Met jouw info heb ik in OBS Studio geëxperimenteerd, want mijn doel is om meteen bij de opname een bestandsgrootte te krijgen die acceptabel is en MCEB alleen te gebruiken voor showgegevens en om het naar Plex te verplaatsen. Ik weet niet precies hoe ffmpeg werkt, maar ik weet hoe ik de code moet invoeren. Op basis van een post heb ik geprobeerd twee dll-bestanden aan OBS toe te voegen zodat ik libx265 kon gebruiken, maar de recorder crashte beide keren. Ik heb gelezen dat OBS x265 niet ondersteunt.

Door de ffmpeg-tekst uit het MCEB-profiel te gebruiken zonder de laatste regel die gaat over reclames en met de H264_Nvenc-codec zag ik bij vijf minuten durende testbestanden een flinke reductie. De opnames die ik met H265 Nvenc had gemaakt waren ongeveer 190 MB, terwijl die van vandaag 103 MB was (deze verhouding komt ongeveer overeen met wat ik met MCEB krijg). Het leuke was dat ik in de OBS-databalk ongeveer 14% CPU-gebruik zag tijdens het opnemen. Ik heb het op een andere machine afgespeeld en het zag er goed uit.

Ik heb nog wat bestanden in half-uursformaat (ongeveer 24:30 minuten lengte) dus ik ga er nog een proberen om te zien wat ik krijgt. Als dit op dezelfde manier werkt, kan ik de aanschaf van een nieuwe videokaart uitstellen.

Nogmaals bedankt voor al je hulp.

Terug naar de tekentafel dus. Mijn bestand van 24 minuten met aangepaste instellingen was 503 MB. Ik besefte dat ik daarnaar keek naar het grootste H265-bestand dat ik had gemaakt toen ik eerder reageerde; andere met H264 waren kleiner. Dezelfde show met de vorige setup was ongeveer 487 MB, dus dit maakte het groter.

Ik blijf verschillende instellingen proberen. Als MCEB dit op dezelfde machine kan doen met ffmpeg, moet er een manier zijn om OBS het ook te laten doen.