node.js - 添加动态水印,在视频 React/Node 上随机改变位置

标签 node.js reactjs video-watermarking

我正在建立一个在线类(class)网站。为了阻止付费类(class)的视频录制,我想在视频上添加动态水印,该水印会随机改变屏幕上的位置。水印将显示登录用户的电子邮件 ID。有没有办法使用 React/Node JS 来做到这一点?

提前致谢。

最佳答案

对于媒体操作,您可以使用 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}`);
})

关于node.js - 添加动态水印,在视频 React/Node 上随机改变位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52296234/

相关文章:

unit-testing - 是否有一个模块可以轻松模拟 req/res 对象以对连接样式处理程序进行单元测试?

node.js - Azure Bot Framework - 换行卡片操作和按钮文本

javascript - 具有多个端点的 Node.js 应用程序

reactjs - 如何解析 "ethereum.request cannot find name ' 以太坊'"

android - 如何在android中使用ffmpeg在一个视频中添加多个gif水印

java - 来自java Runtime.exec的ffmpeg水印找不到输出

node.js - 在 npm 测试阶段使用不同的数据库

javascript - 将 redux-persist 与 redux-immutable 一起使用时出错

flutter - 如何使用 Flutter_ffmpeg 在 Flutter 中为视频添加水印

css - React.js 循环图片幻灯片的性能问题