Node.js ffmpwg在ChildProcess中失败,代码为1

Node.js ffmpwg在ChildProcess中失败,代码为1,node.js,firebase,ffmpeg,google-cloud-functions,child-process,Node.js,Firebase,Ffmpeg,Google Cloud Functions,Child Process,我正在尝试使用firebase函数和ffmpeg在firebase存储中的视频上添加水印, 但无论我尝试什么,它总是会出现相同的错误 return spawn('ffmpeg', ['-i', tmpFilePath, '-vf',`drawtext="text='hello World'`, tmpFilePath]); 我也试过这个: return spawn('ffmpeg', ['-i', tmpFilePath, '-i', tmpLogoPath, '-

我正在尝试使用firebase函数和ffmpeg在firebase存储中的视频上添加水印, 但无论我尝试什么,它总是会出现相同的错误

 return spawn('ffmpeg', ['-i', tmpFilePath, '-vf',`drawtext="text='hello World'`, tmpFilePath]);
我也试过这个:

        return spawn('ffmpeg', ['-i', tmpFilePath, '-i', tmpLogoPath, '-filter_complex', '"overlay=10:10"', tmpFilePath]);
控制台日志:

ChildProcessError: `ffmpeg -i /tmp/anything -vf drawtext="text='Stack Overflow' /tmp/anything` failed with code 1
at ChildProcess.<anonymous> (/workspace/node_modules/child-process-promise/lib/index.js:132:23)
at ChildProcess.emit (events.js:315:20)
at ChildProcess.EventEmitter.emit (domain.js:506:15)
at maybeClose (internal/child_process.js:1021:16)
at Socket.<anonymous> (internal/child_process.js:443:11)
at Socket.emit (events.js:315:20)
at Socket.EventEmitter.emit (domain.js:506:15)
at Pipe.<anonymous> (net.js:674:12)
at Pipe.callbackTrampoline (internal/async_hooks.js:120:14)
ChildProcessError:`ffmpeg-i/tmp/anything-vf drawtext=“text='Stack Overflow'/tmp/anything`失败,代码为1
在ChildProcess上。(/workspace/node_modules/child process promise/lib/index.js:132:23)
在ChildProcess.emit(events.js:315:20)
在ChildProcess.EventEmitter.emit(domain.js:506:15)
在maybeClose(内部/子进程js:1021:16)
插座处。(内部/子进程js:443:11)
在Socket.emit(events.js:315:20)
位于Socket.EventEmitter.emit(domain.js:506:15)
在管道上。(net.js:674:12)
at Pipe.callbackTrampoline(internal/async_hooks.js:120:14)

经过多次尝试,我发现如果我通过一个变量传递“overlay=10:10”,这将起作用,而不是直接传递,这段代码对我有效

var str = "overlay=10:10"
return spawn('ffmpeg', ['-i', tmpFilePath, '-i', tmpLogoPath, '-filter_complex', str, tmpFilePath]);

经过多次尝试后,我发现如果我通过一个变量传递“overlay=10:10”,这将有效,而不是直接传递,这段代码对我有效

var str = "overlay=10:10"
return spawn('ffmpeg', ['-i', tmpFilePath, '-i', tmpLogoPath, '-filter_complex', str, tmpFilePath]);

请删除覆盖周围的双引号,然后按如下方式重试:

returnspawn('ffmpeg'、['-i',tmpFilePath'-i',tmplogpath'-filter_complex',overlay=10:10',tmpFilePath]);

删除覆盖周围的双引号,然后像这样重试:

returnspawn('ffmpeg'、['-i',tmpFilePath'-i',tmplogpath'-filter_complex',overlay=10:10',tmpFilePath]);

您的第一个命令中有一个未终止的引号。请在终端中运行这些命令并检查它们是否有效。然后将它们移动到node.js代码中,注意细节。@HernánAlarcón谢谢,但我厌倦了终端上的第二个命令,它工作得很好,但在node上执行时会出现相同的错误,我想这是error仅当添加“filter_complex overlay”时,您的第一个命令中有一个未终止的引号。在终端中运行这些命令并检查它们是否有效。然后将它们移动到node.js代码中,注意细节。@HernánAlarcón谢谢,但我厌倦了终端上的第二个命令,它工作正常,但在节点上执行时,它给出了同样的错误,我猜只有在添加“filter_complex overlay”供将来参考时才会出现此错误。您可能会发现此文档对将来的参考很有帮助。您可能会发现此文档对将来的参考很有帮助