[FFmpeg-devel] [PATCH] avcodec/nvenc: support dynamic resolution change

Linjie Fu linjie.justin.fu at gmail.com
Sat Aug 8 18:22:39 EEST 2020


On Sat, Aug 8, 2020 at 7:21 PM Timo Rothenpieler <timo at rothenpieler.org> wrote:
>
> On 08.08.2020 02:48, Linjie Fu wrote:
> > On Fri, Aug 7, 2020 at 4:19 PM leozhang <leozhang at qiyi.com> wrote:
> >>
> >> Allow dynamic resolution change, this is useful for real time video communication application.
> >>
> >> Use below commands to test it,
> >> ffmpeg -i reinit-large_420_8-to-small_420_8.h264 -noautoscale -c:v hevc_nvenc out.265 -loglevel verbose -y
> >> ffmpeg -i reinit-large_420_8-to-small_420_8.h264 -noautoscale -c:v h264_nvenc out.264 -loglevel verbose -y
> >>
> >> Signed-off-by: leozhang <leozhang at qiyi.com>
> >> ---
> >>   libavcodec/nvenc.c | 22 +++++++++++++++++++++-
> >>   1 file changed, 21 insertions(+), 1 deletion(-)
> >
> > Hi leozhang,
> >
> > Adding dynamic resolution encoding support is the tendency, and there
> > are some previous discussions[1] [2]
> > about adding support for dynamic resolution encoding.
> >
> > And one conclusion is that we'd prefer to cope with this in a more
> > general way, like recreating the
> > encoder instance instead of modifying in specific codec.
> >
> > - Linjie
>
> The problem is, that specially in the case of nvenc, re-creating the
> encoder can take several seconds.

There is once a concern about parameter changing in the AVCodecontext
in the last discussion:
[1] libavcodec encoders have always assumed that the stream parameters
are set once and never change afterwards.

> Patch generally looks okay to me, and I'm fine with applying it.
I'm ok with this if it didn't cause the side-effects you've mentioned.
(since before we got a decent support, better ever than never)

- Linjie

[1] https://lists.ffmpeg.org/pipermail/ffmpeg-devel/2020-February/257377.html


More information about the ffmpeg-devel mailing list