Nodes/Anymatix/Anymatix Save Animated MP4
ComfyUI Node

Anymatix Save Animated MP4

Save a VIDEO object as a real MP4, with FFmpeg doing the heavy lifting

By Anymatix·Created about a year ago·Updated 2 days ago· 0
Anymatix Save Animated MP4
  • video
    output_pathanymatix/results
    filename_prefixComfyUI
    qualityhigh_quality

    ComfyUI's stock animated save node has a well-earned reputation for producing videos that browsers and phones won't play. AnymatixSaveAnimatedMP4 exists to fix exactly that: it takes a VIDEO object and runs it through FFmpeg, so the output is a genuinely browser-compatible file rather than something you have to transcode before you can share it. If you've ever generated a video and immediately hit "why won't this play," this is the node the Anymatix workflows use instead.

    The name undersells it, actually. Despite the "MP4," the quality selector offers nine rungs that go well past H.264 - from lightweight delivery formats up to genuine post-production masters. It's less a single saver and more a small encoding ladder:

    • Delivery rungs (web_compatible, high_quality, fast_encode, h265_crf24, and the duplicate-looking high quality) produce browser-friendly H.264/H.265 MP4s. high_quality is the default.
    • Master rungs (prores4444, prores422hq, dnxhr_hqx, ffv1) write ProRes, DNxHR, or FFV1 into .mov/.mkv containers - the files you hand to a colourist or an editor, not the files you upload to Discord. The extension follows the rung, so a ProRes address writes a .mov, an FFV1 address writes an .mkv, and so on.

    The mechanism is FFmpeg with frames piped over stdin as raw RGB - no temp frames folder, one continuous encode. On Apple silicon it'll reach for h264_videotoolbox first (then fall back to software) for the delivery rungs, and it muxes audio when the VIDEO carries it, resampling through PyAV as needed. It deliberately does not mux audio into a shorter stream than the video - the code comments note that -shortest would kill the pipe - so you get a complete video even when audio and frame counts disagree.

    The FFmpeg requirement - read this before anything else

    This node cannot work without an FFmpeg binary, and it's loud about it. It first tries imageio-ffmpeg, which bundles and auto-downloads FFmpeg - that's why the pack lists imageio-ffmpeg in its requirements. If that's missing it falls back to a system ffmpeg, and if neither exists, the save returns empty with a wall of instructions instead of a file. The fix is in that wall: install the package (pip install imageio-ffmpeg) or install FFmpeg on the system (brew install ffmpeg, sudo apt install ffmpeg), then restart ComfyUI.

    Inputs and output

    • video (VIDEO) - the video object, typically from a video-creation node or the pack's AnymatixImageToVideo.
    • output_path (default anymatix/results) - subdirectory under ComfyUI's output folder.
    • filename_prefix (default ComfyUI) - base name.
    • quality - pick your rung from the ladder above.

    No outputs; it's an output node. Watch ComfyUI's log for the "[ANYMATIX_SAVE_MP4]" lines if something goes wrong - they're more useful than the generic console spam.

    Gotchas

    This pack's save nodes write into output/anymatix/results by default, and the README is explicit that that folder is swept on a timer - results expire after a TTL (24h by default, ANYMATIX_CACHE_TTL_RESULTS to change it). Nothing the queue references is ever swept, but a finished MP4 sitting in results is at risk of GC. If you want a file that survives, save to your own output folder or copy it out. And on a machine with no hardware encoder, the ProRes/DNxHR master rungs are pure CPU - slow but correct.

    CategoryAnymatix

    Inputs (4)

    NameTypeDefaultDescription
    videoVIDEO
    output_pathSTRINGanymatix/results
    filename_prefixSTRINGComfyUI
    qualityCOMBOhigh_quality9 options: web_compatible, high_quality, fast_encode, high quality, prores4444, prores422hq, +3

    Outputs (0)

    No outputs