Skip to content

Refactor encoder and codec types

This MR brings support for software and hardware-based h264 and h265 encoding.

  • remove single-image-based codecs like jpeg, bmp, and png. we can use the respective vtkJPEG, etc writers and readers.
  • add h264 support.
  • replace vaapi encoder with a generalized hardware encoder which can support different GPUs
  • add support for intel vaapi on linux.
  • add support for nvidia on linux and windows.
  • add placeholder support for video toolbox, amf, and media foundation.

On using h264/h265 - patent-fee + gpl and nvenc.

Since we neither redistribute FFmpeg within VTK as a source nor binary, I believe we're safe. A user may install FFmpeg from their distribution package manager which usually comes with nvenc, h264, and h265. These features are only used if they're present. This way, we can shift the onus of legal burden on the end-user. The way I see it, if they were to sell ParaView as a cloud service, they should not use h264/h265 at all and instead prefer VP9 with intel. Otherwise, MPEG LA may come knocking on the door for patent fees.

Merge request reports