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(); }
Estoy usando esta función para crear una superposición del video de la cámara web sobre el video de la grabadora de pantalla. He definido que la ruta del archivo de entrada sea la carpeta temporal en Windows, ya que estoy guardando la grabación allí temporalmente. La siguiente imagen es la salida deseada.
El filtro de overlay
solo especifica dónde colocar el video superpuesto y no su tamaño. Por lo tanto, si no está en la dimensión deseada, debe escalarlo previamente de forma explícita. Probar
"[0:v]scale=1920:-4,pad=0:1080:0:(oh-ih)/2[vid]; [1:v]scale=w:h[ovly]; [vid][ovly]overlay=x:y"
Sustituya w
, h
, x
e y
con el ancho, la altura y la ubicación superior izquierda (x,y) deseadas del video superpuesto.