So, one point I’ll make on the hardware assist you discuss is that it’s actually limited to very specific use cases. And the best way to understand this is to read the ffmpeg x264 encoding guide here:
https://trac.ffmpeg.org/wiki/Encode/H.264
The x265 guide is similar, so I won’t repeat. But there are a dizzying range of considerations to make when cutting a deliverable file. Concerns such as:
-
target display. Is the display an old style rec709 with 8 bits per color, SDR with of six and a half stops dynamic range, etc? Is it a rec2020, 10 bits per color, about eight stops? Is it a movie projector in a theater, with 12 bits per color and even more dynamic range? When producing deliverables, you choose output settings for encode specific to the target display type.
-
quality settings. Typically handled in Constant Rate Factor (CRF) settings. If you’ve burned video files, you’ll know the lower the CRF number the higher the image quality. But the higher the image quality the lower the overall compression. It’s a tradeoff.
-
compression. The more computation put to compression the smaller the video file per any CRF setting. But also the longer it takes to complete the computation.
This is only for local playback. Streaming requires a additional tweaks. And it’s only for a deliverable file. In the production pipeline you’d be using totally different files which store each frame separately rather than compress groups of frames, retain far more image data per frame, and are much less compressed or entirely uncompressed overall.
The point of this is to highlight the vast difference in use cases placed on encoding throughout various stages in a project. And to point out for video production you care about system I/O bandwidth most of all.
But hardware encode limits you to very specific output ranges. This is what the preset limitations are all about for say nvidia nvenc hardware assist x264 in ffmpeg. The hardware devs select what they think is the most common use case, say YouTube as an output target (which makes network bandwidth and display type presumptions), and targets their hardware accel for that.
This means most of that marketing talk about hardware assist in M series chips and GPUs etc is actually not relevant for production work. It’s only relevant for cutting final deliverable files under specific use cases like YouTube, or Broadcast (which still wants 10bit ProRes).
If you look at just x264 settings, the hardware accel presets are so limited most times you’d still be cutting with software encode. Hardware encode comes into play with real time, like streaming and live broadcast. The rest of the pipeline? All software.
I’ll say, I really like MacOS! I transitioned from Linux to MacOS X back in 10.2 days and kept with it until 2017 or so. Put homebrew on there and fill it up with a bunch of 'nix tools and you get a respectable unix. Plus you get access to a bunch of commercial software unavailable on Linux. I was very happy with this solution for well over a decade.
My problem came with Apple. Their hardware lock downs preventing upgrades and fixing stuff, plus the newer software lockdowns, all this nonsense just made it impossible for me to do my work. Like Microsoft, Apple imposes itself on my workflow. And while Linux doesn’t do stuff I’d like in the commercial realm, one thing it doesn’t do is stick its nose in my workflow. If something breaks I can fix it. I don’t have to deal with it demanding I reboot my machine for an update while the box is in the middle of a two week long render. I don’t have to be forced onto the network to login to a central Microsoft or Apple authentication server just to use my computer. I don’t have to deal with them bugging me to stick my clients’ data on their cloud services I signed an legal NDA promising to protect just because the company wants me to.
My issue is not with the software, even on Windows, it’s with the corporate practices! They get in my way. I bought this computer to make money with, not so they can make money off me and my clients! When you sign legal documents promising to not disclose confidential material related to a pending bid, and your OS vendor spies on you, I mean most people don’t seem to care about that but I sure do. lol