一个使用ffmpeg实现各种功能的脚本集(nodejs)
- 运行环境
- 分析视频场景帧,并生成播放器支持的书签文件(PotPlayer)
- 使用视频画面拼接自定义的字幕
- 以水平滚动的方式,展示多张图片
- 为图片或视频添加自定义的水印,具有动态水印等多种高级功能。
- 将多张图片转换成类似幻灯片的视频,支持多种转场效果
名称 | 版本 | 注意 |
---|---|---|
nodejs | 18.16.1+ | |
ffmpeg | 4.4.2+ | 需要添加到环境变量path中 |
脚本为了方便使用,尽量不使用第三方库,因此,如果没有特殊说明,每个文件均可以独立运行。
无需执行npm install
;
node ffmpeg.video2bookmark.js -i "视频文件(夹)完整路径"
将在视频文件同目录下创建同名的.pbf文件,该文件为PotPlayer支持的书签文件。打开视频文件将自动加载。更多书签的使用方式,请自行研究PotPlayer。
- 分析需要对视频进行解码,受CPU性能影响;
- 更多参数可执行
node ffmpeg.video2bookmark.js -h
查看帮助文档 - 关于这个脚本的记录文章可以查看这里docs/ffmpeg.video2bookmark.md
node ffmpeg.subtitle.stack.js -i "视频文件路径" -t "文本文件路径" -font "字体文件路径"
- 更多参数可执行
node ffmpeg.subtitle.stack.js -h
查看帮助文档 - 关于这个脚本的记录文章可以查看这里docs/ffmpeg.subtitle.stack.md
示例视频
output.mp4
node ffmpeg.images.rolling.js -i "图片文件夹路径"
- 更多参数可执行
node ffmpeg.images.rolling.js -h
查看帮助文档 - 关于这个脚本的记录文章可以查看这里docs/ffmpeg.images.rolling.md
模拟DVD待机画面
big_buck_bunny_10s_dvd.mp4
每1秒随机变换水印位置
big_buck_bunny_10s_random.mp4
身份证添加水印:
node ffmpeg.watermark.js -i "图片文件夹路径"
- 更多参数可执行
node ffmpeg.watermark.js -h
查看帮助文档 - 更详细的帮助文档可以查看这里docs/ffmpeg.watermark.help.md
- 如果你对ffmpeg的开发感兴趣,关于这个脚本的技术文章可以查看这里docs/ffmpeg.watermark.md
效果预览
output.mp4
node ffmpeg.img2video.js -i "图片文件夹路径"
- 将一个目录里的图片文件按顺序生成幻灯片视频,如果目录下有音频和字幕,也将第一个音频和字幕添加到视频里
- 更多参数可执行
node ffmpeg.img2video.js -h
查看帮助文档 - 如果你对ffmpeg的开发感兴趣,关于这个脚本的技术文章可以查看这里docs/ffmpeg.img2video.md
- 增加了对自定义转场效果的支持,并在preset/xfade里预置了一些效果,点击这里预览效果。
- 关于自定义转场效果要怎么写,可以查看这个文档docs/ffmpeg.xfade.md