Free converter that converts to DNxHD?

JPS333JPS333 Website User Posts: 119 Just Starting Out

Hey Hitfilm community, I have recently been looking for a good free converter that can convert my video files into DNxHD (which many people say is fantastic for editing). The problem is that I can't a free converter that does this, and if it is free it's usually a trial that has a watermark on it. So I am just wondering if anyone knows a free converter that does this.

As always, all comments and suggestions are greatly appreciated. 

Thanks.

     

«1

Comments

  • kevin_nkevin_n Website User Posts: 1,931 Enthusiast
    edited April 2016

    Download Avid DNxHD codec which is free, and then download MPEG Streamclip, also free.

    http://www.videohelp.com/software/Avid-DNxHD

    http://www.squared5.com/

    No trials, my personal favorite is the batch processing.

     

    Kevin

  • JPS333JPS333 Website User Posts: 119 Just Starting Out
    edited April 2016

    @KevinTheFilmmaker Thanks mate, these helped alot and got the job done!

  • PaulHeshPaulHesh Website User Posts: 121 Just Starting Out
  • Aladdin4dAladdin4d Moderator Website User, Imerge Beta Tester, HitFilm Beta Tester Posts: 2,509 Enthusiast

    Beware of Super it usually comes with a lot of unwanted extra spyware. If you can get past that it's not a bad utility.

  • NormanPCNNormanPCN Website User Posts: 3,948 Enthusiast
    edited April 2016

    Convert V3 can convert to DNxHD. It will also convert to ProRes and other common formats. While it is not a free app the trail mode is functional and does not watermark. It only converts two files at a time. You have to close and restart the app. The trial mode will not handle image sequences.

    edit: Convert does not need Quicktime installed to read or write DNxHD files. Hitfilm does need Quicktime and the Avid codecs installed.

  • StormyKnightStormyKnight Moderator, Website User, Ambassador, Imerge Beta Tester, HitFilm Beta Tester Posts: 2,726 Ambassador

    @KevinTheFilmmaker - I tried downloading Avid DNxHD last week and after going through the set up nothing appeared on my desktop nor could I find anything in the program files. So how does this work exactly? I haven't found anything that resembles the screenshot on the page you linked. What did I miss?

  • kevin_nkevin_n Website User Posts: 1,931 Enthusiast

    @StormyKnight

    I can't answer that. :P

  • NormanPCNNormanPCN Website User Posts: 3,948 Enthusiast

    @StormyKnight The Avid codecs install into Quicktime. They are not a program, there is nothing to run and they do nothing without some other software that uses the Quicktime subsystem for file encoding. After installing they will simply show up as an available codec in the list of codecs most file encoders that are able to use Quicktime.

    Also, after installation, Quicktime will be able to decode DNxHD and DNxHR for applications that use Quicktime for file reads. Hitfilm falls into this category.

  • Aladdin4dAladdin4d Moderator Website User, Imerge Beta Tester, HitFilm Beta Tester Posts: 2,509 Enthusiast

    @StormyKnight It's a QuickTime codec pack so you won't see anything on the desktop or program files. 

    You can access the codec with QuickTime Pro, Mpeg Streamclip or since I know you have it, Sony Vegas. Here's the steps to create a new DNxHD rendering template in Vegas:

    http://johnrofrano.com/training/video-tutorials/avid-dnxhd-template-for-vegas-pro/

    With Mpeg Streamclip import a clip then File--> Export to other formats...... A new window will open. Make sure the first drop down is set to QuickTime movie then click the Options button. Another window will open. Click the Settings button to open yet another window. Now you can select the compression codec in the top drop down list. The Avid codecs will be listed there. Mpeg Streamclip can also batch process. To do that follow the steps here:

    http://www.jasonmyres.com/2012/07/transcoding-h-264-to-dnxhd-for-fast-import-in-media-composer-6/

    With the only difference being selecting Export to other formats...... instead of Export to QuickTime. 

    Since you have it I would just use Vegas. I don't know if you have Vegasaur or Ultimate S but even without those it's still pretty easy to batch process in Vegas. Using scripts you can just drop all the clips you want to transcode on a track, add region markers to the events then batch render the regions.

    Vegas comes with a script to batch render regions but you'll need to add one to add regions to events and you need to have a render profile set up. Here's the AddRegionsToEvents.js script:

    http://www.sonycreativesoftware.com/forums/showmessage.asp?messageid=226855

    If you don't want to fool with copying and pasting that's ok because there's an archive of all kinds of Vegas scripts here and it includes that one:

    http://s92274348.onlinehome.us/vegas.html

    These should be put in the Scripts Menu folder (C:\Program Files\Sony\Vegas Pro\12.0\Script Menu - replace 12.0 with your version number) that way all you have to do is go to Tools-->Scripting to bring them up but they don't have be. You can keep them in a separate folder and go to Tools-->Scripting-->Run Script.... and browse to the folder to select the script you want.

     

  • StormyKnightStormyKnight Moderator, Website User, Ambassador, Imerge Beta Tester, HitFilm Beta Tester Posts: 2,726 Ambassador
    edited April 2016

    @KevinTheFilmmaker - Okay- neither can I.

    @NormanPCN -  Thanks! I was confused by the screenshot on the Avid page. I thought maybe it had it's own program to access the codec.

    @Aladdin4d - I will definitely check out the articles further later today- I have to get ready for work now. Thank you too for the great info!!!

  • AvalonAvalon Website User Posts: 96

    Many options for free DNxHD encoding.

    You could also use FFmpeg to encode DNxHD in MOV or MXF wrapper. No need for Quicktime here, even apps like Catalyst Edit or Prepare don't need Quicktime to read DNxHD MFX, though apparently HitFilm does (at least I don't have Quicktime installed and HitFilm refuses to read my DNxHD MXF files).

  • StormyKnightStormyKnight Moderator, Website User, Ambassador, Imerge Beta Tester, HitFilm Beta Tester Posts: 2,726 Ambassador
    edited April 2016

    @Avalon - Thanks for the info! I'll look into that too! I think I may have played around with FFmpeg at one time but that was before I started using HF.

  • NormanPCNNormanPCN Website User Posts: 3,948 Enthusiast
    edited April 2016

    For those that might want to dive into the deep end of file transcoders here is a Windows command file that uses ffmpeg to convert to DNxHD. Given how DNxHD is restrictively defined and how ffmpeg exposes this to us the command file is a kinda elaborate. It needs to figure out the proper bitrate parameter to use with ffmpeg. This script does this automatically regardless of input.

    The command file is written to use file drag and drop. Select a number of files to convert and drag and drop them onto the icon for this command file.  The files will be converted where the converted file will be in the same folder as source and with the same filename but with "_dnx" appended.

    @echo off

    title transcode to DNxHD

    set TempFile=%TEMP%\ffprobe.txt

    set RATE=std
    REM bitrate modes: proxy, std, hq.
    REM     720 does not have a proxy mode and generates std for a proxy setting in this script

    :top
    call :GetBitrate %1
    if errorlevel 1 goto error
    c:\systools\ffmpeg\bin\ffmpeg.exe -i %1 -c:v dnxhd -b:v %BITRATE% -pix_fmt yuv422p -colorspace bt709 -color_primaries bt709 -color_trc bt709 -c:a pcm_s16le -chunk_size 96K "%~dpn1_dnx.mov"
    if errorlevel 1 goto error
    REM pause

    shift
    if NOT %1$==$ goto top
    del %TempFile%
    goto :EOF

    :error
    echo !!! error encoding !!!
    del %TempFile%
    pause
    goto :EOF

    :GetBitrate
    set BITRATE=fubar

    c:\systools\ffmpeg\bin\ffprobe.exe -v error -select_streams v:0 -show_entries stream=avg_frame_rate,height -of default=noprint_wrappers=1 %1 > %TempFile%
    find /C "1080" %TempFile%
    if %ERRORLEVEL% EQU 0 goto x1080
    find /C "720" %TempFile%
    if %ERRORLEVEL% EQU 0 goto x720
    goto FmtError

    :x1080
    find /C "30000/1001" %TempFile%
    if %ERRORLEVEL% EQU 0 goto x1080p30
    find /C "60000/1001" %TempFile%
    if %ERRORLEVEL% EQU 0 goto x1080p60
    find /C "30/1" %TempFile%
    if %ERRORLEVEL% EQU 0 goto x1080p30
    find /C "60/1" %TempFile%
    if %ERRORLEVEL% EQU 0 goto x1080p60
    find /C "24/1" %TempFile%
    if %ERRORLEVEL% EQU 0 goto x1080p24
    find /C "24000/1001" %TempFile%
    if %ERRORLEVEL% EQU 0 goto x1080p24
    find /C "25/1" %TempFile%
    if %ERRORLEVEL% EQU 0 goto x1080p25
    find /C "50/1" %TempFile%
    if %ERRORLEVEL% EQU 0 goto x1080p50
    goto FmtError
    :x1080p30
    call :SetBitrate 45M 145M 220M
    goto Return
    :x1080p60
    call :SetBitrate 90M 290M 440M
    goto Return
    :x1080p24
    call :SetBitrate 36M 115M 175M
    goto Return
    :x1080p25
    call :SetBitrate 36M 115M 175M
    goto Return
    :x1080p50
    call :SetBitrate 75M 240M 365M
    goto Return

    :x720
    find /C "30000/1001" %TempFile%
    if %ERRORLEVEL% EQU 0 goto x720p30
    find /C "60000/1001" %TempFile%
    if %ERRORLEVEL% EQU 0 goto x720p60
    find /C "30/1" %TempFile%
    if %ERRORLEVEL% EQU 0 goto x720p30
    find /C "60/1" %TempFile%
    if %ERRORLEVEL% EQU 0 goto x720p60
    find /C "24/1" %TempFile%
    if %ERRORLEVEL% EQU 0 goto x720p24
    find /C "24000/1001" %TempFile%
    if %ERRORLEVEL% EQU 0 goto x720p24
    find /C "25/1" %TempFile%
    if %ERRORLEVEL% EQU 0 goto x720p25
    find /C "50/1" %TempFile%
    if %ERRORLEVEL% EQU 0 goto x720p50
    goto FmtError
    :x720p30
    call :SetBitrate 75M 75M 110M
    goto Return
    :x720p60
    call :SetBitrate 145M 145M 220M
    goto Return
    :x720p24
    call :SetBitrate 60M 60M 90M
    goto Return
    :x720p25
    call :SetBitrate 60M 60M 90M
    goto Return
    :x720p50
    call :SetBitrate 115M 115M 175M
    goto Return

    :SetBitrate
    IF %RATE%==std (
        set BITRATE=%2
    ) ELSE (
        IF %RATE%==hq (
            set BITRATE=%3
        ) ELSE (
            IF %RATE%==proxy (
                set BITRATE=%1
            ) ELSE (
                set BITRATE=fubar
           )
        )
    )

    :Return
    exit /b 0

    :FmtError
    echo !!! unsupported source file frame size or rate !!!
    exit /b 1

     

  • StormyKnightStormyKnight Moderator, Website User, Ambassador, Imerge Beta Tester, HitFilm Beta Tester Posts: 2,726 Ambassador
    edited April 2016
  • AvalonAvalon Website User Posts: 96

     NormanPCN, does this script base on FFmpeg only? Trying to use it I get an error report telling me ffprobe couldn't be found.

    Marco

  • NormanPCNNormanPCN Website User Posts: 3,948 Enthusiast

    @Avalon ffprobe is needed. The command file uses ffprobe to query the frame size and frame rate to determine the bitrate value passed to ffmpeg.

    If you know your source frame specs, and they are constant, you can eliminate 90% of the command file and just pass the desired bitrate to ffmpeg.

    I just wrote the command script to work with any unknown source.

  • Aladdin4dAladdin4d Moderator Website User, Imerge Beta Tester, HitFilm Beta Tester Posts: 2,509 Enthusiast
    edited April 2016

    @Avalon No this is not based on FFMpeg only. @NormanPCN is using FFprobe on the source file(s) to get the information needed to set the the right FFMpeg encoding settings. 

    @NormanPCN - Nicely done sir!

  • Aladdin4dAladdin4d Moderator Website User, Imerge Beta Tester, HitFilm Beta Tester Posts: 2,509 Enthusiast

    Another option for this script would be to add it to the SendTo folder then you could select the files, right click and Send To this script. To get to the SendTo folder open a file explorer window and put this in the address bar:

    shell:sendto

    and hit enter. The contents of this folder are the Send To menu entries.

     

  • AvalonAvalon Website User Posts: 96
    edited April 2016

    Updated and now it works with some kind of input formats, but not all, e.g. when trying to use UHD XAVC from a Sony FS7 I get an "error with source file format".

    Any hints how to modify the script to solve this problem and to output DNxHD in MXF wrapper instead of MOV? Just renaming "%~dpn1_dnx.mov" to "%~dpn1_dnx.mxf" doesn't work.

  • NormanPCNNormanPCN Website User Posts: 3,948 Enthusiast
    edited April 2016

    @Avalon DNxHD does not support UHD resolutions. HD only. This command script only works with source files whose frame size and frame rate conform to DNxHD specs.

    If you wanted something to create a 1080 DNxHD proxy from a UHD source file then that is very easy to setup. It would be mostly a one line script since all that probing for frame size/rate is not needed.

    At this time ffmpeg does not support DNxHR encoding for UHD/4k. It does support decode of DNxHR. Cineform too. Yea!

    MXF typically requires audio to be in separate tracks for each audio channel. For stereo, a separate mono left and right track. I did not set that up in the script. Also, I am not sure if ffmpeg supports DNxHD in MXF files. I've never tried  to do it.

    Since this is a Hitfilm forum I did not bother with MXF. Hitfilm will not support DNxHD in MXF. I know the ffmpeg MXF muxer is very touchy with regards to what it supports. The only MXF I have tried is something like XAVC Intra. ffmpeg only supports 4:2:2 with AVC in MXF. This unfortunately eliminates Hitfilm from using those files.

    edit: I should also note that I did not look at supporting interlaced inputs. progressive only at this time.

    @Aladdin4d I never thought about attaching to the "send to" menu. I might have to look into that.

  • AvalonAvalon Website User Posts: 96
    edited April 2016

    Yes, I know about the DNxHD restrictions (HD as max. res, except you use DNxHR) but it looked like there's a problem even reading the UHD input. I'd assume FFmpeg to resize any input resolution which would not match the output DNxHD specs.

    I tested same UHD file before to encode MXF DNxHD with a script like this:

    ffmpeg -i <input> -vcodec dnxhd -b:v 145M -an -sws_flags lanczos -vf "scale=1920:1080, smartblur=1.0:-1.0" output.mxf -vn 

    This worked in the way it output a file which can be used in other applications but it was kind of first "quick&dirty" test without any claim of technically correctness.

    Overall just learning here … Didn't know HitFilm would not accept DNxHD in MXF wrapper at all.

    Marco

  • NormanPCNNormanPCN Website User Posts: 3,948 Enthusiast

    The message "error with source file format" is my message in the command script. It is only output when the frame size or frame rate do not conform to DNxHD specs. These verifications are done before ffmpeg is ever called.

    ffmpeg will not automatically resize anything. Everything is manual and frame resizing is done with the scale filter as you have figured out.

    Hitfilm does not have a native DNxHD decoder and is dependent on Quicktime with the Avid codecs installed. Hence the MOV restriction.

  • HarHar Website User Posts: 400 Just Starting Out

    I've been using the Avanti frontend for ffmpeg to transcode to ProRes on Windows; works great for that, but haven't tried it for DNxHD yet.

    http://www.avanti.arrozcru.org/

  • NormanPCNNormanPCN Website User Posts: 3,948 Enthusiast
    edited April 2016

    ProRes ffmpeg command file. I mostly post this since the file has some comments about the ffmpeg prores encoder of some tips I picked on the net

    @echo off

    title transcode to Prores

    :top
    c:\systools\ffmpeg\bin\ffmpeg.exe -i %1 -c:v prores_ks -profile:v standard -qscale:v 5 -vendor ap10 -pix_fmt yuv422p10le -colorspace bt709 -color_primaries bt709 -color_trc bt709 -c:a pcm_s16le -chunk_size 96K "%~dpn1_pres.mov"
    if errorlevel 1 goto error
    REM pause

    shift
    if NOT %1$==$ goto top
    goto :EOF

    :error
    echo !!! error encoding !!!
    pause
    goto :EOF

    REM -c:v prores_ks -profile:v standard -qscale:v 4 -vendor ap10
    REM -profile:v proxy/lt/standard/hq/4444 0..4 numbers work also. 4444 only supported by ks.
    REM using qscale speeds up encoding of ks *A LOT*. "ks" recommends trying 4.
    REM qscale 4 should be similar to standard
    REM qscale 6 should be similar to lt
    REM qscale 2 should be similar to hq
    REM qscale 13 should be similar to proxy but slightly larger.
    REM a bigger number results in smaller file, technically lower quality, but maybe not a visible difference. trust your eyes.
    REM qscale basically overrides the profile setting. it sets a fixed/constant quantizer.
    REM profile sets a max frame size and the encoder searches for a quantizer value to get a frame
    REM to fit close to the max frame size of a given profile setting.
    REM profile alone outputs constant bitrate, variable quality. with qscale output is variable bitrate, constant quality.
    REM with lots of high frequency detail you would likley want add +1 to the qscale value to get close to a profile bitrate.
    REM -vendor this fakes Apple encoder id code for Final Cut Pro. only supported by ks encoder.

    REM -c:v prores -profile:v 2
    REM proxy=0, lt=1, std=2, hq=3
    REM this prores encoder is much faster than prores_ks but seems to generate bigger files.

  • LuBeDaLuBeDa Website User Posts: 21

    NormanPCN

    Hello,

    i like your script very much because it takes care on the bitrate. But when i import such converted media to hitfilm there is no video stream. But VLC or resolve does work fine.

    Any hints on this issue?

    Greetings

  • LuBeDaLuBeDa Website User Posts: 21

    Funny althought all other tools worked without the codec i had to install it for hitfilm.

    Now it works very nice!

     

  • Aladdin4dAladdin4d Moderator Website User, Imerge Beta Tester, HitFilm Beta Tester Posts: 2,509 Enthusiast

    @LuBeDa Everything you listed has internal support for DNxHD but HitFilm doesn't it relies on the QuickTime codec which is why you had to install it.

  • billjoybilljoy Website User Posts: 2
    edited January 2017

    After converting to DNxHD (4:4:2, 8-bit color) using Convert V4, when I load the file into HitFilm, my preview window is just black. I installed QuickTime, but am I missing another codec? Anyone else seen this?

    Update: I just installed MPEG Streamclip but as soon as I try to open my video file (.MTS file from Canon Vixia HF R11) I get "File open error: unsupported file type". If I click "Open Anyway" and try to export, I get another error "can't read the frame size."

    Thanks. Lots of great info in these forums!

  • NormanPCNNormanPCN Website User Posts: 3,948 Enthusiast

    @billjoy Did you install the Avid codecs for Quicktime? Quicktime by itself does not support Avid DNxHD/HR. After installing Quicktime did you reboot?

  • billjoybilljoy Website User Posts: 2
    edited January 2017

     Thanks @NormanPCN. I had not installed the Avid codecs. Once I did that, I still had no picture in Windows Media Player but I did get video in HitFilm. Unfortunately though, the video stutters on both my machines (desktop is i3, 6GB RAM, AMD Radeon HD 5570; laptop is i5, 8GB RAM, Intel HD graphics (can't remember the model #), neither have SSD though. I tried creating a proxy but that didn't help either. I actually have a better UX in Windows Movie Maker (though there is a long pause of 30-45s when I move to a new place in the video - this delay is mostly waiting for disk reads - further proof I should get an SSD). Let me know if you have any other tips or if I just need to get a more powerful machine...

    Thanks

This discussion has been closed.