Pulling the sound out of a video usually means uploading the file to somebody's server. There is a
second way: decode the audio track in the tab you already have open, and write the result to your
own disk.
I built a small MP4 to test this with - a six second clip with a 440 Hz tone in it - and ran it
through the Extract tab of the Audio Studio at app.onepassapps.com/studios/audio.
I work on OnePassApps, so this is our tool and our test.
The headline: the file never leaves the tab, and you get a real audio file, not a preview.
What the panel actually offers
The tab is called Extract, and it has three steps. Before you load anything, step 01 reads:
No video yet. Drop one on the stage or browse for it. Up to 32 MiB and 45 minutes.
Step 02 is where the interesting choices live, and they only appear once a video has been checked:
Format, sample rate and channels appear here once the video has been checked.
The page itself sets the boundary - the file hint reads "MP4, MOV, MKV, WebM or MPEG-TS with an
audio track · up to 32 MiB and 45 minutes" - and the page line says "Convert, compress, trim and
extract audio locally. Your media stays in this browser tab."
Load a video and three dropdowns appear:
- Output format:
WAV audio (PCM)orWebM audio (Opus) - Sample rate:
48,000 Hz,44,100 Hz,32,000 Hz,24,000 Hz,16,000 Hz - Channels: for a mono source,
Mono
There is a note under them: "Defaults keep the source’s mono and sample rate when the chosen
encoder supports them." In practice that means the defaults followed my file - a 44.1 kHz mono
source came back as 44,100 Hz and Mono without me touching anything.
One line in step 01 tells you what you are about to get, and it matters:
Only the primary audio track is exported. Video and other tracks are discarded locally.
So this is an audio extraction, not a repackage of the whole file.
Run 1: the defaults
With probe-extract.mp4 on the stage, the panel showed:
MP4 · 0:06.0 · 98.7 KiB and the stage header confirmed what was inside it before I touched anything:
Container MP4 Audio codec AAC Sample rate 44,100 Hz Channels Mono Pressing Extract audio had produced the file within three seconds and the result panel read:
OUTPUT probe-extract-audio.wav 0:06.0 · 519 KiB with Format WAV, Sample rate 44,100 Hz, Channels Mono, Size 519 KiB, and the line that
tells you nothing went anywhere else:
Output created locally. Your original file remains unchanged.
The output file name is derived from the source - probe-extract.mp4 became
probe-extract-audio.wav.
The plan block on the page reads "Standard is free right now" and "$0 / month" with "No card required", and the run above was done in a tab that was not signed in.
Read the bytes back, do not trust the label
A panel that says "WAV" and a panel that says "MP3" are both just text. So I pulled the actual
downloaded blob off the page and parsed it with ffprobe:
codec_name=pcm_s16le sample_rate=44100 channels=1 duration=6.023220 format_name=wav size=531292 That is a genuine RIFF/WAVE file - the first bytes are RIFF then WAVE then fmt - with
16-bit signed little-endian PCM, one channel, at the rate the source had.
The better test is the content. My test video carried a 440 Hz sine tone, so if the extractor really
decoded the track, the WAV should contain a 440 Hz waveform. Counting zero crossings over one
second of the extracted audio:
frames 265624 channels 1 sampwidth 2 rate 44100 dur 6.023 peak 6204 rms 2886.6 zero crossings in 1s: 880 -> approx freq 440 Hz 880 crossings per second is 440 Hz, exactly the tone I encoded. The audio in the file is the audio
from the video.
Run 2: switch the format and the rate
The format picker is a real dropdown with real choices, so I changed two of them - WebM audio and
(Opus)48,000 Hz - and ran it again. The options list for the rate picker was
48,000 Hz, 44,100 Hz, 32,000 Hz, 24,000 Hz, 16,000 Hz, and the channels list for this
mono source held a single entry, Mono.
The second run produced a different file and a different container:
OUTPUT probe-extract-audio.webm 0:06.0 · 98.1 KiB with Format WebM Opus, Sample rate 48,000 Hz, Channels Mono, Size 98.1 KiB.
ffprobe on that blob:
codec_name=opus sample_rate=48000 channels=1 format_name=matroska,webm duration=6.040000 size=100485 and the file starts with the four-byte WebM magic 1a 45 df a3. So the picker is not decoration -
it changes the container, the codec and the sample rate of the file you download.
The numbers, side by side
| Run | Format | Rate | Channels | Size | ffprobe says |
|---|---|---|---|---|---|
| 1 | WAV audio (PCM) | 44,100 Hz | Mono | 519 KiB | pcm_s16le, 44100 Hz, 1 channel, 6.023 s |
| 2 | WebM audio (Opus) | 48,000 Hz | Mono | 98.1 KiB | opus, 48000 Hz, 1 channel, 6.040 s |
Roughly a fifth of the size for the second run. Neither file is smaller than it needs to be -
uncompressed WAV is uncompressed WAV - but if you are moving audio over a chat window or attaching
it to something, 98 KiB beats 519 KiB, and Opus is the format most players take without asking
questions.
The honest edges
A few things this test does not cover, so you know what you are reading:
- I tested a mono source. The channels picker offered only
Monofor it. A stereo source should offerStereo, but I did not test one, so I am not claiming what the list looks like then. - I tested one container, MP4. MOV, MKV, WebM and MPEG-TS are accepted by the file hint, but only the MP4 was proved.
- The extracted WAV is 6.023 s against a 6.000 s source. The extra couple of hundredths are decoder padding, not a different edit.
- The result panel is a summary. The bytes on disk are the evidence, and you can check them the same way I did.
When it is worth it
The case for doing this in the tab is simple: the file is on your machine already, and you want a
smaller file that is still the same audio. A recording you need as a voice note. A clip from a
screencast you want to send to someone. A track you want to transcribe.
If you want the walkthrough with screenshots and the button-by-button version, the
OnePassApps guides
have it.
I work on OnePassApps - we build the browser studios behind app.onepassapps.com, where the
processing happens in your tab and the file stays with you.
