2016-07-06 25 views

Antwort

0

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; totalwidthtotalheight und die Endabmessungen des Ausgangsvideos sind, xy 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