Skip to content

FFmpeg and Media

B1progame edited this page Jun 6, 2026 · 2 revisions

FFmpeg And Media

MusicXCST uses FFmpeg for audio probing and transcoding. The public mod jar does not bundle FFmpeg executables.

  • The CD Writer upload flow can convert audio on the uploading client.
  • The server validates, stores, hashes, probes, previews, and distributes normalized audio.
  • Admin server-side imports may require server-side transcoding.
  • Already-compatible .ogg files can avoid some conversion work, but duration checks still depend on FFmpeg when duration limits are enabled.

Config

Default:

ffmpegMode = system

Supported modes:

system   Use ffmpeg from PATH.
path     Use the executable configured in ffmpegPath.
managed  Use a user-approved, verified download stored outside the jar.
disabled Do not use FFmpeg; already-compatible OGG files may still work.

Managed Download

Managed download is explicit. The mod does not download an executable unless a user or admin chooses the managed setup option.

Client managed files are stored under:

<minecraft directory>/config/musicxcst/ffmpeg/managed/<platform>/

Server managed files are stored under the server directory at the same relative path.

Managed download currently supports Windows x86_64 using a pinned BtbN LGPL FFmpeg build with SHA-256 verification. Other platforms should install FFmpeg manually and use system or path.

Admin FFmpeg Commands

/cstmusic admin ffmpeg status
/cstmusic admin ffmpeg path <path>
/cstmusic admin ffmpeg download confirm
/cstmusic admin ffmpeg reset

Packaging Notes

  • Do not put FFmpeg executables inside the MusicXCST jar.
  • MusicXCST invokes FFmpeg as a separate executable process and does not link FFmpeg libraries into the mod jar.
  • Use LGPL FFmpeg builds where possible.
  • Do not distribute builds configured with --enable-nonfree.
  • Keep FFmpeg license, source/build URL, version, configure flags, and checksums with any separate distribution that includes FFmpeg.

Clone this wiki locally