[FFmpeg-devel] [PATCH] libavformat/mxfenc: Allow more bitrates for NTSC IMX50

Tomas Härdin tjoppen at acc.umu.se
Thu Aug 20 13:35:00 EEST 2020


tis 2020-08-18 klockan 15:21 +0100 skrev Mark Himsley:
> Sorry to drag up this old thread:
> 
> On Mon, 19 Aug 2019 at 17:55, Thomas Mundt <tmundt75 at gmail.com>
> wrote:
> ...
> > I can give you the parameters that I use for IMX50. Not sure if these are
> > the best. Got the intra matrix values from an original imx file.
> > 
> > NTSC: -c:v mpeg2video -pix_fmt yuv422p -aspect 16:9 -top 1 -flags
> > +ildct+ilme+low_delay -color_range tv -color_trc smpte170m -color_primaries
> > smpte170m -colorspace smpte170m -chroma_sample_location topleft
> > -signal_standard bt601 -dc 10 -intra_vlc 1 -non_linear_quant 1 -ps 1 -g 1
> > -qscale:v 1 -qmin 1 -qmax 12 -b:v 49999841 -minrate 49999841 -maxrate
> > 49999841 -bufsize 1668329 -rc_init_occupancy 1668329 -rc_min_vbv_use 1
> > -rc_max_vbv_use 1 -profile:v 0 -level:v 5 -intra_matrix
> > 8,16,16,17,19,22,23,31,16,16,17,19,20,23,29,29,19,17,19,22,19,25,28
> > ,35,17,19,19,20,25,28,25,33,17,19,22,25,26,25,31,31,17,19,17,20,26,
> > 28,35,36,19,19,19,20,22,29,32,35,16,17,19,22,25,31,28,45
> > 
> > PAL: -c:v mpeg2video -pix_fmt yuv422p -aspect 16:9 -top 1 -flags
> > +ildct+ilme+low_delay -color_range tv -color_trc smpte170m -color_primaries
> > bt470bg -colorspace bt470bg -chroma_sample_location topleft
> > -signal_standard bt601 -dc 10 -intra_vlc 1 -non_linear_quant 1 -ps 1 -g 1
> > -qscale:v 1 -qmin 1 -qmax 12 -b:v 50000000 -minrate 50000000 -maxrate
> > 50000000 -bufsize 2000000 -rc_init_occupancy 2000000 -rc_min_vbv_use 1
> > -rc_max_vbv_use 1 -profile:v 0 -level:v 5 -intra_matrix
> > 8,16,16,17,19,22,23,31,16,16,17,19,20,23,29,29,19,17,19,22,19,25,28
> > ,35,17,19,19,20,25,28,25,33,17,19,22,25,26,25,31,31,17,19,17,20,26,
> > 28,35,36,19,19,19,20,22,29,32,35,16,17,19,22,25,31,28,45
> > 
> > Regards,
> > Thomas
> 
> As it stands, FFmpeg from `master` cannot create 30000/1001 FPS IMX50,
> and it has to be patched to allow 49999841 to be the valid bitrate,
> not 499998410 which is in the source code.
> Is there any movement on this issue?
> Why is 49999840 in the source code as a variant on 50000000 when it
> just does not work?
> Is it not better to put 49999841 into the source code?

The problem is that bitrate is an integer, whereas CBR NTSC bitrate is
fractional. The muxer could be made to accept a narrow range of bitrate
metadata values of course.

The real problem is rate control in the MPEG-2 encoder. It is currently
not possible to create 50 Mbps CBR NTSC essence with lavc, so this
whole discussion became moot. The proper fix for this is to implement
CBR encoding via a "bytes per packet" field.

/Tomas



More information about the ffmpeg-devel mailing list