ffmpeg - 在 fluent-ffmpeg 中,如何包含多个视频过滤器?
问题描述
下面的代码添加了水印,但忽略了缩放。如何在 fluent-ffmpeg 中包含多个视频过滤器?
ffmpeg(inputFileName)
.inputOptions(['-safe 0', '-f concat'])
.outputOptions([
'-filter:v scale=w=1280:h=720',
"-filter:v drawtext=text='watermarkText':x=W-150:y=H-th-10:fontsize=32:fontcolor=white",
'-crf 10'
])
.save('output.mp4');
我在内部也尝试了这些格式.outputOptions([])
,但无济于事:
'-filter:v <param1>, <param2>'
'-filter:v <param1>; <param2>'
'-filter:v', '<param1>', '<param2>'
解决方案
我想您可以使用逗号分隔两个过滤器:
ffmpeg(inputFileName)
.inputOptions(['-safe 0', '-f concat'])
.outputOptions(["-filter:v scale=w=1280:h=720,drawtext=text='watermarkText':x=W-150:y=H-th-10:fontsize=32:fontcolor=white",
'-crf 10'
])
.save('output.mp4');
我不能用 测试它fluent-ffmpeg
,但这是ffmpeg
命令行语法。
使用命令行测试:
生成合成输入视频文件:
ffmpeg -y -f lavfi -i testsrc=duration=10:size=192x108:rate=1 -c:v rawvideo -pix_fmt bgr24 input.avi
缩放到 1280x720 并绘制文本(使用大的绿色文本):
ffmpeg -y -i input.avi -filter:v scale=w=1280:h=720,drawtext=text='watermarkText':x=W/2:y=H-th-10:fontsize=72:fontcolor=green -vcodec libx264 -crf 10 output.mp4
我不确定'-f concat'
参数的正确性,您也错过了视频编解码器规范。
推荐阅读
- excel - Excel 会计在草稿帐户上的存款和取款表
- sql - CakePHP 2.10 中的 SQL 子表达式
- python - Pandas:.tolist() 提供浮点数
- inheritance - 实现对另一个接口的依赖
- python - 如何检查异常中的消息
- reactjs - 如何解决自定义组件的 Material UI 中的“muiName”?
- javascript - 如何在asp.net c#中使用jquery验证更改多选板颜色
- javascript - 您将如何访问或覆盖派生类声明中基类的私有属性?
- node.js - 如何使用 node js 和 PostgreSQL 实现 Session 认证
- c++ - 如何将 COM 指针传递给一组等待后台线程中的每个线程