WineHQ
Category: Main Multimedia Video HitFilm HitFilm Pro 10.0

HitFilm

HitFilm 10 added an improved text engine and various other improvements.

Application Details:

Version: HitFilm Pro 10.0
License: Retail
URL: https://fxhome.com/
Votes: 0
Latest Rating: Silver
Latest Wine Version Tested: 3.20

Maintainers: About Maintainership

Test Results

Old test results
The test results for this version are very old, and as such they may not represent the current state of Wine. Please consider submitting a new test report.
Selected Test Results

What works

-Once wine has been configured properly, the program loads the home screen as normal.

-Creating new projects is fine.

-Importing mp4 files and adding them to the timeline is fine.

-Simple timeline editing like cutting, trimming etc work fine.

-Once the program has been activated, export/render of files works fine, although rendering in some formats is considerably slower than on windows.

-Audio waveforms display fine on the editor timeline.

-Sound meters work as expected.

-Saving project files works fine.

What does not

-The program does not work out-of-the-box, requires a dll override to work.

-The activation app does not run properly in Wine, and displays only a blank white screen. This means that activating the software requires a workaround.

-Playback does not work out-of-the-box, requires a dll override to work.

Workarounds

-To get the program to start, use winecfg to add a dll overide for "fusion". If using application-specific dll-overrides, then it is also necessary to apply the same dll overrides for "HitFilmRenderClient.exe".

-To get playback to work, use winecfg to add a dll override for "xaudio2_7".

-The activation app is (mostly) javascript, which is then run using nw.js. Since nw.js is cross-platform and open source, it is straightforward to obtain a native Linux version of nw.js and use that to run the activation app, with relatively few alterations.
See "How to activate the software".

What was not tested

-Moving panels/re-arranging the ui

-Using panels other than the default panels

-Importing footage in formats other than mp4

-Pre-renders

-Ram preview

-Simple compositing

-masking

-text

-the entire effects library

-using OFX plugins

Hardware tested

Graphics:

  • GPU: Nvidia
  • Driver: proprietary

Additional Comments

selected in Test Results table below
Operating systemTest dateWine versionInstalls?Runs?Used
Workaround?
RatingSubmitter
CurrentLinux Mint 18.3 "Sylvia" x86_64Nov 11 20183.20Yes Yes YesSilverA. Sealy 
ShowLinux Mint 18.3 "Sylvia" x86_64Nov 01 20183.19Yes Yes YesSilverA. Sealy 

Known Bugs

Bug # Description Status Resolution Other apps affected

Show all bugs

HowTo / Notes

Issues with playback

If you have issues with videos not playing back inside HitFilm, try using winecfg to add a dll override for Xaudio2_7. 

On recent versions of wine (confirmed on Wine 4.9) this should not be necessary

HOW TO ACTIVATE THE SOFTWARE

At time of writing (May 2019), the activation app for HitFilm does not work in Wine, and will only show a blank white screen (if it loads at all).

Fortunately, the activation app is (mostly) javascript, which is then run using nw.js. Since nw.js is cross-platform and open source, it is straightforward to obtain a native Linux version of nw.js and use that to run the activation app, with relatively few alterations.

For the lazy (like myself), I have written a bash script to automate the process (attatched in a different how-to).

For the curious, the procedure is as follows:
-Download a copy of the program nw.js, which can be obtained from https://nwjs.io (or if you prefer to build from source code, you can find it on github)

-In the program files for HitFilm (by default it will be [wineprefix]/drive_c/Program Files/FXHOME/HitFilm Pro (or HitFilm Express if you are installing Express)) there is a directory "ActivationApp" containing all the files for the activation app. You will need a copy of the directory "ActivationApp/Resources". (I would advise not to modify any of the original files, HitFilm appears to check some of them and may not run if they have been modified). To keep things tidy you may wish to create a new directory "ActivationAppLinux" and place your copy of "Resources" inside this directory.

-in "Resources/bin" there is a program called "DumpInfo.exe". If you run it through Wine with WINEDEBUG=-all, the output should look something like:

hardwareId:NTYFJDSLK
licenseFilePath:C:\ProgramData/FXhome/Hitfilm Pro/Hitfilm Pro.license
programCode:hitfilm-pro
version:10.0.8218.60494
maxProgramDate:1539817200
winGUID:5ed7d8f3-91e7-441d-8ed9-897f349874g5

(N.B your hardware ID will be different - it is generated based on the hardware of the computer that the program is run on)

-Copy the terminal output from DumpInfo.exe. The activation app runs this program to obtain the information required for activation. Since your activation app is running in Linux you will need to make a Linux program that prints the same information to the terminal. A simple bash script will do.

-Make sure that your variable "hardwareId" exactly matches the one that is output from DumpInfo.exe - otherwise the activation will not be valid on your computer.

-Also make sure to change the variable "licenseFilePath" to the actual path. The correct directory will already have been created by the HitFilm Pro installer, and should be:
[wineprefix]/drive_c/ProgramData/FXHOME/HitFilm Pro/Hitfilm Pro.license
(N.B. note the all-caps on FXHOME, and the capital F in HitFilm (although also note that the license file itself has a lower-case f in Hitfilm))
(Again, if installing HitFilm Express, substitute "Express" for "Pro")

-in the directory "Resources/modules" there is a file "constants.js". In the line that starts with "DUMP_INFO_BINARY" replace "DumpInfo.exe" with the name of your replacement program/script. Correct the path if necessary.

-Now navigate to whatever folder contains your nw.js binary, and run:
./nw [path-to-your-activation-app]/Resources/app.nw activate

