ich hier mit dieser Antwort beginnen würde: https://superuser.com/questions/833232/create-video-with-5-images-with-fadein-out-effect-in-ffmpeg/834035#834035
Insbesondere die ffmpeg Mischung Filter Beispiel:
ffmpeg \
-loop 1 -t 1 -i 001.png \
-loop 1 -t 1 -i 002.png \
-loop 1 -t 1 -i 003.png \
-loop 1 -t 1 -i 004.png \
-loop 1 -t 1 -i 005.png \
-filter_complex \
"[1:v][0:v]blend=all_expr='A*(if(gte(T,0.5),1,T/0.5))+B*(1-(if(gte(T,0.5),1,T/0.5)))'[b1v]; \
[2:v][1:v]blend=all_expr='A*(if(gte(T,0.5),1,T/0.5))+B*(1-(if(gte(T,0.5),1,T/0.5)))'[b2v]; \
[3:v][2:v]blend=all_expr='A*(if(gte(T,0.5),1,T/0.5))+B*(1-(if(gte(T,0.5),1,T/0.5)))'[b3v]; \
[4:v][3:v]blend=all_expr='A*(if(gte(T,0.5),1,T/0.5))+B*(1-(if(gte(T,0.5),1,T/0.5)))'[b4v]; \
[0:v][b1v][1:v][b2v][2:v][b3v][3:v][b4v][4:v]concat=n=9:v=1:a=0,format=yuv420p[v]" -map "[v]" out.mp4
Dies wird Ihnen eine Ausgabe mp4 geben, wobei jedes Bild für eine Dauer zweitens mit einer Überblendung von 0,5 Sekunden zwischen den Bildern.
-t 1
, dass die Dauer für das Bild ist
T,0.5
Ist Ihre Blendzeit
Wenn Sie schauen, Knoten zu verwenden, würde ich die fließend-ffmpeg Bibliothek empfehlen: https://github.com/fluent-ffmpeg/node-fluent-ffmpeg
Ich mag Knoten als Lösung, weil Sie eine einzige Three Concurrent Event-Schleife verwenden können, die Aufträge an Ihr ffmpeg-Modul übergeben und ffmpeg aufnehmen zu lassen alle verfügbaren Kerne auf Ihrer Maschine.
Sie könnten eine Funktion haben, die etwa wie folgt aussieht: So
function runFfmpeg({inputParams, input, outputParams, output}) {
return new Promise((resolve, reject) => {
const ffmpegCommand = new ffmpeg()
ffmpegCommand.input(input)
.inputOptions(inputParams)
.on('start', (command) => {
// log start
})
.on('progress', (progress) => {
// log progress
})
.on('end',() => {
resolve('SUCCESS!')
})
.on('error', (error) => {
reject(error)
})
.outputOptions(outputParams)
.output(output)
.run()
})
}
dass gerade hüllt Ihren ffmpeg Prozesse in einem Versprechen, und es wird beheben nach Beendigung und lehnen ein Fehler auftrat. Sie würden diese Funktion Ihren Kommandozeilen-Eingabeparametern, Eingabedateien, Ausgabeparametern und Ausgabedateien übergeben ... zumindest so etwas. Möglicherweise müssen Sie das für mehrere Eingaben anpassen, aber ihr GitHub ist sehr gut dokumentiert!
Was genau ist der "Facebook Videos Prozess"? – lux