No Option for DNxHR in OBS

Zioth

New Member
When I go to Recording and Type Custom Output (FFmpeg) there is absolutely no option for DNxHR. I have even tried custom commands and nothing has worked.Does anyone know how I get this option to show? Do I need to put a custom command in a file and not in the OBS Recording settings area? Not sure what I am doing wrong. Any help would be great.
 

konsolenritter

Active Member
Not sure what you are expecting. What is your aim, your goal?
DNxHR is a codec, a specific kind and convention (and technique) to encode hires video content.

Its not the way OBS works, neither it's needed within OBS. DNxHR is more related to non-linear editing (hence offline editing) of video content with software like Davinci Resolve. You don't need DNxHR in a live production environment like OBS usually.
 

Zioth

New Member
Not sure what you are expecting. What is your aim, your goal?
DNxHR is a codec, a specific kind and convention (and technique) to encode hires video content.

Its not the way OBS works, neither it's needed within OBS. DNxHR is more related to non-linear editing (hence offline editing) of video content with software like Davinci Resolve. You don't need DNxHR in a live production environment like OBS usually.
Not to come rude but none of that answered any of my questions. I record with OBS. I do not use it for live production of anykind. I wanted to record into the codec so I did not have to take the extra time to convert it later to then edit.
 

konsolenritter

Active Member
To be honest i just asked you what your aim for the whole task is. (You didn't described it in the first post. Now you've done it.)
The information i gave should only have told you that its not in the focus of OBS. This is an OBS forum.

As you already mentioned by yourself that ffmpeg could/should work as the bridge for what you aim.
But you asked how "this option to show" in OBS. Hence it's not part of OBS there is no option for that available.
The only way to get it work are indeed custom commands (or better options) to ffmpeg, i think.

So please try aunt Guugle with words like "ffmpeg dnxhr".
It leads to ressources like this: http://macilatthefront.blogspot.com/2018/12/tutorial-using-ffmpeg-for-dnxhddnxhr.html
Please look if that helps you further...

As others tell too:
DNxHD, DNxHR, ProRes and Cineform are all what are known as "intermediate codecs". This means that they're designed to be used to transcode footage from other sources into a form that's easy for video editing programs to work with while maintaining quality.

We (and all possible successors) would be glad if you find a working solution/combination of ffmpeg parameters, please return and post it here. Thx! :-)
 

Zioth

New Member
To be honest i just asked you what your aim for the whole task is. (You didn't described it in the first post. Now you've done it.)
The information i gave should only have told you that its not in the focus of OBS. This is an OBS forum.

As you already mentioned by yourself that ffmpeg could/should work as the bridge for what you aim.
But you asked how "this option to show" in OBS. Hence it's not part of OBS there is no option for that available.
The only way to get it work are indeed custom commands (or better options) to ffmpeg, i think.

So please try aunt Guugle with words like "ffmpeg dnxhr".
It leads to ressources like this: http://macilatthefront.blogspot.com/2018/12/tutorial-using-ffmpeg-for-dnxhddnxhr.html
Please look if that helps you further...

As others tell too:


We (and all possible successors) would be glad if you find a working solution/combination of ffmpeg parameters, please return and post it here. Thx! :-)
What exactly is so difficult about it. I have searched and compiled some combinations but to no avail. I thought finding a solution would be "easy" lol boy was I wrong. I guess encoding is the easiest.

Was just trying to skip that extra step. I will see what I come up with.

Thanks for the help.
 

konsolenritter

Active Member
Another idea:

Why transcoding by hand?
Isn't your NLE (or whatever your next step in workflow is) capable to import mkv or mp4 at all?

Resolve for instance can read those and generates DNxHx on its own purpose on-the-fly if needed.
 

koala

Active Member
If if I browse the available ffmpeg formats and codecs in OBS, I find this:
1656160852772.png


Additional ffmpeg options:
Code:
D:\temp>ffmpeg -hide_banner -h encoder=dnxhd
    Encoder dnxhd [VC3/DNxHD]:
    General capabilities: dr1 threads
    Threading capabilities: frame and slice
    Supported pixel formats: yuv422p yuv422p10le yuv444p10le gbrp10le
