Extensions/ComfyUI-FFmpeg
ComfyUI Extension

ComfyUI-FFmpeg

Encapsulate the commonly used functions of FFmpeg into ComfyUI nodes, making it convenient for users to perform various video processing tasks within ComfyUI.

By MoonHugo·Created 2 years ago·Updated 3 months ago· 146
MoonHugo/ComfyUI-FFmpeg
Nodes19
On cloudLocal install
Category🔥FFmpeg, 🔥FFmpeg/auxiliary tool
Stars146
Updated3 months ago
Readme
<h1 align="center">ComfyUI-FFmpeg</h1> <p align="center"> <br> <font size=5>中文 | <a href="README_EN.md">English</a></font> </p>

介绍

把FFmpeg常用功能封装成ComfyUI节点,方便用户可以在ComfyUI上也可以进行各种视频处理。<br>

说明

使用该节点之前需要先安装FFmpeg,FFmpeg安装方法可以参考 这里

安装

方法1:

  1. 进入节点目录, ComfyUI/custom_nodes/
  2. git clone https://github.com/MoonHugo/ComfyUI-FFmpeg.git
  3. cd ComfyUI-FFmpeg
  4. pip install -r requirements.txt
  5. 重启ComfyUI

方法2:

直接下载节点源码包,然后解压到custom_nodes目录下,最后重启ComfyUI

方法3:

通过ComfyUI-Manager安装,搜索“ComfyUI-FFmpeg”进行安装

节点介绍

Video2Frames节点: 作用是将视频转为一张一张的图片,并保存到指定目录中<br>

参数说明

video_path: 本地视频路径,比如:C:\Users\Desktop\222.mp4<br> output_path: 输出图片保存路径,比如:C:\Users\Desktop\output<br> frames_max_width: 这个参数可以用来缩放视频,默认为0,表示不缩放视频,如果frames_max_width大于视频实际宽度,则视频不会被放大,保持原宽度,如果frames_max_width小于视频实际宽度,则视频会被缩小。


Frames2Video节点: 作用是将图片转为视频,并保存到指定目录中<br>

参数说明

frame_path: 本地图片路径,比如:C:\Users\Desktop\output<br> fps: 视频帧率,默认为30<br> video_name: 保存视频名称,比如:222.mp4<br> output_path: 视频保存路径,比如:C:\Users\Desktop\output<br> audio_path: 视频音频路径,比如:C:\Users\Desktop\222.mp3<br>


AddTextWatermark节点: 作用是在视频上添加文字水印<br>

参数说明

video_path: 本地视频路径,比如:C:\Users\Desktop\222.mp4<br> output_path: 视频保存路径,比如:C:\Users\Desktop\output<br> font_file: 字体文件,需要把字体文件放到custom_nodes\ComfyUI-FFmpeg\fonts目录下,不仅英文字体,中文字体也可以,比如:ComfyUI\custom_nodes\ComfyUI-FFmpeg\fonts\Alibaba-PuHuiTi-Heavy.ttf<br> font_size: 水印文字大小,比如:40<br> font_color: 水印文字颜色,比如:#FFFFFF或者white<br> position_x: 水印文字x坐标,比如:100<br> position_y: 水印文字y坐标,比如:100<br>


AddImgWatermark节点: 作用是在视频上添加图片水印<br>

参数说明

video_path: 本地视频路径,比如:C:\Users\Desktop\222.mp4<br> output_path: 视频保存路径,比如:C:\Users\Desktop\output<br> watermark_image: 水印图片路径,比如:C:\Users\Desktop\watermark.png<br> watermark_img_width: 水印图片宽度,比如:100<br> position_x: 水印图片在视频中的x坐标,比如:100<br> position_y: 水印图片在视频中的y坐标,比如:100<br>


VideoFlip节点: 作用是翻转视频<br>

参数说明

video_path: 本地视频路径,比如:C:\Users\Desktop\222.mp4<br> output_path: 视频保存路径,比如:C:\Users\Desktop\output<br> flip_type: 翻转类型,比如:horizontal水平翻转,vertical垂直翻转,both水平加垂直翻转<br>


ExtractAudio节点:作用是提取视频中的音频<br>

参数说明

video_path: 本地视频路径,比如:C:\Users\Desktop\222.mp4<br> output_path: 音频保存路径,比如:C:\Users\Desktop\output<br> audio_format: 保存音频格式,包括 .m4a.mp3.wav.aac.flac.wma.ogg.ac3.amr.aiff.opus.m4b.caf.dts 等等。<br>


MergingVideoByTwo节点: 作用是合并两个视频,比如把两个一小时的视频合并成一个时长为2小时的视频<br>

参数说明

video1_path: 视频路径,比如:C:\Users\Desktop\111.mp4<br> video2_path: 视频路径,比如:C:\Users\Desktop\222.mp4<br> device: 分为CPU和GPU,如果你用CPU合并两个视频出错的话,可以尝试用GPU。<br> resolution_reference: 合并后的视频尺寸是多少,可以参考第一个视频或者第二个视频,即video1或者video2。<br> output_path: 视频保存路径,比如:C:\Users\Desktop\output<br>


MergingVideoByPlenty节点: 作用是把多个编码格式、分辨率、帧率都一样的短视频合并成长视频<br>

参数说明

video_path: 视频路径,比如:C:\Users\Desktop\111,要求该路径下所有视频的编码格式、帧率以及分辨率一样。<br> output_path: 视频保存路径,比如:C:\Users\Desktop\output<br>


StitchingVideo节点: 作用是拼接两个视频,分成水平拼接和垂直拼接两种拼接方式<br>

参数说明

