Muxes subtitles into Matroska files as a FUSE filesystem
mux2fs source mountpoint -o tempdir=<tempdir>,[options]
mux2fs --source source --target mountpoint --tempdir tempdir [options]
mux2fs takes the source directory and mirrors it under mountpoint, with a few changes. Files ending in .mkv are matched against files ending in .srt, and if they match, they are muxed using mkvmerge in tempdir.
Example:
Source | Mount point | ||
---|---|---|---|
Name | Size | Name | Size |
file1.mkv | 700 KiB | file1.mkv | 712 KiB |
file1.eng.srt | 12 KiB | ||
file2.mkv | 600 KiB | file2.mkv | 607 KiB |
file2.srt | 7 KiB | ||
file2.txt | 2 KiB | file2.txt | 2 KiB |
- Java 8
- mkvtoolnix: Creating and working with Matroska files
- fuse: The reference implementation of the Linux FUSE (Filesystem in Userspace) interface
mux2fs should not be run as root. It should be mounted with the -o ro flag, as it will never support any write operations. It also should be mounted with the -o default_permissions flag, as it does no access or security checking.
gradle build
or
./gradlew build
Pick a Debian or RPM package from releases and install it using the package manager of your distribution.
WARNING This might be unsafe. It will require an exitsing sudo ticket (or just run sudo before).
sudo true && gradle deploy
- jnr-fuse: jnr-fuse is a FUSE implementation in java using Java Native Runtime (JNR)
- jcommander: Annotation based parameter parsing framework for Java 8
- guava: Google Core Libraries for Java
- cyclops-react: An advanced, but easy to use, platform for writing functional applications in Java 8
Do not expect stellar performance, as performance is neither a goal, nor a strong consideration, of this project. Expect reading somewhere between 500-700 MB/s from a file in RAM. The performance should be good enough to stream media files from disk.
Supported platforms | ||
---|---|---|
Linux | x64 | x86 |