[FFmpeg-trac] #8088(undetermined:new): FFmpeg allows DNxHD 175x, but not DNxHD 350x

FFmpeg trac at avcodec.org
Mon Aug 19 23:53:21 EEST 2019


#8088: FFmpeg allows DNxHD 175x, but not DNxHD 350x
-------------------------------------+-------------------------------------
             Reporter:  clawsoon     |                     Type:
                                     |  enhancement
               Status:  new          |                 Priority:  normal
            Component:               |                  Version:
  undetermined                       |  unspecified
             Keywords:               |               Blocked By:
             Blocking:               |  Reproduced by developer:  0
Analyzed by developer:  0            |
-------------------------------------+-------------------------------------
 In the Wikipedia list of DNxHD codecs, 175x and 350x are similar except
 that 350x uses 4:4:4 and runs at 352Mbps, while 175x uses 4:2:2 and runs
 at 176Mbps.  Both are 10 bit.

 It is possible to create an 8-bit DNxHD 175 with a command line like this:

 ffmpeg.exe -r 24000/1001 -i [input frames] -r 24000/1001 -c:v dnxhd
 -pix_fmt yuv422p -b:v 175M [output movie]

 It is possible to create a 10-bit DNxHD 175x with a command line like
 this:

 ffmpeg.exe -r 24000/1001 -i [input frames] -r 24000/1001 -c:v dnxhd
 -pix_fmt yuv422p10 -b:v 175M [output movie]

 However, a 10-bit DNxHD 350x fails:

 ffmpeg.exe -r 24000/1001 -i [input frames] -r 24000/1001 -c:v dnxhd
 -pix_fmt yuv444p10 -b:v 350M [output movie]
 ...
 [dnxhd @ 0000024cade3fec0] pixel format is incompatible with DNxHD profile
 [dnxhd @ 0000024cadde5840] ff_frame_thread_encoder_init failed
 Error initializing output stream 0:0 -- Error while opening encoder for
 output stream #0:0 - maybe incorrect parameters such as bit_rate, rate,
 width or height

 The error comes from this bit of code, which, if I'm reading it correctly,
 says that 4:4:4 is only available in the dnxhr_444 profile:

     if ((ctx->profile == FF_PROFILE_DNXHR_444 && (avctx->pix_fmt !=
 AV_PIX_FMT_YUV444P10 &&
                                                   avctx->pix_fmt !=
 AV_PIX_FMT_GBRP10)) ||
         (ctx->profile != FF_PROFILE_DNXHR_444 && (avctx->pix_fmt ==
 AV_PIX_FMT_YUV444P10 ||
                                                   avctx->pix_fmt ==
 AV_PIX_FMT_GBRP10))) {
         av_log(avctx, AV_LOG_ERROR,
                "pixel format is incompatible with DNxHD profile\n");
         return AVERROR(EINVAL);
     }

 I believe (though I'm not 100% certain) that this is incorrect; both 350x
 and 365x, which are DNxHD codecs, not DNxHR codecs, should support 4:4:4.

 Thanks.

 Andrew

--
Ticket URL: <https://trac.ffmpeg.org/ticket/8088>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker


More information about the FFmpeg-trac mailing list