AVPro Video has growing support for playback of 10-bit content. Encoding videos as 10-bit can give improved quality for very little extra storage space, especially for gradients.
We are not talking about HDR videos here. We're simply talking about videos encoded with a higher per-pixel bit depth.
Even if you are displaying the 10-bit video on an 8-bit screen, there are still quality benefits to using 10-bit video.
Ability to decode 10-bit depending on your operating system and GPU capabilities. This is still a relatively new technology and shouldn't be used if compatibility is a high priority.
The Ultra edition now supports 10-bit textures on Windows, macOS, iOS and tvOS.
On the Core Edition only 8-bit textures are supported. In this case the 10-bit videos will be rendered to 8-bit, either directly or sometimes the driver will apply some smart dithering.
In the Ultra Edition you can specify to use 10-bit textures (in the
Platform Specific section). This will give the best results when displaying to a 10-bit back buffer and monitor. We have found that using the
WinRT API setting gives the best quality decode for 10-bit, whereas
Media Foundation API setting still seems to add some sort of dithering/resolve step.
Currently Windows is only officially supported:
|H.264 Main 10 Profile||HEVC Main 10 Profile||VP9||AV1|
|Windows (WinRT / Media Foundation)||. 1||✓ 2||?||?|
|Windows (DirectShow)||✓ 3||✓ 3||?||?|
1 Microsoft's H.264 Decoder doesn't support the Main 10 profile or output to 10-bit (P010) textures
2 Requires Windows 10 and Microsoft's HEVC Video Extensions. WinRT API gives the best quality results
3 Only when using a suitable 3rd-party codec such as LAV Filters
iOS / macOS / tvOS
iOS 11.0 and above
Only HEVC Main 10 Profile is supported.
iOS, macOS and tvOS will automatically generate textures capable of supporting 10 bits per component when the source media is 10-bit.
Depending on the texture format chosen this will be:
|Y CbCr 420|
This is a new feature which we hope to expand support and documentation for soon.
Using the command-line tool FFMPEG we have found the following command useful in testing:
ffmpeg -y -i %1 -pix_fmt yuv420p10le -color_primaries 1 -color_trc 1 -colorspace 1 -color_range 2 -crf 4 -vcodec libx265 -movflags +write_colr -movflags +faststart %i-hevc-10bit-rec709-high.mp4
For best results use
Rec709 as we do not yet support other primaries/colorspaces and incorrect rendering of colours will result otherwise.