添加动态水印,以随机更改视频React / Node

时间:2018-09-12 13:20:35

标签: node.js reactjs video-watermarking

我正在建立一个在线课程网站。为了不鼓励对付费课程进行视频录制,我想在视频上添加动态水印,以随机更改屏幕上的位置。水印将显示已登录用户的电子邮件ID。是否可以使用React / Node JS做到这一点?

谢谢。

1 个答案:

答案 0 :(得分:2)

对于媒体操作,您可以使用ffmpeg库。在下面的演示中,我使用了ffmpeg node wrapper

const ffmpeg = require('fluent-ffmpeg');
const fs = require('fs');
const http = require('http');

const PORT = 3000;
const VIDEO_PATH = 'big_buck_bunny.mp4';
const WATERMARK_PATH = `${__dirname}/watermark-128.png`;

const videoHandler = (req, res) => {
  new ffmpeg(fs.createReadStream(VIDEO_PATH))
    .input(WATERMARK_PATH)
    .complexFilter("overlay='x=if(eq(mod(n\\,18)\\,0)\\,sin(random(1))*w\\,x):y=if(eq(mod(n\\,18)\\,0)\\,sin(random(1))*h\\,y)'")
    .outputOptions('-movflags frag_keyframe+empty_moov')
    .toFormat('mp4')
    .pipe(res, {end: true});
};

const server = http.createServer(videoHandler);

server.listen(PORT, () => {
  console.log(`Listening at http://localhost:${PORT}`);
})