Skip to content

项目介绍

PixiJS WebGl服务端渲染转视频

主机环境依赖

1、标准版的chrome浏览器
2、ffmpeg 音视频处理(下载地址 http://www.ffmpeg.org/download.html)
3、nodejs 18.19.0+
4、redis 5+  用于保存任务队列

配置 config.js

主要关注以下部分(默认保留配置是按照 mac 开发环境设置的,其余环境按需设置)

1、启用 GPU 硬件加速相关配置,根据实际的 OS,选择开启如下注释

//硬件加速相关配置
//windows
//不用配置

//mac
'--use-gl=egl',

//linux
// '--use-gl=desktop',
// '--ignore-gpu-blacklist',
// '--enable-gpu-rasterization',
// '--enable-features=VaapiVideoDecoder,VaapiVideoEncoder,Prerender2',

2、主机浏览器安装地址设置,根据实际的 OS 及浏览器安装目录,修改配置

//linux
// executablePath: "/opt/google/chrome/chrome",

//windows,具体路径按实际环境设置
// executablePath: "c:\\Program Files\\Google\\Chrome\\Application\\chrome.exe",

//mac
executablePath:'/Applications/Google Chrome.app/Contents/MacOS/Google Chrome',

3、配置.env

#1、将.env.example 复制为 .env
$ cp .env.example .env

#2、修改.env的配置信息,重点是如下配置项

#设置渲染的OS系统平台(mac/win/ubuntu/centos),自动根据平台选择config.*.js作为预选配置启动chrome和ffmpeg参数
render.os=win

#chrome浏览器位置,默认在config/config.*.js中有配置
render.executablePath=

#资源域名配置
render.resource=https://cdn.h5ds.com

#redis配置【一定要与server的redis配置一样】
render.redis.host=127.0.0.1
render.redis.port=6379
render.redis.password=
render.redis.db=0

#【文件存储】文件存储系统 (oss-阿里云OSS local-本地存储 cos-腾讯云COS s3-S3 minio-Minio),默认oss
storage.disk=oss
#【文件存储】阿里云OSS配置
storage.oss.accessKeyId=LTAI1i16~
storage.oss.accessKeySecret=KZW1AqsC4~
storage.oss.bucket=h5ds-cdn
storage.oss.cname=true
storage.oss.endpoint=https://cdn.h5ds.com
#腾讯云COS配置
storage.cos.SecretId=
storage.cos.SecretKey=
storage.cos.Bucket=
storage.cos.Region=
#【文件存储】MinIO配置
storage.minio.accessKey=IntJguUOlS9Iu438TZ2z
storage.minio.secretKey=W42kGBLCAnyK0pjv0rB7mFFuLui2K8Y9FoXy83LO
storage.minio.bucket=h5ds
storage.minio.endPoint=localhost
storage.minio.port=9000
storage.minio.useSSL=false
#【文件存储】AWS S3配置
storage.s3.accessKeyId=AKIAUO7P~
storage.s3.secretAccessKey=gTxfs6A0+3lLC4E5RIh0~
storage.s3.region=cn-north-1
storage.s3.bucket=xinfa-test

运行

# 【可选】安装yarn
$ npm install -g yarn

# 安装依赖包
$ yarn install

# 默认端口启动 server,默认监听8000
$ node server.js

# 指定端口启动 server
$ node server.js 8888

使用

通过 api 接口调用服务

接口文档地址:https://console-docs.apipost.cn/preview/8b5f1f33c527f522/2a23b18c8e596003

docker构建与使用

1、设置.env,设置运行环境为linux

render.os=linux

2、构建容器

#删除就容器
$ docker stop xfce
$ docker rm xfce

#构建镜像
$ docker build -t xfce .

#清理TAG<none>镜像
$ docker image prune -f

#测试镜像
$ docker run -d --name xfce -v $pwd/:/www/ -p 3389:3389 -p 6901:6901 -p 8000:8000 xfce

#容器使用说明
    https://hub.docker.com/r/soff/ubuntu-xfce-vnc

#浏览器VNC链接
    http://localhost:6901/?password=vncpassword


#推送到远端镜像仓库
$ docker tag xfce registry.cn-hangzhou.aliyuncs.com/h5ds/xfce:latest
$ docker push registry.cn-hangzhou.aliyuncs.com/h5ds/xfce:latest
#清理多余的<none>镜像
$ docker image prune -f

处理状态说明

列表api:/api/job/list?types=waiting,active,failed&start=0&end=0 详情api:/api/job/info?id=108

结果:

{
	"code": 0,
	"message": "success",
	"data": {
		"id": "108",
		"data": {
			。。。
		},
		"progress": "callbacked", //处理状态
	}
}

data.progress字段状态说明:
正常处理状态:
    待处理
    ->initing(数据准备中)
    ->rendering,*%(渲染中,进度)
    ->downloading(下载webm及音频数据)
    ->rendered(渲染逻辑完成)
    ->transcodeing(转码合并音视频中)
    ->transcoded(转码合并完成)
    ->putcosing(上传cos中)
    ->putcosed(上传cos完成)
    ->callbacking(回调api中)
    ->callbacked(回调api完成)

异常状态:
    rendererror(渲染出错)
    transcodeerror(转码合并出错)
    putcoserror(上传cos出错)
    callbackerror(回调API出错)

Powered by 四川爱趣五科技有限公司.蜀ICP备18034069号.