javascript - ffmpeg 命令行代码转换为 fluent-ffmpeg
问题描述
我无法理解 fluent-ffmpeg。
我正在尝试使用 Fluent-ffmpeg 制作屏幕录像机,但找不到正确的代码。输出应包括屏幕、网络摄像头和麦克风。
ffmpeg 代码:
ffmpeg -ss 00:00:3 -thread_queue_size 4096 -f avfoundation -framerate 25 -i 1 -thread_queue_size 4096 -f avfoundation -framerate 25 -video_size 320x240 -i 0:0 -c:v libx264 -crf 18 -preset ultrafast -filter_complex 'overlay=main_w-overlay_w-10:main_h-overlay_h-10' -r 25 video.mp4
我的 fluent-ffmpeg 代码:(我知道坏代码):
command = ffmpeg("1")
.videoCodec('libx264')
.inputFPS(25)
.size("1280x800")
.inputFormat('avfoundation')
.input("0")
.inputFormat('avfoundation')
.inputFPS(25)
.size("320x240")
.addOptions(["-filter_complex", "overlay=main_w-overlay_w-10:main_h-overlay_h-10 "])
.addOption([ "-preset" , "ultrafast" ])
.save(`/Users/macbook/Pictures${new Date().toLocaleString().split('-').join('').split(':').join('')}.mp4`)
我试过了,但这也没有用:
//.size("320x240")
.complexFilter(['scale=320:240[rescaled]',
{
filter: 'overlay', options: { x: 'main_w-overlay_w-10', y: 'main_h-overlay_h-10' },
inputs: ['[0:v]','[1:v]'], outputs: '[a1][a2]'
}
],'[a1][a2]')
如果你告诉我正确的方法,我会很高兴。如果您还添加麦克风,我会更高兴。太感谢了
解决方案
这不是我的问题的解决方案,但它解决了我的问题。我使用 spawn 而不是 ffmpeg 解决了它。
我的代码:
var args = [
'-ss', '00:00:3',
'-thread_queue_size', '4096' ,'-f' , 'avfoundation', '-framerate', '25' ,'-i' ,'1',
'-thread_queue_size', '4096' ,'-f' , 'avfoundation', '-framerate', '25' ,'-video_size', '320x240' ,'-i' ,'0:0' ,
'-c:v', 'libx264', '-crf', '2', '-preset', 'ultrafast',
'-filter_complex', 'overlay=main_w-overlay_w-10:main_h-overlay_h-10' ,
'-r', '25', 'Dektop record'+Date().toString()+'.mp4'
];
command = spawn(ffmpegPath, args);
推荐阅读
- java - 如何将数据从属性对象保存到文件 + 如何将属性格式的文件加载到另一个方法中的属性对象?
- mysql - 跟踪存在
- robotframework - 如何使用机器人框架处理边缘浏览器的“您的连接不是私有的”
- javascript - 错误地将日期时间转换为角度与矩库中的角度
- javascript - 机器人是否可以为消息随机化 2 种颜色?
- git - 是否可以在 git config 中设置多个用户电子邮件?
- c++ - 如何将回调传递给 C++ 的 EM_ASM?
- python-3.x - 使用两个不同的脚本在串口中读写
- .net - Angular 路由器发送 GET 请求而不是加载组件
- java - 字符串格式在邮件发送中不起作用