添加随机改变视频位置的动态水印 React/Node
Add dynamic watermark that randomly changes position over video React/Node
我正在建立一个在线课程网站。为了阻止付费课程的视频录制,我想在视频上添加一个动态水印,它会随机改变屏幕上的位置。水印将显示登录用户的电子邮件 ID。有没有办法使用 React / Node JS 做到这一点?
提前致谢。
对于媒体操作,您可以使用 ffmpeg library. In the following demo i used 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}`);
})
我正在建立一个在线课程网站。为了阻止付费课程的视频录制,我想在视频上添加一个动态水印,它会随机改变屏幕上的位置。水印将显示登录用户的电子邮件 ID。有没有办法使用 React / Node JS 做到这一点?
提前致谢。
对于媒体操作,您可以使用 ffmpeg library. In the following demo i used 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}`);
})