Skip to content

Muxes subtitles into Matroska files as a FUSE filesystem

License

Notifications You must be signed in to change notification settings

tfiskgul/mux2fs

Repository files navigation

mux2fs Build Status Coveralls Codacy Badge Join the chat at https://gitter.im/tfiskgul/mux2fs

Muxes subtitles into Matroska files as a FUSE filesystem

Usage

mux2fs source mountpoint -o tempdir=<tempdir>,[options]
mux2fs --source source --target mountpoint --tempdir tempdir [options]

About

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

Requirements

  • Java 8
  • mkvtoolnix: Creating and working with Matroska files
  • fuse: The reference implementation of the Linux FUSE (Filesystem in Userspace) interface

Security implications

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.

Building

gradle build

or

./gradlew build

Installation

Pick a Debian or RPM package from releases and install it using the package manager of your distribution.

Alternate installation

WARNING This might be unsafe. It will require an exitsing sudo ticket (or just run sudo before).

sudo true && gradle deploy

Core dependencies

  • 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

Performance

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

Supported platforms
Linux x64 x86

About

Muxes subtitles into Matroska files as a FUSE filesystem

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published