如何定义叠加视频位置和大小ffmpeg electronJS?
how to define overlay video position and size ffmpeg electronJS?
function overlayMaker(){
ffmpeg()
.on('end', onEnd )
.on('progress', onProgress)
.on('error', onError)
.input(`${QuizicorderDir}/screen.webm`)
.input( `${QuizicorderDir}/webcam.webm`)
.complexFilter([
"[0:V]scale=1920:-4,pad=0:1080:0:(oh-ih)/2[vid];[vid][1:V]overlay"
])
.outputFps(30)
.output('./output-video.mp4')
.run();
}
我正在使用此功能在屏幕录像机视频之上创建网络摄像头视频的叠加层。我已将输入文件路径定义为 windows 中的临时文件夹,因为我正在那里临时保存录音。
下图是想要的输出
我得到的输出如下
overlay
过滤器仅指定放置叠加视频的位置,而不指定其大小。因此,如果它不在所需的维度中,则需要明确地 pre-scale 它。尝试
"[0:v]scale=1920:-4,pad=0:1080:0:(oh-ih)/2[vid];
[1:v]scale=w:h[ovly];
[vid][ovly]overlay=x:y"
用所需的宽度、高度和 (x,y) upper-left 位置替换 w
、h
、x
和 y
叠加视频。
function overlayMaker(){
ffmpeg()
.on('end', onEnd )
.on('progress', onProgress)
.on('error', onError)
.input(`${QuizicorderDir}/screen.webm`)
.input( `${QuizicorderDir}/webcam.webm`)
.complexFilter([
"[0:V]scale=1920:-4,pad=0:1080:0:(oh-ih)/2[vid];[vid][1:V]overlay"
])
.outputFps(30)
.output('./output-video.mp4')
.run();
}
我正在使用此功能在屏幕录像机视频之上创建网络摄像头视频的叠加层。我已将输入文件路径定义为 windows 中的临时文件夹,因为我正在那里临时保存录音。
下图是想要的输出
我得到的输出如下
overlay
过滤器仅指定放置叠加视频的位置,而不指定其大小。因此,如果它不在所需的维度中,则需要明确地 pre-scale 它。尝试
"[0:v]scale=1920:-4,pad=0:1080:0:(oh-ih)/2[vid];
[1:v]scale=w:h[ovly];
[vid][ovly]overlay=x:y"
用所需的宽度、高度和 (x,y) upper-left 位置替换 w
、h
、x
和 y
叠加视频。