<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/feed-audio-to-whisper-in-rust-without-ever-shelling-out-to-ffmpeg-p4in4qcfr" -->

---
title: Feed audio to Whisper in Rust without ever shelling out...
description: ez-ffmpeg is a Rust crate that wraps FFmpeg&#x27;s libav libraries in-process, eliminating the need to shell out to an ffmpeg subprocess for audio decoding. The...
canonical: https://daily.dev/posts/feed-audio-to-whisper-in-rust-without-ever-shelling-out-to-ffmpeg-p4in4qcfr
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: Feed audio to Whisper in Rust without ever shelling out to ffmpeg | daily.dev
og:description: ez-ffmpeg is a Rust crate that wraps FFmpeg&#x27;s libav libraries in-process, eliminating the need to shell out to an ffmpeg subprocess for audio decoding. The...
og:url: https://daily.dev/posts/feed-audio-to-whisper-in-rust-without-ever-shelling-out-to-ffmpeg-p4in4qcfr
og:image: https://api.daily.dev/og/posts/p4In4QCfr.png
og:image:alt: Feed audio to Whisper in Rust without ever shelling out to ffmpeg
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Feed audio to Whisper in Rust without ever shelling out to ffmpeg

**[Medium](https://daily.dev/sources/medium_js)** · 10 min read · 0 upvotes · 0 comments

## Summary

ez-ffmpeg is a Rust crate that wraps FFmpeg's libav libraries in-process, eliminating the need to shell out to an ffmpeg subprocess for audio decoding. The post demonstrates using its SampleExtractor API (v0.14) to decode an MP4's audio track into 16 kHz mono f32 PCM — exactly what Whisper-family models require — in a single call. A complete working example integrates this with whisper-rs 0.16 to transcribe a JFK speech clip, including real timing data (7.8 ms extraction, 635 ms inference on CPU). The post also documents breaking API changes in whisper-rs 0.16 that invalidate most older tutorials, and honestly discusses when to use pure-Rust alternatives (symphonia + rubato) versus an FFmpeg-backed approach based on codec coverage needs.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://medium.com/@yeautyye/feed-audio-to-whisper-in-rust-without-ever-shelling-out-to-ffmpeg-952adf8dfb54>

## Similar posts on daily.dev

- [Writing Rust … by Hand. No LLMs.](https://daily.dev/posts/writing-rust-by-hand-no-llms--zu6hsaxdj) · Confessions of a Data Guy · 23 upvotes · 8 comments

---

Tags: [#rust](https://daily.dev/tags/rust), [#speech-recognition](https://daily.dev/tags/speech-recognition), [#audio-processing](https://daily.dev/tags/audio-processing)

[View this post on daily.dev](https://daily.dev/posts/feed-audio-to-whisper-in-rust-without-ever-shelling-out-to-ffmpeg-p4in4qcfr)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"Feed audio to Whisper in Rust without ever shelling out to ffmpeg","url":"https://daily.dev/posts/feed-audio-to-whisper-in-rust-without-ever-shelling-out-to-ffmpeg-p4in4qcfr","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/feed-audio-to-whisper-in-rust-without-ever-shelling-out-to-ffmpeg-p4in4qcfr"},"datePublished":"2026-07-27T19:30:25.317Z","dateModified":"2026-07-27T19:56:07.145Z","description":"ez-ffmpeg is a Rust crate that wraps FFmpeg's libav libraries in-process, eliminating the need to shell out to an ffmpeg subprocess for audio decoding. The...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/d6ab0a9a223ee01bc82d647f54feb2d2?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/d6ab0a9a223ee01bc82d647f54feb2d2?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"Medium","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"Medium","logo":"https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/medium","url":"https://daily.dev/sources/medium_js"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/feed-audio-to-whisper-in-rust-without-ever-shelling-out-to-ffmpeg-p4in4qcfr","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":0},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"rust,speech-recognition,audio-processing","timeRequired":"PT10M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Medium","item":"https://daily.dev/sources/medium_js"},{"@type":"ListItem","position":3,"name":"Feed audio to Whisper in Rust without ever shelling out to ffmpeg"}]}
```

