Używam biblioteki fluent-ffmpeg z node.js do transkodowania filmów oryginalnie w formacie flash do formatu mp3 z wieloma rozdzielczościach, 1080p itd. Po zakończeniu transkodowania Chciałbym przenieść transkodowany film wideo do kubełka s3.Przesyłanie wyników FFmpeg bezpośrednio do Amazon S3
Wyciągam oryginalny plik .flv z źródłowego wiadra s3 i przesyłam strumień do funkcji konstruktora ffmpeg. Problem jest po zakończeniu transkodowania, w jaki sposób otrzymam strumień danych mp4 do wysłania do s3.
Oto kod mam tak daleko:
var params = {
Bucket: process.env.SOURCE_BUCKET,
Key: fileName
};
s3.getObject(params, function(err, data) {
if (err) console.log(err, err.stack); // an error occurred
var format = ffmpeg(data)
.size('854x480')
.videoCodec('libx264')
.format('flv')
.toFormat('mp4');
.on('end', function() {
//Ideally, I would like to do the uploading here
var params = {
Body: //{This is my confusion, how do I get the stream to add here?},
Bucket: process.env.TRANSCODED_BUCKET,
Key: fileName
};
s3.putObject(params, function (err, data) {
});
})
.on('error', function (err) {
console.log('an error happened: ' + err.message);
});
});
Na powyższym kodzie, gdzie mogę uzyskać transkodowanie strumienia dodać do „ciała” właściwości obiektu params?
Aktualizacja:
Oto przegląd tego, co próbuję zrobić:
var outputStream: MemoryStream = new MemoryStream();
var proc = ffmpeg(currentStream)
.size('1920x1080')
.videoCodec('libx264')
.format('avi')
.toFormat('mp4')
.output(outputStream)
// setup event handlers
.on('end', function() {
uploadFile(outputStream, "").then(function(){
resolve();
})
})
.on('error', function (err) {
console.log('an error happened: ' + err.message);
});
Chciałbym uniknąć kopiowania pliku w lokalnym systemie plików z S3, raczej wolałbym przetwarzać plik w pamięci i prześlij go z powrotem do s3 po zakończeniu. Czy fluent-ffmpeg zezwoliłoby na ten scenariusz?
Czy istnieje sposób tymczasowego zapisu w buforze pamięci, a następnie wysłania bufora w parametrze Body? – user1790300
Czy istnieje sposób na uniknięcie konieczności tymczasowego zapisywania pliku w systemie plików? – user1790300