Extract Audio from HEVC to VOC — Free Online Tool
Extract audio from HEVC (H.265) video files and save it as a VOC file using unsigned 8-bit PCM audio — the classic Sound Blaster format used in DOS-era games. This tool strips the H.265 video stream entirely and writes raw PCM audio into a VOC container, all processed locally in your browser.
to
FFmpeg Command
Copy this command to run the same conversion locally with FFmpeg on your desktop. Download FFmpeg
Drop your HEVC file here
or click to browse
Free — no uploads, no signups. Your files never leave your browser.
Settings
Note: Browser-based encoding uses approximate quality targets. For precise CRF compression, copy the FFmpeg command above and run it on your desktop.
Estimated output:
Conversion Complete!
DownloadHow It Works
HEVC (H.265) video files typically carry a compressed audio stream — commonly AAC, AC-3, or Opus — alongside the highly efficient H.265 video. During this conversion, FFmpeg discards the video stream entirely using the -vn flag and then decodes whatever audio codec is present in the HEVC file, transcoding it into unsigned 8-bit PCM (pcm_u8). That raw audio data is then written into a VOC container — Creative Labs' Sound Blaster format. Because VOC only supports raw uncompressed PCM at modest bit depths (8-bit unsigned or 16-bit signed little-endian), the audio from your modern H.265 source is decoded and re-encoded as uncompressed audio. This means no lossy compression is applied in the output, but the 8-bit depth introduces quantization compared to higher-bit-depth sources.
What Each Flag Does
| Flag | What it does |
|---|---|
ffmpeg
|
Invokes the FFmpeg tool, which handles all demuxing, decoding, encoding, and muxing operations for this conversion. In the browser, this runs as FFmpeg.wasm compiled to WebAssembly — the same command works identically on your local desktop installation. |
-i input.hevc
|
Specifies the input HEVC file. FFmpeg reads the H.265 video bitstream and any embedded audio stream from this file, making both available for processing or discard in the next steps. |
-vn
|
Disables video output entirely, telling FFmpeg to ignore the H.265 video stream. Since we only want the audio in the VOC file, this flag prevents any video data from being processed or included in the output. |
-c:a pcm_u8
|
Encodes the audio stream as unsigned 8-bit PCM — the default and most compatible audio codec for the VOC format. The original compressed audio (e.g., AAC or AC-3) from the HEVC file is fully decoded and then written as raw 8-bit unsigned PCM samples, which is what Sound Blaster hardware and DOS-era software expect. |
output.voc
|
Specifies the output filename with the .voc extension, which tells FFmpeg to mux the raw PCM audio data into a Creative Labs VOC container. The VOC format wraps the PCM data with a simple header that includes sample rate and bit depth information readable by Sound Blaster-compatible applications. |
Common Use Cases
- Extracting a voice recording or narration from an H.265 screen capture to import into a retro-style game engine or DOS emulator that expects VOC audio assets
- Converting a modern HEVC-encoded video soundtrack into VOC format for use as sound effects or music in a DOSBox game project or demoscene production
- Archiving or restoring a classic multimedia presentation by extracting audio from an H.265 source and converting it to the period-accurate VOC format
- Preparing audio assets from HEVC drone footage or camera recordings for use in retro game modding tools that only accept Sound Blaster VOC files
- Stripping audio from an H.265 video to produce a lightweight, uncompressed VOC file for testing or debugging audio pipelines in legacy multimedia software
Frequently Asked Questions
Yes, some quality loss is likely. The audio in your HEVC file is typically compressed using a modern codec like AAC or AC-3, which must be fully decoded and then re-encoded as unsigned 8-bit PCM for the VOC container. The 8-bit depth (pcm_u8) has a dynamic range of only about 48 dB, which is noticeably lower than the 96 dB of 16-bit audio. If your source audio has high dynamic range or fine detail, audible quantization noise may be introduced. For slightly better fidelity within the VOC format, you can switch to pcm_s16le (16-bit signed little-endian) in the FFmpeg command.
Yes. The VOC format supports both pcm_u8 (8-bit unsigned) and pcm_s16le (16-bit signed little-endian). To use 16-bit audio, change the FFmpeg command to: ffmpeg -i input.hevc -vn -c:a pcm_s16le output.voc. The 16-bit codec provides 96 dB of dynamic range compared to pcm_u8's ~48 dB, making it a much closer representation of your original HEVC audio — though compatibility with the strictest legacy software expecting only 8-bit VOC files may vary.
FFmpeg will attempt to carry over the original sample rate and channel count from the decoded audio into the VOC file. However, VOC was designed for early Sound Blaster hardware, which typically operated at sample rates between 8,000 Hz and 44,100 Hz in mono or stereo. If your HEVC file contains 5.1 surround or high sample rates like 96 kHz, some legacy VOC-reading software may not handle those correctly. For maximum compatibility with retro tools, consider adding -ar 22050 -ac 1 to the command to downsample to mono at 22 kHz.
The audio track in your HEVC file is stored in a compressed format like AAC, which dramatically reduces file size using perceptual compression. VOC stores audio as raw, uncompressed PCM — every audio sample is written directly with no compression. At 8-bit depth and even a modest sample rate like 44,100 Hz stereo, you're writing 88,200 bytes per second. This uncompressed nature is intrinsic to the VOC format and its retro Sound Blaster heritage, where hardware decompression wasn't available.
On Linux or macOS, you can loop over files in a directory with: for f in *.hevc; do ffmpeg -i "$f" -vn -c:a pcm_u8 "${f%.hevc}.voc"; done. On Windows Command Prompt, use: for %f in (*.hevc) do ffmpeg -i "%f" -vn -c:a pcm_u8 "%~nf.voc". This applies the same extraction logic — discarding video, decoding audio, and writing pcm_u8 PCM into a VOC container — to every HEVC file in the folder. The browser-based tool processes one file at a time, so the FFmpeg command is the recommended approach for batch jobs.
If the HEVC file contains no audio stream, FFmpeg will throw an error along the lines of 'Output file does not contain any stream' and no VOC file will be created. HEVC files — especially raw .hevc bitstream files — sometimes contain only video with no embedded audio. In that case, there is no audio to extract, and the conversion cannot proceed. You can verify whether your file has audio by running ffprobe input.hevc and checking for an audio stream in the output.
Technical Notes
VOC is one of the oldest digital audio container formats still in active use in retro computing and emulation communities, originally designed by Creative Labs for the Sound Blaster ISA sound card in the early 1990s. Its two supported codecs in FFmpeg — pcm_u8 and pcm_s16le — reflect the hardware limitations of the era. The default pcm_u8 codec uses unsigned 8-bit samples, where silence is represented at the midpoint value of 128 rather than zero (as with signed formats). This means the audio from your HEVC source undergoes a full decode-and-re-encode cycle, not a simple remux — the original compressed audio codec is decoded to PCM in memory, then written as raw 8-bit unsigned samples. No metadata from the HEVC container (such as title tags, language markers, or chapter information) is transferred to the VOC file, as the format has no standardized metadata block support. VOC also does not support multiple audio tracks; only a single mono or stereo stream is written. If your HEVC file has multiple audio tracks, FFmpeg will default to the first detected audio stream. The VOC format has no inherent sample rate limit in the specification, but many legacy applications and emulators cap their support at 44,100 Hz stereo, so sources recorded at higher rates (e.g., 48 kHz from a camera) may need to be resampled with -ar 44100 for broadest compatibility.