How to convert video to wav for transcription — free, no upload
- Step 1Drop the interview or meeting video — Drag your MP4/MOV/MKV/WebM onto the dropzone. It is processed locally — nothing uploads here, so the recording stays private until you send it onward.
- Step 2Set Channels to Mono — Speech-to-text uses a single channel. Select
Monoto downmix — it halves the file the API must process and matches what the model expects. - Step 3Set Sample rate to 16 kHz · speech — Choose
16 kHz · speech. Whisper resamples to 16 kHz anyway; supplying it directly avoids a redundant server-side step and keeps the file small. Use44.1/48 kHzonly if a specific API documents a higher requirement. - Step 4Run the extraction — Press the action button. FFmpeg runs
-c:a pcm_s16le -ar 16000 -ac 1, decoding the video's audio and writing a compact mono WAV — all on your CPU. - Step 5Verify the WAV plays clearly — Spot-check the output: clipped, distorted, or noisy speech transcribes poorly. If the source has heavy background noise, clean it first (see the cookbook).
- Step 6Send the WAV to your transcription service — Upload the WAV to Whisper, AssemblyAI, Deepgram, or your own pipeline. PCM WAV avoids the timestamp drift that VBR MP3s can introduce in word-level alignment.
Recommended settings by transcription engine
Most engines accept many formats but perform most predictably on 16 kHz mono PCM WAV. Verify the exact requirement in each provider's current docs.
| Engine | Recommended sample rate | Channels | Why |
|---|---|---|---|
| OpenAI Whisper | 16 kHz | Mono | Whisper resamples to 16 kHz mono internally — supplying it directly is smallest and avoids a redundant downsample |
| AssemblyAI | 16 kHz | Mono | Accepts WAV/MP3; mono PCM keeps uploads small and timestamps stable |
| Deepgram | 16 kHz | Mono | Linear16 PCM is a first-class input; 16 kHz mono is standard for speech models |
| Self-hosted / faster-whisper | 16 kHz | Mono | Same model family as Whisper — 16 kHz mono is the native expectation |
Why 16 kHz mono beats stereo/high-rate for speech
Bigger is not better for transcription — extra channels and sample rate add cost and upload time without improving the transcript.
| Setting | Size / 30 min | Effect on transcript | Verdict |
|---|---|---|---|
| 16 kHz mono | ~58 MB | Full speech band captured; smallest correct file | Best for transcription |
| 44.1 kHz mono | ~158 MB | No accuracy gain over 16 kHz for speech | Wasteful |
| 48 kHz stereo | ~345 MB | No accuracy gain; doubles channels the model ignores | Avoid for STT |
| 96 kHz stereo | ~690 MB | Massive file, zero transcription benefit | Never for STT |
Tier limits for transcription prep
A 16 kHz mono WAV is small, so the duration cap usually matters more than the size cap. Real values from the tier config.
| Tier | Max file size | Max duration / file | Files / job |
|---|---|---|---|
| Free | 50 MB | 30 minutes | 1 |
| Pro | 200 MB | 120 minutes | 10 |
| Pro-media | 100 GB | Unlimited | 100 |
| Developer | 100 GB | Unlimited | — |
Cookbook
Transcription-prep recipes. Each sets the speech-optimal controls and shows the FFmpeg command run locally.
Interview MP4 to Whisper-ready 16 kHz mono WAV
The canonical prep: mono, 16 kHz. This is exactly what Whisper would resample to, so you hand the model its native shape and a small file.
Source: interview.mp4 (AAC 48 kHz stereo)
Controls: Sample rate = 16 kHz · speech, Channels = Mono
ffmpeg -i interview.mp4 -c:a pcm_s16le -ar 16000 -ac 1 \
-map_metadata 0 interview.wav
Output: interview.wav (16-bit PCM, 16 kHz, mono) ~1.9 MB/minScreen-recorded meeting (WebM) to a compact mono WAV
Browser meeting recordings export as WebM (Opus audio). Extract a 16 kHz mono WAV so the transcription API gets PCM, not Opus, with predictable timing.
Source: standup-2026-06-10.webm (Opus 48 kHz)
Controls: Sample rate = 16 kHz · speech, Channels = Mono
ffmpeg -i standup-2026-06-10.webm -c:a pcm_s16le -ar 16000 \
-ac 1 -map_metadata 0 standup-2026-06-10.wavDenoise before transcribing a noisy field interview
Background noise wrecks word accuracy. Extract the WAV, then run the RNNoise-based cleaner, then send the cleaned WAV to the API.
1. video-to-wav (this tool): field.mp4 -> field.wav (16 kHz mono)
2. /audio-tools/ai-noise-reducer -> field-clean.wav
3. Upload field-clean.wav to Whisper / AssemblyAI
Note: ai-noise-reducer works at 48 kHz internally, then you can
resample; for cleanest speech extract 48 kHz mono first,
denoise, then downsample with sample-rate-converter to 16 kHz.Strip dead air to cut paid transcription minutes
APIs charge per audio minute. Removing long silences from the WAV before upload directly lowers cost on call recordings with lots of pauses.
1. video-to-wav (this tool): call.mp4 -> call.wav (16 kHz mono) 2. /audio-tools/silence-stripper (threshold -40 dB, 0.5 s) -> call-tight.wav (fewer minutes billed) 3. Upload call-tight.wav
Right sample rate for a non-Whisper API that wants 8 kHz
Some telephony/IVR transcription models expect 8 kHz, which this tool does not offer. Extract 16 kHz here, then resample down with the dedicated converter.
This tool's rates: 44.1 / 48 / 96 / 16 kHz (no 8 kHz). 1. video-to-wav: call.mp4 -> call.wav (16 kHz mono) 2. /audio-tools/sample-rate-converter -> 8 kHz if your API specifically requires telephony-rate input.
Edge cases and what actually happens
Uploading stereo high-rate WAV to a speech API
Wasteful (works, costs more)A 48 kHz stereo WAV transcribes the same as 16 kHz mono but uploads slower and may cost more on per-minute APIs. For transcription, always pick Mono + 16 kHz unless a provider documents otherwise.
Source video has no audio
Fails (no audio)A screen recording captured without audio yields nothing to transcribe and the extraction errors. Confirm the recording has sound before prepping.
Heavy background noise in the recording
Poor transcriptTranscription accuracy collapses on noisy audio. The WAV will be clean PCM, but the speech underneath is still noisy. Run ai-noise-reducer on the audio before sending it to the API.
Two speakers panned hard left/right
Mixed on mono downmixIf interviewer and guest are isolated on separate channels, Mono sums them into one track — fine for a single transcript, but you lose channel separation for speaker diarisation by channel. Keep Stereo (and split with channel-splitter) if you need per-channel transcripts.
Needing 8 kHz telephony rate
Not offered hereThis tool offers 44.1 / 48 / 96 / 16 kHz only — no 8 kHz. Extract at 16 kHz, then downsample with sample-rate-converter if your telephony model requires 8 kHz.
Free tier — interview longer than 30 minutes
Rejected (tier limit)Free caps each file at 30 minutes and 50 MB. A 16 kHz mono WAV is tiny on size but a 45-minute interview still trips the duration cap. Upgrade to Pro (120 min) or trim the source first.
Clipped / distorted source audio
Degraded transcriptIf the recording was clipping at the source, WAV preserves the distortion faithfully and the model mis-hears clipped words. There is no de-clip here; re-record or accept reduced accuracy.
Multi-track conference recording
First track onlyIf the video has multiple audio tracks, only the first is mapped. For a specific track, demux it in a desktop FFmpeg before extraction.
Word-level timestamp drift from MP3 instead of WAV
Avoided with WAVFeeding a VBR MP3 to some engines causes small word-level timestamp drift. Supplying PCM WAV (as this tool produces) gives stable, sample-accurate timing — one reason WAV beats MP3 for subtitle generation.
Frequently asked questions
What settings should I use for Whisper?
16 kHz, Mono. Whisper resamples everything to 16 kHz mono internally, so giving it that directly is the smallest correct file and skips a redundant downsample. Set Sample rate to 16 kHz · speech and Channels to Mono.
Why WAV instead of MP3 for transcription?
PCM WAV avoids codec ambiguity and the small word-level timestamp drift VBR MP3 can introduce. Most engines accept MP3, but PCM WAV gives the most reliable timing — important for subtitles and word-level alignment.
Does 16 kHz lose accuracy versus 44.1 kHz?
No, not for speech. Human speech energy sits below 8 kHz, so 16 kHz captures it fully. Higher rates just make the file bigger without improving the transcript.
Should I keep stereo for a two-person interview?
For a single combined transcript, mono is fine and smaller. Keep stereo only if the two speakers are isolated on separate channels and you want per-channel (per-speaker) transcripts — then split the channels afterwards.
Is my interview footage uploaded anywhere by this tool?
No. Extraction runs locally on FFmpeg 8.1 (WASM). The video and WAV stay on your device until you choose to send the WAV to a transcription provider — important for confidential recordings.
How big is a transcription WAV?
About 1.9 MB per minute at 16 kHz mono — roughly 58 MB for a 30-minute interview. That is far smaller than 48 kHz stereo and fits comfortably within most APIs' per-file limits.
Can I get 8 kHz for a telephony model?
Not from this tool — it offers 44.1 / 48 / 96 / 16 kHz. Extract at 16 kHz here, then use sample-rate-converter to drop to 8 kHz if your model needs it.
My recording is noisy — will that hurt the transcript?
Yes, noise lowers accuracy. Run ai-noise-reducer (RNNoise speech model) on the audio before transcribing. For best results extract at 48 kHz mono, denoise, then downsample to 16 kHz.
How do I cut transcription cost on long recordings?
APIs bill by audio minute. Use silence-stripper on the WAV to remove dead air before upload — fewer billed minutes, same transcript.
What bit depth does the WAV use?
16-bit PCM. There is no bit-depth control. 16-bit is more than sufficient for speech recognition.
Which video formats can I feed in?
Any FFmpeg can demux — MP4, MOV, MKV, WebM, AVI — covering camera footage, screen recordings, and conferencing exports.
Can I split a long video into transcribable chunks?
This tool produces one WAV. To split into segments (some APIs prefer chunks), use audio-trimmer or the audio-splitter on the resulting WAV.
Privacy first
Every JAD Audio tool runs entirely in your browser via FFmpeg (WebAssembly) and RNNoise. Your audio files never leave your device — verified by zero outbound network requests during processing.