18

最近很火的sorry在线制作gif的node版本,创意来自Xuty的ruby原版,本文档亦有参考原文档。

node-sorry仓库

线上演示地址

有问题欢迎提issue,喜欢项目的请star,谢谢!

图片

项目说明

  • 服务端采用 koa + fluent-ffmpeg,生成字幕和gif存在cache目录
  • api用RESTful规范
  • 页面采用ejs渲染,构建脚本build.js,生成页面和资源在dist目录
  • 项目配置在config.js中(部署请删掉或替换统计代码)

源码结构

├── package
├── package.lock
├── common                  # 工具类
├── server                  # node源码
├── view                    # 页面源码
├── template                # gif模板
├── config.js               # 配置
├── build.js                # 页面构建脚本
├── README.md
└── cache                   # gif和字幕缓存

其他版本

API

制作GIF:

POST {host}/api/{template_name}/
{
    subtitle:['好啊',.....]
}

# 返回GIF的hash
-> 200 
{
  status: 200,
  data: 'c2f4069ed207dc38e0f2d9359a2fa6b7'
}

获取GIF:

GET {host}/api/{template_name}/{gif_hash}

目前支持的template_name有:

- sorry
- wangjingze

部署指南

安装

npm i

@ffmpeg-installer/ffmpeg有可能装不上,多装npm i几次

构建页面

npm run build

部署

本地开发用npm run server

线上部署用推荐使用pm2管理,先安装npm i pm2 -g,再pm2 start server/index.js启动项目即可

制作字幕模板template.ass

首先使用aegisub为模板视频创建字幕,保存为template.ass(aegisub教程可以看这个 https://tieba.baidu.com/p/136...
图片

然后把文本替换成模板字符串 <%= sentences[n] %>
图片


leonlee91
1k 声望36 粉丝

微不足道的流浪汉