Sie könnten wahrscheinlich eine Kombination von Filtern verwenden, um zu erhalten, was Sie wollen. Sie zuerst das erste Video auf die gewünschte Größe für das linke rescale: https://ffmpeg.org/ffmpeg-filters.html#scale-1
'scale=width:height'
Dann schwarze Balken gelten die linke Seite Video zu positionieren; totalwidth
totalheight
und die Endabmessungen des Ausgangsvideos sind, x
y
und die Positionen Ihres umskaliert-links Video: https://ffmpeg.org/ffmpeg-filters.html#pad-1
{
filter: 'pad',
options: 'totalwidth:totalheigth:x:y'
}
Schließlich verwendet den komplexen Filter overlay
rechte Seite Video zu platzieren; beachten Sie, dass es zuerst neu skaliert werden sollte: https://ffmpeg.org/ffmpeg-filters.html#overlay-1
{
filter: 'overlay', options: { x: 'x', y: 'y' },
},
Hier ist, was Ihr Code sollte wie folgt aussehen: (basierend auf der schnellen Dokumentation: https://github.com/fluent-ffmpeg/node-fluent-ffmpeg#complexfilterfilters-map-set-complex-filtergraph)
es
ffmpeg('left_video.avi')
.input('right_video.avi')
.complexFilter([
// Rescale input video
'scale=width:height',
// Add black bars to position your left video at x, y position
{
filter: 'pad',
options: 'totalwidth:totalheigth:x:y'
}
// Overlay the second input for right side video
{
filter: 'overlay', options: { x: 'x', y: 'y' },
},
], 'output');
Beachten Sie, dass ich habe nicht getestet , aber es sollte funktionieren