Silence Remover API

POST /silence_process

About this tool

Long interviews and classroom captures ship faster when dead air disappears automatically. `/silence_process` ingests JSON with `video_url` plus `noise_threshold` parameters aligning with FFmpeg’s silence-detection idioms; energies below the threshold collapse after minimum gaps defined in docs. Outputs land in the ordinary async workflow: validate subscription keys, enqueue FFmpeg, poll task metadata, fetch trimmed media, all without multipart uploads bloating gateways. Archival librarians still annotate which passes were algorithmic versus hand-tuned metadata for FOIA responsiveness.

Threshold dialing is iterative: HVAC noise fights naive gates, while aggressive slicing can butcher comedic timing. Editors often preview locally using raw ffmpeg graphs, tune `noise_threshold` empirically, then lift those decimals into queued JSON batches that resume automatically when browsers close. Stitch `/cut` jobs ahead of silence detection when countdown leaders must disappear before metering speech energy.

Unlike consumer “jump cut bots,” this endpoint documents failure semantics when tracks lack audio entirely or when Dolby layouts confuse channel mapping. Logs cite channel indexes so engineers can remap before requeueing. Observability metrics quantify how many seconds each job removes so finance can compare storage savings versus manual editor hours. When speech overlaps room tone, raise thresholds slightly rather than chasing impossible zero-cross perfection.

Enterprise compliance still demands human review for legal depositions; auto trimming remains an editorial assistant rather than sworn testimony. Understand which retention tiers apply before betting on long-lived download mirrors; subscriptions define how aggressively cold storage rotates even when your JSON payloads stay identical.

Throughout, JSON plus HTTPS remains the contract: host files on durable TLS endpoints, never embed secrets in URLs, and throttle cron jobs with exponential backoff when queues show saturation signals. Finance podcasts adore `/silence_process` until deliberate dramatic pauses disappear; export A/B FFmpeg settings locally, annotate runbooks, then promote thresholds that preserve performer beats while shortening wall-clock listens. Remember silent B-roll cues still qualify as programmatic audio; annotate those chapters before automation runs.

Try it now

How it works

  1. Profile your room tone

    Measure typical noise floors, translate them into `noise_threshold` values documented alongside `/silence_process`, and ensure `video_url` is public HTTPS.

  2. POST JSON with API key

    Submit the payload through `POST /silence_process`. Receive `status_url` immediately while FFmpeg schedules work.

  3. Poll until FFmpeg finishes

    Use periodic GET requests to track progress; UI components can reflect percentage estimates if exposed.

  4. QC the tightened edit

    Download the processed file, listen for clipped consonants, and rerun with gentler thresholds if needed.

Frequently asked questions

Will this cut pauses in music or dramatic speech?

Silence detection cannot tell artistic rests from dead air. Use a higher noise threshold or process speech-only stems for music content.

What does the noise threshold actually control?

It sets how quiet a section must be before FFmpeg treats it as silence to remove. Typical values are negative decibel-style numbers; see the API reference for the valid range.

Does the output keep the same video format?

Container and codec follow the defaults in the docs. Some jobs re-encode audio while copying video streams depending on the filters applied.

I set the threshold wrong and got an instant error: why?

Out-of-range values fail validation before processing. Adjust using the documented min and max, then resubmit.

Can I run this on podcast recordings with long breaths?

Yes, but aggressive settings can clip consonants at edit points. Listen to the output and loosen the threshold if words sound chopped.

Should I trim first or remove silence first?

Trim to the content you care about, then remove silence. Shorter inputs process faster and give more predictable results.

How do I use the Silence Remover API?

POST to /silence_process with a JSON body containing video_url, noise_threshold and your X-API-Key header. The API returns a task_id; poll GET /task/{task_id} until status is "completed" to retrieve the download_url.

Via the REST API

curl -X POST https://droidapps.one/silence_process \
  -H "Content-Type: application/json" \
  -H "X-API-Key: YOUR_KEY" \
  -d '{
         "video_url": "https://cdn.example.com/talk.mp4",
         "noise_threshold": -40
       }'

Via the MCP server (droidapps-ffmpeg)

const job = await mcp.callTool("submit_job", {
  path: "/silence_process",
  body: {
    video_url: "https://cdn.example.com/talk.mp4",
    noise_threshold: -40
  }
})
// Returns: { task_id: "abc123", status: "queued" }

const result = await mcp.callTool("wait_for_task", {
  task_id: job.task_id
})
// Returns: { status: "completed", download_url: "https://..." }