【发布时间】:2018-09-22 15:57:11
【问题描述】:
我正在运行一个 lambda 函数,它接收 mp4 视频,并在右下角的顶部添加 png 图像的水印(带有 10px 边距)。然后它将该图像输出到一个临时位置。 Error code 1 一直失败,但这不是很有帮助。我正在使用代码主目录中指定的ffmpeg 的二进制版本。我知道ffmpeg 设置正确,因为以这种方式在另一个 lambda 函数中使用它,这是有效的。但是添加覆盖失败。这是我的代码的相关部分:
function addWatermark(next) {
var ffmpeg = child_process.spawn("ffmpeg", [
"-i", target, // url to stream from
"-i", watermarkPath,
"-filter_complex" ,"overlay=x=W-w-10:y=H-h-10:format=rgb,format=yuv420p",
"-c:a", "copy",
"pipe:1"
]);
ffmpeg.on("error", function(err) {
console.log(err);
})
ffmpeg.on("close", function(code) {
if (code != 0 ) {
console.log("child process exited with code " + code); // Always exits here.
} else {
console.log("Processing finished !");
}
tmpFile.end();
next(code);
});
tmpFile.on("error", function(err) {
console.log("stream err: ", err);
});
ffmpeg.on("end", function() {
tmpFile.end();
})
ffmpeg.stdout.pipe(tmpFile)
.on("error", function(err){
console.log("error while writing: ",err);
});
}
谁能发现哪里出了问题?
更新
我已设法打印出更多日志,但出现错误:
[NULL @ 0x42923e0] Unable to find a suitable output format for 'pipe:1'
【问题讨论】:
标签: javascript node.js ffmpeg aws-lambda