Helaas is het niet zo eenvoudig, omdat het van andere factoren afhangt.
Elk encodeerprofiel kan worden opgesplitst in meerdere acties: decoderen, transcoderen of recoderen, filters (bijsnijden, interlacing, schalen, ruis, etc.).
Niet alle hardware (en onderliggende software) ondersteunt alle bewerkingen. Sommige onderdelen worden dus door de hardware uitgevoerd, andere door software. Wanneer dit gebeurt, is er ook een component van communicatie en gegevensoverdracht tussen de cpu, geheugen, grafische kaarten via de databus. Afhankelijk van hoe de bewerkingen worden uitgevoerd en in volgorde gebracht, kan de data heen en weer gaan over de bus voor een enkele bewerking, of misschien wordt het alleen uitgevoerd door de grafische kaart, alleen door de cpu, of een combinatie.
Daarom zul je zien dat het niet alleen gaat om het aantal cores, maar om welke bewerkingen moeten worden uitgevoerd, door wie, en waar die bewerkingen plaatsvinden. Als Handbrake het aantal keren dat data heen en weer stroomt tussen de cpu en GPU kan verminderen, kan dat verklaren waarom het beter presteert dan ffmpeg.
Het kunnen ook de filters zijn die verschillen tussen Handbrake- en ffmpeg-profielen. We proberen ze gelijk te houden, maar er zijn altijd kleine verschillen in hoe elke software een filter implementeert. Sommige kunnen het naar de GPU overhevelen, andere niet, weer andere gebruiken een mix van GPU en cpu voor een enkele bewerking, wat het nog trager kan maken dan een cpu-only bewerking, omdat de data tijd op de bus doorbrengt met heen en weer reizen.
Er zijn bewerkingen (zoals decoderen) die vaak efficiënter zijn op nieuwere cpu’s, omdat de tijd die nodig is om de data naar de GPU te sturen en terug een hogere latentie heeft dan de tijd die de cpu nodig zou hebben om de bewerking uit te voeren.
Wanneer je zoveel cores gebruikt, is het het beste om te kijken hoe je bewerkingen apart kunt opdelen voor cpu en GPU, en ik geloof dat ffmpeg je dat toestaat wanneer je een volledig aangepaste commandoregel maakt. Je hebt ook gedetailleerde informatie nodig over de mogelijkheden van je GPU om het te optimaliseren.