Handbrake: Feature request: Support DNxHR as source

Created on 31 Aug 2017  路  15Comments  路  Source: HandBrake/HandBrake

DNxHR is the successor of the already supported DNxHD.
It is a frequently used intermediate codec which supports 4k resolutions (unlike DNxHD).
Supporting this codec would make it possible to convert 4k output of any NLE with Handbrake.
Otherwise you rely on the limited NLE exporting options.

Upstream Enhancement

Most helpful comment

A Cineform HD decoder has already been added to Libav master. HandBrake is currently on Libav release 12, so presumably this will become available with release 13, whenever that is.

All 15 comments

Thanks for the request. This is actually dependent on our upstream decoder, Libav. HandBrake will gain support for DNxHR when it gains support.

Will leave this open to track any updates.

Is the same is true for supporting GoPro Cineform as an input?

A Cineform HD decoder has already been added to Libav master. HandBrake is currently on Libav release 12, so presumably this will become available with release 13, whenever that is.

as ffmpeg already supports DNxHR it should come with realisation of replacing libav with ffmpeg (#974)
Cineform is supported in ffmpeg since 2016

@menaceone Should be fixed then; #974 is closed with the switch to ffmpeg completed.

Yes, please try the latest nightly build to verify DNxHR support. Will leave this open pending feedback.

Hey Guys,
awesome work with that ffmpeg replacement.
I did some tests.

I was able to open all sorts of DNxHR and Cineform files.
Cineform works like a charm.

Unfortunately HandBrake didn't recognize any audio tracks in the .mxf containers of the DNxHR files.
"MediaInfo" shows the correct audio tracks in the .mxf containers, therefore I assume the source files are correct.

OS: Windows
Source file generator: Adobe Media Encoder CC 12.1 (latest)
Handbrake Version: 20180529-4b3aa7b_x86_64-Win_GUI (nightly)

|codec |container |fps|video |audio |
|:----------------|:-------------|:---|:---|:---|
| GoPro_Cineform_YUV_10bit | mov | 29,97|:heavy_check_mark: |:heavy_check_mark:|
| GoPro_Cineform_YUV_10bit | mov | 59,94|:heavy_check_mark: |:heavy_check_mark:|
| GoPro_Cineform_RGB_12bit | mov | 59,94|:heavy_check_mark: |:heavy_check_mark:|
| GoPro_Cineform_RGB_12bit_withAlpha| mov | 59,94|:heavy_check_mark: |:heavy_check_mark:|
| DNxHR_HQ_8bit| mxf | 29,97|:heavy_check_mark: | :x:|
| DNxHR_HQ_8bit| mxf | 59,94|:heavy_check_mark: | :x:|
| DNxHR_HQX_10bit| mxf | 59,94|:heavy_check_mark: | :x:|
| DNxHR_RGB_444_10bit| mxf | 59,94|:heavy_check_mark: | :x:|

Thanks much for testing this and providing the comprehensive feedback.

Any chance you can provide a small sample MXF for troubleshooting the missing audio issue?

Want to post a log for those audio issues?

Also, I do wonder if the multi-track audio weirdness is also resolved or if it's still many mono tracks.

What does "ffmpeg -i input" show for one of the mxf files?

@bradleysepos
here is a .mxf sample. For file size reasons it is a short 1080p, DNxHR LB 8bit file (~10MB)
link

@sr55
In Adobe Media Encoder (AME) you can set the audio option separate mono tracks.
It's disabled by default. I tested files with this option enabled and disabled, there was no difference in track recognition in Handbrake.

you mean the HandBrake activity Log for the .mxf file scan?

Input #0, mxf, from 'C:\Users\william\Desktop\test\DNxHR_RGB_444_10bit.mxf':
  Metadata:
    uid             : 1d87cefd-6759-11e8-8e89-6045cba08696
    generation_uid  : 1d87cefe-6759-11e8-b949-6045cba08696
    company_name    : Adobe Systems Incorporated
    product_name    : Adobe Media Encoder
    product_version : 12.1.0
    application_platform: win32
    product_uid     : 0c3919fe-46e8-11e5-a151-feff819cdc9f
    modification_date: 2018-06-03T18:08:27.000000Z
    material_package_umid: 0x060A2B340101010501010D1113000000338EE403728205A5B69F6045CBA08696
    timecode        : 00:00:00:00
  Duration: 00:00:03.50, start: 0.000000, bitrate: 3504060 kb/s
    Stream #0:0: Video: dnxhd (DNXHR 444), yuv444p10le(bt709/unknown/unknown, progressive), 3840x2160, SAR 1:1 DAR 16:9, 59.94 fps, 59.94 tbr, 59.94 tbn, 59.94 tbc
    Metadata:
      file_package_umid: 0x060A2B340101010501010D12138A02FA308EE403728205A52CC76045CBA08696
      file_package_name: Source Package
      track_name      : Track 1
    Stream #0:1: Audio: pcm_s16le, 48000 Hz, 2 channels, s16, 1536 kb/s
    Metadata:
      file_package_umid: 0x060A2B340101010501010D12138A02FA308EE403728205A52CC76045CBA08696
      file_package_name: Source Package
      track_name      : Track 2
[20:13:08] scan: decoding previews for title 1
[20:13:14] scan: 10 previews, 3840x2160, 59.940 fps, autocrop = 0/0/0/0, aspect 16:9, PAR 1:1
[20:13:14] scan: removing audio 0x1 because no bitrate found
[20:13:14] libhb: scan thread found 1 valid title(s)

 # Processing Scan Information ...


 # Scan Finished ...

@cehoyos
here a ffmpeg -i DNxHR_HQ_8bit_29.97.mxf output:

[mxf @ 000001f8947b9b40] Stream #0: not enough frames to estimate rate; consider increasing probesize
Guessed Channel Layout for Input Stream #0.1 : stereo
Input #0, mxf, from 'DNxHR_HQ_8bit_29.97.mxf':
  Metadata:
    uid             : 1ce28e41-6759-11e8-ae29-6045cba08696
    generation_uid  : 1ce28e42-6759-11e8-99e9-6045cba08696
    company_name    : Adobe Systems Incorporated
    product_name    : Adobe Media Encoder
    product_version : 12.1.0
    application_platform: win32
    product_uid     : 0c3919fe-46e8-11e5-a151-feff819cdc9f
    modification_date: 2018-06-03T18:08:26.000000Z
    material_package_umid: 0x060A2B340101010501010D11130000008E8CE403728205A5C4AD6045CBA08696
    timecode        : 00:00:00:00
  Duration: 00:00:03.50, start: 0.000000, bitrate: 878037 kb/s
    Stream #0:0: Video: dnxhd (DNXHR HQ), yuv422p(bt709/unknown/unknown, progressive), 3840x2160, SAR 1:1 DAR 16:9, 29.97 tbr, 29.97 tbn, 29.97 tbc
    Metadata:
      file_package_umid: 0x060A2B340101010501010D12139810088C8CE403728205A53AD56045CBA08696
      file_package_name: Source Package
      track_name      : Track 1
    Stream #0:1: Audio: pcm_s16le, 48000 Hz, stereo, s16, 1536 kb/s
    Metadata:
      file_package_umid: 0x060A2B340101010501010D12139810088C8CE403728205A53AD56045CBA08696
      file_package_name: Source Package
      track_name      : Track 2

and finally here a MediaInfo export:

Complete name                            : C:\Users\william\Desktop\test\no_i_rendering.mxf
Format                                   : MXF
Commercial name                          : DNxHR HQ
Format version                           : 1.2
Format profile                           : OP-1a
Format settings                          : Closed / Complete
File size                                : 367 MiB
Duration                                 : 3 s 504 ms
Overall bit rate                         : 878 Mb/s
Package name                             : Source Package
Encoded date                             : 2018-06-03 18:14:51.148
Writing application                      : Adobe Systems Incorporated Adobe Media Encoder 1.0.0.0.1
Writing library                          : win32 5.0.12.0.1

Video
ID                                       : 512
Format                                   : VC-3
Commercial name                          : DNxHR HQ
Format version                           : Version 3
Format profile                           : RI@HQ
Format settings, wrapping mode           : Frame
Codec ID                                 : 0D01030102110100-0401020271260000
Duration                                 : 3 s 504 ms
Bit rate mode                            : Constant
Bit rate                                 : 873 Mb/s
Width                                    : 3 840 pixels
Height                                   : 2 160 pixels
Display aspect ratio                     : 16:9
Frame rate                               : 29.970 (30000/1001) FPS
Color space                              : YUV
Chroma subsampling                       : 4:2:2
Bit depth                                : 8 bits
Scan type                                : Progressive
Bits/(Pixel*Frame)                       : 3.512
Stream size                              : 365 MiB (99%)

Audio
ID                                       : 768
Format                                   : PCM
Format settings, Endianness              : Little
Format settings, wrapping mode           : Frame (BWF)
Codec ID                                 : 0D01030102060100
Duration                                 : 3 s 504 ms
Bit rate mode                            : Constant
Bit rate                                 : 1 536 kb/s
Channel(s)                               : 2 channels
Sampling rate                            : 48.0 kHz
Frame rate                               : 29.970 FPS (1601.6 SPF)
Bit depth                                : 16 bits
Stream size                              : 657 KiB (0%)
Locked                                   : Yes

Other #1
ID                                       : 0-Material
Type                                     : Time code
Format                                   : MXF TC
Time code of first frame                 : 00:00:00:00
Time code settings                       : Material Package
Time code, striped                       : Yes

Other #2
ID                                       : 0-Source
Type                                     : Time code
Format                                   : MXF TC
Time code of first frame                 : 00:00:00:00
Time code settings                       : Source Package
Time code, striped                       : Yes

Other #3
Type                                     : Time code
Format                                   : SMPTE TC
Muxing mode                              : SDTI
Time code of first frame                 : 00:00:00:00

EDIT: shortened Handbrake input scan log to one file.
possible problem: scan: removing audio 0x1 because no bitrate found
although few lines before Stream #0:1: Audio: pcm_s16le, 48000 Hz, 2 channels, s16, 1536 kb/s

[20:15:22] scan: removing audio 0x1 because no bitrate found

@jstebbins Do you have time to look at this? Sample in previous post.

I'm about out of time today, and next week I need to focus on some real job issues. Not sure how much time I'll have, but there's a good chance I can do some digging in the evenings.

Just a gently push.
Any new insights? Do you need further samples or testing?

Closing as I believe this issue is now fixed. If problems persist, feel free to comment further and we can reopen.

Was this page helpful?
0 / 5 - 0 ratings