Wowza Community

Why no B-Frames for NVENC

Dear Wowza,

NVENC supports B-Frames.

You support B-Frames using your “default” encoder.

Can we expect upcoming support of B-Frames in NVENC?

There may be, depending on your system. Take a look at the encoder params available in your system following this guide

I’m not sure what the affect will be, but I see this param:

INFO server comment - # long: advanced gop settings: use adaptive B-frames placement or not

INFO server comment - mainconcept.adaptive_b_frames: 1

These params are not documented, so you have to see what affect they have and if available on your system

Richard

Sorry, I did not know that param had been documented, missed it or forgot, in general they are not. I will ask around about NVENC b-frame support plans.

Richard

Does this count as documentation?: https://www.wowza.com/docs/how-to-configure-b-frame-support-when-using-wowza-transcoder

In Wowza Media Server® 3.5.0 and later, Wowza Transcoder AddOn supports bi-directional frames (B-frames) when using the default transcoder implementation and the Main Profile. B-frame generation is turned off by default. To enable B-frames for a given block, add the following parameter definition to the Video/Parameters container in the block in your transcoder template:

Code:

mainconcept.reordering_delay

2

Integer

The Value property specifies the number of B-frames to generate between each P-frame. The number of B-frames generated is always one less than the specified value. So for example, a value of 2 instructs the encoder to generate a single B-frame between each P-frame, a value of 3 instructs the encoder to generate two B-frames between each P-frame, and so on. A value of 1 instructs the encoder to generate zero B-frames between each P-frame, which effectively disables the feature.

Note: B-frame support is only available when using the default encoder implementation and the Main Profile. It’s not supported when using Intel Quick Sync, NVIDIA CUDA, or NVIDIA NVENC accelerated encoding.

Emphasis mine. The log output you posted was for the “default” mainconcept encoder, which (as stated above) I already know can do b-frames.

This all leaves my original question unanswered, so I’ll ask again: “Can we expect upcoming support of B-Frames in NVENC?”

Thanks very much for that. I will eagerly await the reply (until then our Kepler cards produce somewhat inferior streams to those encoded by the CPU encoder, which makes them $800 paperweights).