Video Combine Encrypt (ShellAgent Plugin)
Turn an image sequence into a real MP4 (then lock it)
- images
- audio
- vae
- Filenames
Video Combine Encrypt is the pack's heavyweight: it stitches a batch of IMAGE tensors into an actual video file - H.264 MP4, H.265, VP9 WebM, MOV, AVI, even GIF or WebP animation - using ffmpeg under the hood, and it can mux in audio and even decode a latent with a VAE for you. It's basically VHS Video Combine reimagined with a much friendlier format menu and a security twist: by default it XOR-encrypts the output file so it can't be played directly, which is the whole point when you're shipping a result to a ShellAgent app rather than watching it yourself.
This is the one node in the pack where the README is a small book in Chinese, and it's worth skimming - the format compatibility table is genuinely useful.
How it works
Feed it an images batch (any image-sequence source - AnimateDiff, video models, frame generation), pick a format, and it shells out to ffmpeg to build the file. The key decision is format:
video/h264-mp4- the default pick and the README's loud recommendation. Plays everywhere including Mac and iOS.video/h265-mp4- better compression for 4K, slightly worse compatibility.video/vp9-webm- web/streaming-friendly.video/mov,video/avi- legacy/QuickTime territory.image/gifandimage/webp- animated images instead of video (loop withloop_count, andpingpongreverses the frames for a seamless loop).video/h264-advancedandvideo/ffmpeg-manual- the expert modes that unlockadvanced_preset,advanced_crf,advanced_pix_fmt,advanced_tune, colorspace, and raw x264 params.
The quality slider (1–100, default 85) maps to ffmpeg quality settings for the simple formats. Connect the optional audio input and it muxes it in, picking a sensible codec. Connect vae and it auto-decodes a latent before encoding - you can skip the separate VAE Decode node.
The gotcha that burns people
encrypt defaults to on. Your shiny MP4 will be XOR-scrambled with the hardcoded key ShellAgentSecretKey2024!, unplayable in any player, un-previewable in ComfyUI. If you just wanted a normal video, flip it off. If you're building the ShellAgent pipeline, leave it on - the app decrypts on its end. Same key is used across the pack's save/load nodes, so files are round-trippable.
Second gotcha: Mac black-screen videos. The advanced_pix_fmt default is yuv420p (plays everywhere), but if you pick yuv444p or yuv444p10le for color fidelity, Mac/iOS players will show black. The README's advice: keep yuv420p unless you're doing professional post-production on Windows/Linux and will convert before publishing.
The output is VHS_FILENAMES - the exact type VHS's Save Video expects, so you can chain this into the pack's Save Video - VHS node to register the file for the app.
Installing it
Same single pack:
cd ComfyUI/custom_nodes
git clone https://github.com/myshell-ai/ComfyUI-ShellAgent-Plugin
restart, or use ComfyUI Manager (search ComfyUI-ShellAgent-Plugin). Video output needs ffmpeg; the pack installs imageio-ffmpeg as a fallback binary, but if you get an "ffmpeg not found" error, install ffmpeg system-wide (sudo apt install ffmpeg, or the Windows build from ffmpeg.org).
Common issues
- "ffmpeg is required for video outputs and could not be found." Install ffmpeg or make sure
imageio-ffmpegsurvived the install. - Black video on Mac/iOS. You used
yuv444p(or high444 format). Re-encode withvideo/h264-mp4/yuv420p. - File won't play anywhere.
encryptis on - that's expected, decrypt on the receiving end. - Video is missing audio. The
audioinput is optional; if nothing's connected there's nothing to mux.
Inputs (19)
| Name | Type | Default | Description |
|---|---|---|---|
| images | IMAGE | — | |
| frame_rate | FLOAT | 241–120 | — |
| loop_count | INT | 00–100 | 循环次数。0 = GIF/WebP无限循环 |
| filename_prefix | STRING | ShellAgent_Encrypted | — |
| format | COMBO | 10 options: image/gif, image/webp, video/h264-mp4, video/h265-mp4, video/vp9-webm, video/avi, +4 | |
| quality | INT | 851–100 | 质量等级 (越高质量越好,文件越大) |
| pingpong | BOOLEAN | false | 反转并追加帧以实现无缝循环 |
| encrypt | BOOLEAN | true | 如果启用,输出文件将被加密,无法直接查看 |
| audioopt | AUDIO | 可选音频,与视频混流 | |
| vaeopt | VAE | 可选VAE,用于解码latent输入 | |
| advanced_presetopt | COMBO | medium | 编码速度预设 (越慢质量越好) |
| advanced_tuneopt | COMBO | none | 编码优化类型 |
| advanced_crfopt | INT | 200–51 | 质量控制 (0=无损, 20=推荐, 51=最差) |
| advanced_pix_fmtopt | COMBO | yuv420p | 像素格式 (yuv420p=Mac兼容, yuv444p=高质量但Mac不兼容) |
| advanced_colorspaceopt | COMBO | bt709 | 色彩空间元数据 |
| advanced_color_rangeopt | COMBO | pc | 色彩范围 (tv=16-235, pc=0-255全范围) |
| advanced_x264_paramsopt | STRING | 高级x264参数,例如: aq-mode=3:aq-strength=0.8 | |
| manual_videocodecopt | STRING | libx264 | 手动模式: 视频编解码器 |
| manual_audio_codecopt | STRING | aac | 手动模式: 音频编解码器 |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| Filenames | VHS_FILENAMES | — |