video1_path: 视频路径,比如:C:\Users\Desktop\111.mp4<br> video2_path: 视频路径,比如:C:\Users\Desktop\222.mp4<br> device: 分为CPU和GPU,如果你用CPU拼接两个视频出错的话,可以尝试用GPU。<br> use_audio: 拼接后的视频使用哪个视频的音频,可以选择第一个视频的音频或者第二个视频的音频,即video1或者video2。<br> stitching_type: 拼接视频方式,分为水平拼接(horizontal)和垂直拼接(vertical)两种方式。<br> output_path: 视频保存路径,比如:C:\Users\Desktop\output<br> scale_and_crop: 是否缩放裁剪成video1的尺寸。<br>


MultiCuttingVideo节点: 作用是把一个视频切割成若干个视频<br>

参数说明

video_path: 视频路径,比如:C:\Users\Desktop\111.mp4<br> output_path: 视频保存路径,比如:C:\Users\Desktop\output<br> segment_time: 切割的每个视频长度,单位为秒,需要注意的是,它是根据关键帧切割视频的,所以时间不能太短。因为不能保证每一段视频都有关键帧,所以每一段视频时长不一定都一样,只是最接近的。<br>


SingleCuttingVideo节点: 作用是切割指定视频中某个时间段的视频<br>

参数说明

video_path: 视频路径,比如:C:\Users\Desktop\111.mp4<br> output_path: 视频保存路径,比如:C:\Users\Desktop\output<br> start_time: 设置切割的开始时间点,设置为00:00:10的话就表示从视频中的第10秒开始切割。<br> end_time: 设置切割的结束时间点,设置为00:05:00,表示切割到视频中的第5分钟为止。<br>


AddAudio节点: 作用是给视频添加音频<br>

参数说明

video_path: 视频路径,比如:C:\Users\Desktop\111.mp4<br> audio_from: 音频来源,可以来源于音频文件,也可以来源于视频文件,即audio_file、video_file。<br> file_path: 如果audio_from为audio_file,这里就填入一个音频文件路径,如果audio_from为video_file,那么这里就填入一个视频文件路径,比如:C:\Users\Desktop\111.mp3 或者 C:\Users\Desktop\111.mp4<br> delay_play: 音频延迟播放时间,单位为秒,默认值为0。<br> output_path: 视频保存路径,比如:C:\Users\Desktop\output<br>


PipVideo节点: 给视频增加画中画功能<br>

参数说明

video1_path: 画中画背景视频,比如:C:\Users\Desktop\111.mp4<br> video2_path: 画中画前景视频,比如:C:\Users\Desktop\222.mp4<br> device: 分为CPU和GPU,如果你用CPU出错的话,可以尝试用GPU。<br> use_audio: 最终视频使用哪个视频的音频,可以选择第一个视频的音频或者第二个视频的音频,即video1或者video2。<br> use_duration: 使用哪个视频的时长作为最终视频的时长,可以选择第一个视频或者第二个视频,即video1或者video2。<br> align_type: 前景视频在背景视频中的位置,有top-left、top-right、bottom-left、bottom-right、center这些选项。<br> pip_fg_zoom: 画中画背景缩放系数,越大前景画面越小,值为背景宽高的缩小倍数。<br> output_path: 视频保存路径,比如:C:\Users\Desktop\output<br> scale_and_crop: 缩放和裁剪比例。<br> fps: 最终视频的帧率,默认为30.0,设置为0将使用video2的帧率,设置为1为将使用video2的帧率。<br> is_chromakey: 是否进行绿幕去背景。<br>


VideoTransition节点: 给两个视频添加转场过渡动画效果<br>

参数说明

video1_path: 视频路径,比如:C:\Users\Desktop\111.mp4<br> video2_path: 视频路径,比如:C:\Users\Desktop\222.mp4<br> reference_video: 参考视频是哪个视频,决定了输出视频的尺寸和帧率。<br> device: 分为CPU和GPU,如果你用CPU出错的话,可以尝试用GPU。<br> transition: 转场特效名称,默认有'fade', 'wipeleft', 'wiperight', 'wipeup', 'wipedown','slideleft', 'slideright', 'slideup', 'slidedown','circlecrop', 'rectcrop', 'distance', 'fadeblack', 'fadewhite','radial', 'smoothleft', 'smoothright', 'smoothup', 'smoothdown','circleopen', 'circleclose', 'vertopen', 'vertclose','horzopen', 'horzclose', 'dissolve', 'pixelize','diagtl', 'diagtr', 'diagbl', 'diagbr','hlslice', 'hrslice', 'vuslice', 'vdslice','hblur', 'fadegrays', 'wipetl', 'wipetr', 'wipebl', 'wipebr','squeezeh', 'squeezev', 'zoomin', 'fadefast', 'fadeslow','hlwind', 'hrwind', 'vuwind', 'vdwind','coverleft', 'coverright', 'coverup', 'coverdown','revealleft', 'revealright', 'revealup', 'revealdown',可以执行命令:ffmpeg -hide_banner -h filter=xfade 查看你本地ffmpeg版本可用的转场效果。<br> transition_duration: 转场持续时间,单位秒,最大值为3秒,不能小于0.1秒。<br> offset: 转场开始时间,单位秒,不能大于等于video1的时长减去转场持续时间。<br> output_path: 视频保存路径,比如:C:\Users\Desktop\output<br>


VideoPlayback节点: 作用是倒放视频<br>

参数说明

video_path: 本地视频路径,比如:C:\Users\Desktop\222.mp4<br> output_path: 视频保存路径,比如:C:\Users\Desktop\output<br> reverse_audio:是否倒放音频,默认值为True<br>


社交账号

感谢

感谢FFmpeg仓库的所有作者 FFmpeg/FFmpeg

关注历史

Star History Chart