tonhowtf/omniget · error

nenhuma pausa nem corte de cena encontrado; afrouxe os…

Error message

nenhuma pausa nem corte de cena encontrado; afrouxe os limiares

What it means

After running silence and scene detection, no cues were found at the configured thresholds, so chapter building is impossible. The library requires at least one detected pause or scene cut to produce chapters and suggests loosening thresholds.

Solutions

  1. Lower the silence threshold / increase silence duration sensitivity in options
  2. Lower opts.scene_threshold (e.g. from 0.4 to 0.3 or lower) so more cuts qualify
  3. Provide a subtitle file so cues come from captions instead of detection
  4. Verify the input actually contains the expected pauses/cuts

Example fix

// before
let opts = Options { scene_threshold: 0.5, ..Default::default() };
// after
let opts = Options { scene_threshold: 0.3, ..Default::default() }; // looser
run(opts, progress).await?;
Defensive patterns

Strategy: fallback

Validate before calling

// can't pre-check detection results; pre-validate thresholds are in sane range
assert!(opts.scene_threshold > 0.0 && opts.scene_threshold < 0.6);

Try / catch

match run(opts, progress).await {
    Err(e) if e.to_string().contains("nenhuma pausa nem corte") => {
        // retry once with looser thresholds or supply subtitles
    }
    other => other?,
}

Prevention

When it happens

Trigger: `run` completes detect_silence/detect_scenes and both vectors are empty — silence threshold too strict for quiet audio, or scene_threshold too high for visually static video, or both detectors disabled.

Common situations: Podcast/static-screen video with no visual cuts; audio normalized to very low noise floor failing silence threshold; user set scene_threshold very high; input too short to contain any detectable events.

Understand the failure class

Background: EmptyResultError / "no results found": when an API or scraper succeeds but returns zero rows — this error's family across 9 libraries.

Related errors


AI-assisted analysis of tonhowtf/omniget@8600b91f42 (2026-09-12). Data as JSON: /api/errors/198e5d85d813b2f5. Report an issue: GitHub.

Appendix: source

Thrown at src-tauri/omniget-core/src/core/tools/yt_chapters.rs:469

            cues = super::yt_notes::dedup_cues(&cues);
        }
    }
    let titled = !cues.is_empty();

    let silences = if opts.use_silence {
        super::report(&progress, ID, "progress", 1, Some(3), None);
        detect_silence(&ffmpeg, &input, opts.silence_db, opts.min_silence, total).await?
    } else {
        Vec::new()
    };
    let scenes = if opts.use_scene && probe.streams.iter().any(|s| s.codec_type == "video") {
        super::report(&progress, ID, "progress", 2, Some(3), None);
        detect_scenes(&ffmpeg, &input, opts.scene_threshold).await?
    } else {
        Vec::new()
    };
    if silences.is_empty() && scenes.is_empty() {
        return Err(anyhow!(
            "nenhuma pausa nem corte de cena encontrado; afrouxe os limiares"
        ));
    }

    let marks = merge_signals(&silences, &scenes, &opts.fuse);
    let chapters = build_chapters(&marks, &cues, total, opts.fuse.min_chapter);
    let description = description_block(&chapters);
    let meta = ffmetadata(&chapters);

    let (mut desc_path, mut meta_path) = (String::new(), String::new());
    if opts.write_files {
        let dir = if opts.output_dir.trim().is_empty() {
            input.parent().map(|p| p.to_path_buf()).unwrap_or_default()
        } else {
            PathBuf::from(opts.output_dir.trim())
        };
        std::fs::create_dir_all(&dir)?;
        let stem = input

View on GitHub (pinned to 8600b91f42)