Skip to content

farming789/cutVideo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

61 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

xj-node

分布式并行切割视频,提取音频,上传到七牛云和acrCloud

技术:nodejs+ffmpeg

安装nvm

curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.34.0/install.sh | bash

使用nvm安装node

nvm install node

安装pm2

npm i pm2 -g

安装ffmpeg 参见ffmpeg编译安装.md

安装mysql5.7

sudo apt-get install mysql-server

下载arcCloud指纹提取工具 https://www.acrcloud.com/docs/acrcloud/fingerprinting-tools/audio-file-fingerprinting-tool/

七牛云视频切片程序

安装

$ npm install

配置文件

拷贝 config.json.exampleconfig.json, 修改下列运行参数:

参数名称 描述 是否必须
db 数据库
acrcloud acrloud云
ffmpeg 视频处理
qiniu 七牛云
schedule 定时任务参数

任务分解

  • noVideoJob:提取音频
  • uploadACRCloudJob:上传音频
  • resizeJob:降低码率
  • cutJob:视频切片
  • uploadQiniuJob:上传切片后视频

运行

  • 方式一:启动定时任务
$ pm2 start pm2.json
  • 方式二:单独执行一次job
$ node index.js noVideoJob

运维

$ pm2 list
$ pm2 logs {index}

表结构

表名 描述
mv_origin 视频源文件表
mv_novideos 抽取后的音频
mv_resize 降码后的视频
mv_cut 视频切片

视频处理流程:

  1. 启动本项目
  2. 将视频文件上传到ffmpeg.basePath.src对应文件夹下
  3. mv_origin中新增一条记录,填写file_path,file_title,resize字段,所有status字段为0

支持的视频转码格式resize

  • 1080p
  • 720p
  • 480p-16x9
  • 480p-4x3
  • 360p-16x9
  • 360p-4x3
  • 320x240

async-acrloud.js

  • 同步已经上传音频文件的处理状态(处理中-就绪)
  • 远程删除mv_novideos表中del_status状态为1的音频

谢谢赞助

image

About

No description or website provided.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors