mudler/LocalAI · error

ffmpeg_mux: empty frames\n

Error message

ffmpeg_mux: empty frames\n

What it means

ffmpeg muxing was requested with no video frames. Guard: check the frame list is non-empty before invoking ffmpeg_mux; treat zero frames as a generation failure and report it.

Source

Thrown at backend/go/stablediffusion-ggml/cpp/gosd.cpp:1210

    // Interleave planar [ch0_samples..., ch1_samples...] → [ch0_s0, ch1_s0, ...]
    for (uint64_t s = 0; s < frames; s++) {
        for (uint32_t c = 0; c < channels; c++) {
            float v = a->data[(size_t)c * frames + s];
            fwrite(&v, sizeof(float), 1, f);
        }
    }
    fclose(f);
    return 0;
}

// Pipe raw RGB/RGBA frames to ffmpeg stdin and let it produce an MP4 at dst.
// Uses fork+execvp to avoid shell interpretation of dst. When `audio` is
// non-null, the audio waveform is staged to a temp WAV and added as a second
// ffmpeg input so the final MP4 contains both video and AAC audio.
static int ffmpeg_mux_raw_to_mp4(sd_image_t* frames, int num_frames, int fps,
                                  const sd_audio_t* audio, const char* dst) {
    if (num_frames <= 0 || !frames || !frames[0].data) {
        fprintf(stderr, "ffmpeg_mux: empty frames\n");
        return 1;
    }
    int width = (int)frames[0].width;
    int height = (int)frames[0].height;
    int channels = (int)frames[0].channel;
    const char* pix_fmt_in = (channels == 4) ? "rgba" : "rgb24";

    char size_str[32];
    char fps_str[32];
    snprintf(size_str, sizeof(size_str), "%dx%d", width, height);
    snprintf(fps_str, sizeof(fps_str), "%d", fps);

    // Optional audio: write a temp WAV file if the model produced audio.
    char wav_path[64] = {0};
    bool have_audio = false;
    if (audio && audio->data && audio->sample_count > 0 && audio->channels > 0 && audio->sample_rate > 0) {
        if (write_planar_float_wav(audio, wav_path, sizeof(wav_path)) == 0) {
            have_audio = true;

View on GitHub (pinned to 44413a9d06)

Solutions

  1. Ensure the video generation produced frames before muxing; check earlier errors.
  2. Verify generation parameters (frames, steps) are non-zero and valid.

When it happens

Trigger: Thrown at backend/go/stablediffusion-ggml/cpp/gosd.cpp:1210 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of mudler/LocalAI@44413a9d06 (2026-08-15). Data as JSON: /api/errors/4f17d29cf9e5bd9b. Report an issue: GitHub.