SShortSingh.
Back to feed

How a 2-byte container quirk caused 100% of iOS Safari .mov audio decodes to fail

0
·1 views

A browser-based audio transcription tool using Whisper locally via transformers.js saw 100% failure rates for .mov file uploads on iOS Safari, while desktop browsers handled the same files without issue. Investigation revealed the problem was not the AAC audio codec but the QuickTime container format, specifically a difference in the mp4a sample description entry written by QuickTime versus standard MP4. Rather than relying on heavy solutions like ffmpeg.wasm or WebCodecs, the developers wrote a lightweight DataView-based fix that rewrites only the relevant container metadata and extracts just the audio bytes. The fix includes strict validation checks so that any unsupported or edge-case format falls back to the original decode path, ensuring no previously working format is broken. After shipping the fix, the team also removed a user-facing warning about large .mov files, since the underlying issue was never file size but container structure.

Read the full story at DEV Community

This is an AI-generated summary. ShortSingh links to the original source for the complete article.

Discussion (0)

Log in to join the discussion and vote.

Log in

Related stories

0
ProgrammingDEV Community ·

Why Bitwarden Is Becoming the Go-To Credential Manager for Developers

Developers routinely handle hundreds of sensitive credentials, including API keys, SSH keys, and database strings, yet often resort to insecure practices like storing secrets in Git-committed files or sharing tokens over messaging apps. Bitwarden has emerged as a preferred solution for software engineers and DevOps teams due to its fully open-source codebase, licensed under GPLv3 and AGPLv3, allowing public scrutiny and community auditing. The platform offers a feature-rich command-line interface that enables developers to automate secret retrieval and inject credentials directly into workflows without storing plain-text secrets on disk. Bitwarden employs zero-knowledge, end-to-end encryption using AES-CBC 256-bit encryption and modern key derivation functions such as Argon2id, ensuring that even Bitwarden staff cannot access user vault data. Organizations with strict compliance requirements under frameworks like HIPAA, SOC2, or GDPR can also opt for self-hosted deployments, keeping sensitive infrastructure entirely internal.

0
ProgrammingDEV Community ·

Apiarium updates API keys, dashboard, and pricing after developer feedback

Apiarium, an AI API platform, has rolled out a series of updates driven directly by feedback from developers using the product in production. The most significant change is support for multiple API keys per account — up to 10 on the Pro plan — allowing users to track usage by app or feature without splitting shared credits. The dashboard has also been overhauled with date range filters, per-model and per-endpoint breakdowns, and CSV export to give users clearer visibility into credit consumption. Additionally, the per-model credit pricing has been recalibrated so that cheaper models now cost fewer credits than frontier models, correcting an earlier flat-rate structure. A pay-as-you-go entry option starting at €5 has been introduced, removing the need for a subscription to get started.

0
ProgrammingDEV Community ·

Developer Builds Shoots: An Event-Driven AI Agent System for Photo Analysis

A developer created Shoots, a hybrid Android and web photography companion app, as an entry for the All Things Agentic Hackathon. The system uses an event-driven architecture where photos flow through a pipeline of AI agents — including a Technician, Composer, Storyteller, and Synthesizer — each analyzing different aspects of an image. Google Cloud Pub/Sub coordinates durable background tasks between agent stages, while Google's Agent Development Kit (ADK) manages the model orchestration panel internally. The codebase is deliberately separated by responsibility, with a pure domain layer containing no I/O that enforces rules all other layers must follow. To handle duplicate message delivery, the system uses stable source references and timed leases, ensuring expensive AI analysis is not repeated unnecessarily.

0
ProgrammingDEV Community ·

MSc Game Dev: Five-Level Tutorial and Puzzle Stage Designed for Final Project

A graduate student developing an MSc final project game has completed tutorial and level design after core mechanics were ready for playtesting. The tutorial is split into five short levels, each introducing specific mechanics such as movement, NPC control, and signal reflection, following a 'tell then show' approach using wall-displayed instructions. After the tutorial, players enter a single level with three puzzle areas that require applying all previously taught mechanics to progress. Low-frequency signals posed a particular design challenge, requiring absorptive surfaces and multi-layered glass walls to prevent players from bypassing puzzles. The design prioritised pacing to avoid overwhelming players with too much new information at once.