You're depth of knowledge is far beyond anyone else that I've encountered. Heck, just syncing the different cameras is a major undertaking and you do it so smoothly and that provides a true, real, side by side comparison that no one else has even thought of.
Being a
Blue Iris user I have to ask how H264 performs?
@sebastiantombs another great question on H.264.
Yes you can use Main Profile H.264 or even H.264B (Baseline Profile) too if you wish (personally would steer clear of baseline). Let me go into some more detail below in case helpful for others here. Warning I’ll go into more technical detail for a sec but will try to keep it general where I can
H.264 Profile Differences, Impact & Summary
The differences in a codec profile really come down to the algorithms and features offered by the profile itself (increasing as you move from baseline, main, high) within the codec (where applicable). For example with H.264, when you move up from Baseline to Main & High profiles you start to gain extra features such as B Slices, CABAC or Context-based Adaptive Binary Arithmetic Coding (also used in HEVC or H.265 too BTW) vs the less performant/less efficient Context Based Adaptive Variable Length or CAVLC coding. CABAC aims to improve compression quality by moving to an adaptive approach to probability distribution that plays a part when the codec is looking at predictive vs actual blocks for areas to maximize compression.
The high profile also gains 8x8 vs 4x4 transform adaptivity which allows the codec to choose between 8x8 or 4x4 block sizes in processing the image vs 4x4 only in the Baseline profile. This assists in overall output as it allows the codec to identify stronger motion isolation where it can, therefore leading to a more balanced and higher quality image (less artifacts, impacts to PQ etc) vs Baseline while still doing a good job on compression overall. High Profile was originally primarily focused at broadcast based applications BUT as IP cams for example have moved into HD & above, they benefit from these improved profiles (and newer codecs) more now.
Therefore H.264 Baseline for example can be summed up as using fewer ‘encoding
tools’ or less complex algorithms that can result in lower quality output BUT easier to decode by a wider number of systems while decreasing computational complexity. H.264H adds the more complex algorithms (some of which I mentioned above) while improving quality and efficiency and while being more complex it is NOT as complex (or CPU intensive) as H.265 generally speaking.
Other Areas of Concern To Consider When Selecting a Codec & Profile
Over and above what I mentioned, in terms of where this will impact, most people focus on file size and have the mindset that as you move up codecs such as to H.265 you gain efficiency which should = maximizing quality while minimizing file size. To be fair that can be (and often is) true BUT as I mentioned above there are other criteria you should consider. One of these is that H.265 and other codecs also cause an impact to CPU/processing. Now, depending on device and a decent HW encoder, those CPU impacts can be minimal BUT on other mid to low end systems OR using devices such as IP cams trying to process video in real-time (on-board encoding of bitstream etc) it can cause issues with cam performance. This can be seen in a number of ways including but not limited to slow down/impact to responsiveness in GUI (if accessing live or from multiple target points such as NVR, 3rd party stream processor, multiple sub streams etc), degraded performance in stream output (which can be seen in fps or other areas) etc. This performance degradation can be quite impactful especially to critical captures IF cams are underpowered and/or processing becomes more complex in conjunction with other camera functions operating in real-time as I’ve written about before.
As I mentioned above though, you have to take into consideration the specific types of footage you are capturing such as high speed, dark scenes, complex patterns, contrasting areas etc. Choosing the wrong codec can lead to great efficiency at the expense of sub-optimal and/or non-consistent quality in part or all of your footage (depending on content within it as stated). It is this impact to output quality that is not a compromise I advocate for, storage is cheap
In my experience, the compression efficiency vs PQ of H.264 in the High Profile (H) is the sweet spot for these cams right now. Thats not to say this sweet spot won't change (and I'll certainly update when I see it) as cams, codecs and configs evolve but my recommendation right now would be H.264H.
While on the subject of encoding, the other area that I’ve mentioned before is CBR vs VBR, always use CBR. VBR still doesn’t respond quick enough to real-time changes in motion to produce guaranteed great PQ that you can rely on in my experience. Often times you’ll see macro blocking or other compression artifacts that can ruin that critical frame etc. For those using VBR, try CBR and see what you’re missing
HTH