videofix automatically fixes common problems in your MKV files, such as:
- Transcode EAC3 tracks to AAC, which is universally supported. Existing EAC3 tracks will be removed if a corresponding AAC track already exists (same language).
- Re-order tracks: tracks are re-ordered so that the output file contains video, audio, and subtitle tracks, in this order.
- Sets tracks of your preferred language as default tracks.
- Removes the default flags on all other tracks.
- Optionally removes all tracks that don't match a specified language.
To download and install automatically (under /usr/local/bin), just run:
curl -s \
'https://raw.githubusercontent.com/marcopaganini/videofix/master/install.sh' |
sudo sh -s -- marcopaganini/videofixThis assumes you have root equivalence using sudo and will possibly require you
to enter your password.
To download and install under another directory (for example, $HOME/.local/bin), run:
curl -s \
'https://raw.githubusercontent.com/marcopaganini/videofix/master/install.sh' |
sh -s -- marcopaganini/videofix "$HOME/.local/bin"Note that sudo is not required on the second command as the installation directory
is under your home. Whatever location you choose, make sure your PATH environment
variable contains that location.
videofix is available on homebrew. To install, use:
brew tap marcopaganini/homebrew-tap
brew install videofix
Just navigate to the releases page and download the desired
version. Unpack the tar file into /usr/local/bin and run a chmod 755 /usr/local/bin/videofix. If typing videofix doesn't work after that, make sure
/usr/local/bin is in your PATH. In some distros you may need to create
/usr/local/bin first.
If you have go installed, just run:
go install github.com/marcopaganini/videofix@latest
Usage is simple:
videofix [options] mkvfile.mkvThe program will use a temporary file on the same directory (and refuse to proceed if that file already exists). Once the process is done, it will replace the original file.
Options:
-
--lang: language of the default audio and subtitle tracks. This will causevideofixto set the default flag on all tracks that match the default language, and remove it on all tracks that don't. This makes it easier for players to start automatically on your preferred language. -
--prune: When combined with--lang, this will cause the removal of all tracks that are not in your preferred language. The program will refuse to proceed if this will result in the complete removal of a given track type (like audio or subtitle). Use with care.
Feel free to open issues, send ideas and PRs.