dnxhd AVOptions:
  -nitris_compat     <boolean>    E..V....... encode with Avid Nitris compatibility (default false)
  -ibias             <int>        E..V....... intra quant bias (from INT_MIN to INT_MAX) (default 0)
  -profile           <int>        E..V....... (from 0 to 5) (default dnxhd)
     dnxhd           0            E..V.......
     dnxhr_444       5            E..V.......
     dnxhr_hqx       4            E..V.......
     dnxhr_hq        3            E..V.......
     dnxhr_sq        2            E..V.......
     dnxhr_lb        1            E..V.......

Keep in mind you have to set valid and codec specific fps, profile, color space and resolution, otherwise the codec refuses operation. For example, to use this codec with the default NV12 color space of OBS, you need to specify "profile=1" in the "video encoder settings" field above.
See also: https://askubuntu.com/questions/907...video-with-ffmpeg-into-the-dnxhd-dnxhr-format (this is not Linux specific, it's solely ffmpeg related)

Took me 20 minutes to research from basic knowledge (basic=I knew this codec does exist) about dnxhd. The video I created with these settings for testing purposes was valid. Google search terms "ffmpeg dnxhd", above kb article is first link found.
 
Last edited:

Zioth

New Member
Another idea:

Why transcoding by hand?
Isn't your NLE (or whatever your next step in workflow is) capable to import mkv or mp4 at all?

Resolve for instance can read those and generates DNxHx on its own purpose on-the-fly if needed.
I use premier currently. I got curious with the format once I tested it during editing and noticed how smooth it was. Usually I do my editing on my second computer so mp4 files were never really an issue but my main computer that records the footage was slow when editing. Transcoding the mp4 to dnxhr made this process smoother and gave me the ability do editing on my main pc two monitor setup.

Please forgive me with all this cause I am a bit of a noob lol. When I discovered ffmpeg a whole new world opened up for me but it's a bit daunting at times. When I ran into encoding issues with my pc and gpu I began looking for a fix and that turned into this then that and now this.
 

Zioth

New Member
If if I browse the available ffmpeg formats and codecs in OBS, I find this:
View attachment 84394

Additional ffmpeg options:
Code:
D:\temp>ffmpeg -hide_banner -h encoder=dnxhd
    Encoder dnxhd [VC3/DNxHD]:
    General capabilities: dr1 threads
    Threading capabilities: frame and slice
    Supported pixel formats: yuv422p yuv422p10le yuv444p10le gbrp10le
dnxhd AVOptions:
  -nitris_compat     <boolean>    E..V....... encode with Avid Nitris compatibility (default false)
  -ibias             <int>        E..V....... intra quant bias (from INT_MIN to INT_MAX) (default 0)
  -profile           <int>        E..V....... (from 0 to 5) (default dnxhd)
     dnxhd           0            E..V.......
     dnxhr_444       5            E..V.......
     dnxhr_hqx       4            E..V.......
     dnxhr_hq        3            E..V.......
     dnxhr_sq        2            E..V.......
     dnxhr_lb        1            E..V.......

Keep in mind you have to set valid and codec specific fps, profile, color space and resolution, otherwise the codec refuses operation. For example, to use this codec with the default NV12 color space of OBS, you need to specify "profile=1" in the "video encoder settings" field above.
See also: https://askubuntu.com/questions/907...video-with-ffmpeg-into-the-dnxhd-dnxhr-format (this is not Linux specific, it's solely ffmpeg related)

Took me 20 minutes to research from basic knowledge (basic=I knew this codec does exist) about dnxhd. The video I created with these settings for testing purposes was valid. Google search terms "ffmpeg dnxhd", above kb article is first link found.
My small and humble brain thank you so much for this explanation and information. After doing a test I got Compressor = DNxHR HQ 8-bit. I can't believe how simple this solution was but it means the world to me to finally understand it.
 

koala

Active Member
The format appears as smooth during editing, because it doesn't use any predicted frames (differential frames that are dependent from keyframes). Because of that, it also creates vastly bigger video files than for example h.264.
 

Zioth

New Member
The format appears as smooth during editing, because it doesn't use any predicted frames (differential frames that are dependent from keyframes). Because of that, it also creates vastly bigger video files than for example h.264.
I read that I can compress my DNxHR recordings for storage purposes if need be. I usually try to edit the footage and remove the original once a copy is made. I really appreciate all the help. I felt like I was trying to read Greek for a few days now lol.
 
Top