Convert MXF to VOC — Free Online Tool

Convert MXF broadcast media files to VOC audio format, extracting audio and encoding it as unsigned 8-bit PCM — the raw format used by Creative Labs Sound Blaster hardware. This tool strips video and professional metadata from MXF containers, outputting a retro-compatible VOC file directly in your browser using FFmpeg.wasm.

FFmpeg Command

Copy this command to run the same conversion locally with FFmpeg on your desktop. Download FFmpeg

Free — no uploads, no signups. Your files never leave your browser.

Estimated output:

Conversion Complete!

Download

How It Works

MXF (Material Exchange Format) is a professional broadcast container that typically carries video streams alongside audio encoded as PCM (often 16-bit or 24-bit linear PCM at broadcast sample rates). VOC is a purely audio format with no video support, so the video stream is discarded entirely during this conversion. The audio is transcoded from the MXF source codec (commonly pcm_s16le or pcm_s24le) into unsigned 8-bit PCM (pcm_u8), which is the native encoding used by the VOC format. This means the bit depth is reduced from 16 or 24 bits down to 8 bits, which significantly reduces dynamic range and audio fidelity. The VOC container also does not support multiple audio tracks, chapters, subtitles, or the rich timecode and metadata that MXF is known for — all of that professional production metadata is dropped in the output.

What Each Flag Does

Flag What it does
ffmpeg Invokes the FFmpeg binary — in the browser this runs via FFmpeg.wasm (WebAssembly), while the displayed command can be run identically in a local terminal with a standard FFmpeg installation.
-i input.mxf Specifies the input MXF file. FFmpeg reads the MXF container, identifying all contained streams including video (e.g., libx264, mpeg2video), audio (e.g., pcm_s16le, pcm_s24le), and embedded professional metadata such as timecode.
-c:a pcm_u8 Sets the audio codec to unsigned 8-bit PCM, which is the native and most broadly compatible encoding for the VOC format. This transcodes the broadcast-quality PCM audio from the MXF (typically 16-bit or 24-bit) down to 8-bit depth, reducing dynamic range to match the Sound Blaster VOC specification.
output.voc Specifies the output filename with the .voc extension, which tells FFmpeg to mux the encoded pcm_u8 audio into a Creative Labs VOC container. The video stream from the MXF is implicitly dropped because the VOC format has no capacity to store video data.

Common Use Cases

  • Extracting a voice-over or narration track from a broadcast MXF master file to use as a sound effect in a retro DOS-style game or demo scene project
  • Pulling dialogue or foley audio from a professional MXF production file to import into legacy multimedia authoring tools that only accept VOC format
  • Archiving or studying historical broadcast audio by converting MXF content into a format playable on period-accurate Sound Blaster emulators or DOSBox
  • Creating 8-bit audio samples from broadcast-quality MXF sources for use in chiptune or lo-fi music production that intentionally targets Sound Blaster-era audio aesthetics
  • Testing compatibility of professional broadcast audio content with legacy hardware or embedded systems that natively consume VOC files
  • Producing placeholder or reference audio assets in VOC format from MXF camera rushes for use in retro game development toolchains

Frequently Asked Questions

Yes, there is significant quality loss in this conversion. MXF files in broadcast contexts typically carry audio at 16-bit or 24-bit PCM, providing wide dynamic range suitable for professional production. VOC's pcm_u8 codec is limited to 8-bit unsigned PCM, which means only 256 discrete amplitude levels compared to 65,536 for 16-bit audio. This results in audible quantization noise and a much narrower dynamic range — acceptable for retro game sound effects but not for professional audio work.
The video stream is completely discarded. VOC is a purely audio-only format with no capability to carry video data, so FFmpeg automatically drops all video tracks from the MXF container. Similarly, MXF-specific professional metadata such as timecode, reel name, and production metadata are not preserved in the output VOC file, since VOC has no metadata structure to accommodate them.
VOC does not support multiple audio tracks, so only the first audio stream from the MXF file will be used by default. If your MXF contains separate dialogue, music, and effects tracks (a common broadcast arrangement), only the first track will appear in the VOC output. If you need a specific track rather than the first one, you would need to modify the FFmpeg command with a stream selector such as '-map 0:a:1' to choose the second audio track before the output filename.
Yes. The VOC format supports two codecs: pcm_u8 (the default, 8-bit unsigned) and pcm_s16le (16-bit signed little-endian). To use the higher-quality 16-bit option, change the command to 'ffmpeg -i input.mxf -c:a pcm_s16le output.voc'. This preserves significantly more dynamic range from the original MXF audio and is recommended if your target application supports 16-bit VOC playback, though compatibility with very old Sound Blaster hardware or DOS applications may be reduced.
On Linux or macOS, you can use a shell loop: 'for f in *.mxf; do ffmpeg -i "$f" -c:a pcm_u8 "${f%.mxf}.voc"; done'. On Windows Command Prompt, use 'for %f in (*.mxf) do ffmpeg -i "%f" -c:a pcm_u8 "%~nf.voc"'. The browser-based tool processes one file at a time, but the displayed FFmpeg command is designed so you can easily adapt it for batch processing on your local machine, which is also the recommended approach for files over 1GB.
The most practical reasons are retro game development, DOSBox-based software testing, and demo scene projects where VOC is the required audio format for legacy toolchains or period-accurate playback. Another use case is extracting specific sound cues — such as a studio-recorded voice line from an MXF production master — and downsampling them to 8-bit VOC for use as in-game audio assets. It is an unusual conversion precisely because MXF and VOC sit at opposite ends of the audio quality spectrum.

Technical Notes

MXF is a professional SMPTE-standardized container format designed for broadcast and post-production workflows, often carrying OP1a or OP-Atom operational patterns with embedded timecode, essence descriptors, and rich production metadata. When converting to VOC, all of this structure is abandoned. VOC files, developed by Creative Labs in the early 1990s, use a simple block-based format supporting only raw PCM audio — either unsigned 8-bit (pcm_u8) or signed 16-bit little-endian (pcm_s16le). The default output uses pcm_u8, which limits sample resolution to 8 bits and supports sample rates up to 44.1kHz, though many legacy applications cap playback at 22.05kHz or lower. No audio quality control parameters (such as bitrate or CRF) are applicable here because both supported VOC codecs are lossless PCM — the quality is determined entirely by the bit depth, not a compression setting. If the source MXF audio has a sample rate that exceeds what your target VOC player supports, you may want to add '-ar 22050' to the FFmpeg command to downsample explicitly. Additionally, if the MXF source has stereo or surround audio, be aware that VOC's compatibility with stereo depends heavily on the playback application — mono is the safest choice for maximum DOS-era compatibility, achievable by adding '-ac 1' to the command.

Related Tools