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.
Custom Nodes (16)
README
介绍
把FFmpeg常用功能封装成ComfyUI节点,方便用户可以在ComfyUI上也可以进行各种视频处理。<br>
说明
使用该节点之前需要先安装FFmpeg,FFmpeg安装方法可以参考 这里
安装
方法1:
- 进入节点目录,
ComfyUI/custom_nodes/
git clone https://github.com/MoonHugo/ComfyUI-FFmpeg.git
cd ComfyUI-FFmpeg
pip install -r requirements.txt
- 重启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>
社交账号
- Bilibili:我的B站主页
感谢
感谢FFmpeg仓库的所有作者 FFmpeg/FFmpeg