The activation app should now run and function as expected, allowing you to activate the software.

(bash script) activate HitFilm

#!/bin/bash

# Please Note:
# this script was designed to be run in the same directory that HitFilm (or whatever other FXHOME software you are installing) was installed into.
# By default this will be [wineprefix]/drive_c/Program Files/FXHOME/[software name]

# If this script is run from a different directory, it will attempt to navigate to the aforementioned install directory,
# but it will only work if there is only one FXHOME software installed in one wineprefix in your filesystem.
# Otherwise it may locate the wrong directory, and subsequently activate the wrong software.

# For best results, I would suggest that this script only be run from the correct directory
# (unless you are certain that there is no other FXHOME software installed in any filepath that matches the above description)

# -A. Sealy, 07/08/2020

# if there is no folder "ActivationApp" in the present directory, then we are not in the folder where the program was installed, and we should therefore locate that directory and navigate to it.
if [ ! -e ActivationApp ]; then
    # make an educated guess about where the program was installed, and cd there
    guesswork=$(locate -n 1 -i "*/drive_c/Program Files/FXHOME/*") && #FIXME doesn't work if the software is installed in multiple wineprefixes or if other FXHOME software has been installed
    echo &&
    echo "Navigating to $guesswork" &&
    echo &&
    cd "$guesswork"
fi &&

#check where we are?
wearehere=$(pwd)
wineprefix="${wearehere%drive_c*}"

# If there is no existing "ActivationAppLinux" then we will create one
# Otherwise, we will assume that this is a functional linux version of FXHOME actvation app
if [ ! -e ActivationAppLinux ]; then

    # To stay as close as possible to the original app, we will need a copy of nwjs.
    # If there is a package already downloaded and in the current directory, we will use that.
    # Otherwise we will download one from the website
    if [ ! -e nwjs*.tar.gz ]; then
        echo 'nwjs not found.\nAttempting to download nwjs from https://dl.nwjs.io:\n'
        wget "https://dl.nwjs.io/v0.38.3/nwjs-v0.38.3-linux-x64.tar.gz"
    fi &&
    nwjs_name=$(echo nwjs*.tar.gz) &&
    echo "Found $nwjs_name. Extracting files" &&
    tar -xzf $nwjs_name --transform=s/${nwjs_name%.*.*}/ActivationAppLinux/
fi &&

# We need copies of various files in ActivationApp/Resources, the simplest thing is just to copy the entire folder
if [ ! -e ActivationAppLinux/Resources ]; then
    echo 'Copying files from ActivationApp/Resources' &&
    cp -r ActivationApp/Resources ActivationAppLinux/Resources
fi &&

cd ActivationAppLinux/Resources/bin &&
# We need to recreate the Windows binary "DumpInfo.exe".
# The simplest approach is to simply copy the terminal output of the windows binary to a new file, edit it as necessary, and then make a script that will print the results to terminal
if [ ! -e DumpInfo.txt ]; then
    echo "Reading DumpInfo.exe" &&
    # DumpInfo.exe is called through Wine, for simplicity the output is dumped in a file "DumpInfo.txt"
    WINEDEBUG=-all WINEPREFIX="$wineprefix" wine DumpInfo.exe > DumpInfo.txt
fi &&

if [ ! -e DumpInfo.sh ]; then
    echo "Building DumpInfo.sh" &&

    # There used to be a whole extra block of code to work around the fact that at some point I found DumpInfo had given "l.i.c.e.n.s.e." instead of "license".
    # I'm pretty sure it was a wine bug and I havent seen it for a while so I'm gonna assume that doesn't happen.
    # And if it does, well, there are instructions to do this stuff manually on the AppDB page
    
    # The licenseFilePath needs to be modified to change it to a linux filepath, but everything else should be copied verbatim.
    otherInfo=$(grep -a -v "license" DumpInfo.txt) &&
    # There often seems to be some inconsistency about whether specific characters in the filepath should be upper-case or lower-case.
    # This is not a problem on Windows (or Wine) but since linux filepaths are case-sensitive it is necessary to correct the pathname.
    # Fortunately the correct target directory has already been created by the installer, so all we need to do is identify it.
    licenseFilePathvar=$(grep -a "license" DumpInfo.txt) &&
    linuxFilePathvar="${licenseFilePathvar/'licenseFilePath:C:\'/'*'/}" && #strip the data tag, and replace "C:\" with wildcard
    correctedFilePath=$(find "$wineprefix" -ipath "${linuxFilePathvar%/*}") && #this returns the correct (absolute path to the) directory, but has stripped the license file name

    # make new DumpInfo.sh script
    echo "#!/bin/bash

echo "'"'"$otherInfo
licenseFilePath:$correctedFilePath/${licenseFilePathvar##*/}"'"' > DumpInfo.sh &&

    # make DumpInfo.sh executable
    chmod a+x DumpInfo.sh &&

    #edit modules/constants.js, to point to "DumpInfo.sh" instead of "DumpInfo.exe"
    echo 'Editing modules/constants.js:' &&
    sed -i s/DumpInfo.exe/DumpInfo.sh/ ../modules/constants.js
fi &&

#finally we must return to the directory outside the Activation app
cd ../../..

if [ -e ActivationAppLinux/Resources/bin/DumpInfo.sh ]; then
    cd ActivationAppLinux &&
    echo "launching activation app" &&
    ./nw Resources/app.nw
else
    echo "Found incomplete Activation App. Something has gone wrong - aborting"
fi

Comments

Back