nvpro-samples / vk_video_samples

Vulkan video samples
Apache License 2.0
237 stars 40 forks source link

Suggest:Support How to convert vkimage BGRA32 pixel format to vkimage NV12 pixel format and How to implement a demo of vkimage rendering image GPU direct vkencode encoding #75

Open moyidaren opened 2 months ago

moyidaren commented 2 months ago

Hello, Nvidia engineers. We plan to encode vkimage rendered frames within applications based on Vulkan technology through GPU through Vulkan encoding, but currently we have encountered several challenges.

  1. How to convert vkimage BGRA32 pixel format to vkimage NV12 pixel format.

  2. How to achieve a demo of vkimage rendering images using GPU direct vkencode encoding.

  3. When will "Support for encoding tuning and quality levels" and "Better Support for rate control" be implemented?

  4. When will mature SDKs similar to NVENC be available? We need to set encoding parameters such as infinite GOP and intra frame refresh.

It would be great if you could give us some advice. Thank you again for your hard work and pay tribute to you.

zlatinski commented 2 months ago

Hi moyidaren,

How to convert vkimage BGRA32 pixel format to vkimage NV12 pixel format.

You can use the compute filter from the sample app. We haven't yet integrated it to the encoder, but we are in the process of doing that.

How to achieve a demo of vkimage rendering images using GPU direct vkencode encoding.

You can start with the encoder sample where you can pass in the images from the the rendering you would want to compress. I hope we can provide a sample doing that in the next few months.

When will "Support for encoding tuning and quality levels" and "Better Support for rate control" be implemented?

We plan to add support for this by the end of the year. However, if you have a specific use case you want us to cover earlier, please send me an email to tzlatinski@nvidia.com with your company's use case and we can prioritize that.

When will mature SDKs similar to NVENC be available? We need to set encoding parameters such as infinite GOP and intra frame refresh.

Hopefully by the end of the year. We try to do that in the context of Vulkan video API with sample code. Otherwise supporting a lot of features from the driver side will not take as much tome for us to do. Again, if you were to send me our use case, we can set a priority to a specific features.