首页 > 系统相关 >【nodejs】Windows环境 ffmpeg添加水印

【nodejs】Windows环境 ffmpeg添加水印

时间:2023-10-28 19:55:35浏览次数:27  
标签:fontFile ffmpeg nodejs Windows 水印 Desktop font 670493228

一、Windows下面获取到的字体路径需要做处理,否则无法执行

  • 路径中: 改为 \:
  • 路径中: \ 改为 /
  • 不要使用中文的名称

 

原路径:

D:\Users\670493228\Desktop\public\font\default.ttf

  

使用水印命令(-loglevel debug 可以看到执行日志,方便定位问题)

ffmpeg -i 1.mp4 -vf "drawtext=fontfile='D\:/Users/670493228/Desktop/public/font/default.ttf':text='TEXT':fontcolor=white:fontsize=24:box=1:[email protected]:boxborderw=5:x=15:y=10" -codec:a copy output.mp4  -loglevel debug

 

二、nodejs使用flutter-ffmpeg打水印,直接上代码

  /**
     * Window报错兼容
     * D:\Users\670493228\Desktop\public\font 转为 'D\:/Users/670493228/Desktop/public/font'
     */
    fontFile = fontFile.replaceAll('\\', '/');
    fontFile = fontFile.replaceAll(':', '\\:');
    fontFile = "'" + fontFile + "'";


  return new Promise((reslove, reject) => {
      /**
       * .complexFilter 中参数为文字水印配置
       * .outputOptions 配置了音频设置为视频背景音乐
       */
      ffmpeg(fileName)
        .input(mp3File)
        .complexFilter([
          {
            filter: 'drawtext',
            options: {
              text: "water text",
              x: '100',
              y: '300',
              fontsize: 60,
              fontcolor: 'white',
              fontfile: fontFile,
              box:1,
              boxcolor: 'yellow'
            },
            inputs: '0:v',
          },
        ])
        .outputOptions([
          '-map 0:v:0', 
          '-map 1:a:0'])
        .saveToFile(outFile)
        .on("progress", (progress) => {
          console.log('视频水印,进度: ' + progress.percent + '% done');
        })
        .on("end", () => {
          console.log("视频水印完成"); 
          reslove();
        });
    });

 

标签:fontFile,ffmpeg,nodejs,Windows,水印,Desktop,font,670493228
From: https://www.cnblogs.com/lanse1993/p/17794523.html

相关文章

  • 【nodejs】批量获取文件的时长
    因为ffmpeg.ffprobe是异步的,需要使用promise同步,然后Promise.all将所有的Promise执行结果处理后返回/***获取文件列表时长(同步获取返回)*@param{Object}fileList*/asyncgetFileDuration(fileList){//初始化letpromises=fileList.map(fil......
  • 利用windows自带的winsat工具获得硬盘顺序读写速度
    源代码如下:packagetest;importjava.io.BufferedReader;importjava.io.IOException;importjava.io.InputStream;importjava.io.InputStreamReader;importjava.nio.charset.StandardCharsets;importjava.util.regex.Matcher;importjava.util.regex.Pattern;public......
  • Windows编译PDF库:libharu
    libharu编译需要libpng,libpng依赖zlib,所以需要下载这三个库libharu下载:http://libharu.org/libpng下载:http://www.libpng.org/pub/png/libpng.htmlzlib下载:https://www.zlib.net/ *:libpng我下载的版本是V1.6.40,对应的zlib版本需要在V1.0.4以上,我用的zlibV1.3参考链接:ht......
  • Windows 常用快捷键
    tab空两格ctrl+c复制ctrl+v粘贴ctrl+a全选ctrl+x剪切ctrl+z撤销ctrl+y反撤销短暂性删除:选中+delet长久性删除:选中+shift+deletwindoes+r运行windows+e我的电脑任务管理器:①桌面最下方点鼠标右键②ctrl+shift+escwindow+tab切换应用程序 ......
  • Error: EPERM: operation not permitted, mkdir 'C:\Program Files\nodejs\cache\
    使用下面命令创建react项目爆出的错误npxcreate-react-appreact-basic显示nodejs里面的文件权限不够,需要进行文件夹的权限更改,改为完全控制就可以了。 ......
  • Windows 文件夹权限不足——夺权
    由于Windows有着大家都不怎么使用的多用户权限管理机制,有的时候在一些特殊文件夹无法使用默认权限进行操作,本文以安装在C:\ProgramData的Miniconda3为例。主要有两种方法:将文件夹所有者改为自己给自己添加完全控制权限TIPS操作文件夹时,如果文件夹中间有特殊字符或空格......
  • 如何使用nodejs对接【企查查开放平台API服务】
    下面分享一下如何对接企查查API接口相关内容。API服务对接流程:1、登录|注册:先打开企查查开放平台网站(https://openapi.qcc.com),菜单栏中右上角【登录|注册】;2.打开API服务列表通过顶部导航菜单【API】,可以查看所有服务列表,里面包含了很多API接口,此处不具体介绍,有兴趣的可以自己......
  • 实用小脚本——Windows系统使用dos命令删除文件
    @echooff&color0aset/pff=输入文件名:title查找%ff%echo.&set/p=正在查找<nulfor%%iin(cdefgh)do(ifexist%%i:\ (cd/d%%i:\set/p=%%i:<nulfor/f "delims="%%jin('dir/b/a-d/s"%ff%"2^>nul')do(echo.&......
  • 在Windows和Linux终端下使用代理的方式
    背景在快乐上网的时候,网页会经过代理,但是有些在终端运行的程序不一定会经过代理,比如用gitclonegithub仓库的时候,或者curl下载githubrelease的时候,如果不走代理,下载可能会很慢很慢。Windows在执行gitclone前,在终端执行sethttps_proxy=localhost:7890sethttp_proxy=loca......
  • Azure DevOps 发布.Net项目到Windows IIS站点之pubxml
    通过VS中我们配置的pubxml进行发布trigger:-masterpool:vmImage:'windows-2022'variables:-group:GeexPublish-name:my-user-variablevalue:$[variables.UserName]#usesruntimeexpression-name:my-passed-variablevalue:$[variables.PassWord]......