nodejs ffmpeg接收视频缓冲区,裁剪并返回缓冲区

时间:2020-04-23 14:45:14

标签: node.js ffmpeg stream

我有一个服务器,想要接收上传的视频,然后裁剪并完成将其上传到AWS s3

所以首先我要从multer接收缓冲区,然后将其转换为流并将其传递给ffmpeg(找不到如何直接将缓冲区传递给ffmpeg),最后我将缓冲区返回给然后上传。

const ffmpeg = require('fluent-ffmpeg');
const streams = require('memory-streams');

    cropVideo(buffer, width, height, x, y) {

        const stream = new streams.WritableStream();

        return new Promise((resolve, reject) => {
            ffmpeg(new streams.ReadableStream(buffer))
                .videoFilters(`crop=${width}:${height}:${x}:${y}`)
                .format('mp4')
                .on('progress', function (progress) {
                    console.log('Processing: ' + progress.percent + '% done');
                })
                .on('stderr', function(stderrLine) {
                    console.log('Stderr output: ' + stderrLine);
                })
                .on('error', err => console.log(err))
                .on('end', () => resolve(stream.toBuffer()))
                .pipe(stream)
        })
    }

但这不能按计划进行:D

我唯一的输出来自.on('stderr')

Stderr output: ffmpeg version 3.4 Copyright (c) 2000-2017 the FFmpeg developers
Stderr output:   built with Apple LLVM version 9.0.0 (clang-900.0.37)
Stderr output:   configuration: --prefix=/usr/local/Cellar/ffmpeg/3.4 --enable-shared --enable-pthreads --enable-version3 --enable-hardcoded-tables --enable-avresample --cc=clang --host-cflags= --host-ldflags= --enable-gpl --enable-libmp3lame --enable-libx264 --enable-libxvid --enable-opencl --enable-videotoolbox --disable-lzma
Stderr output:   libavutil      55. 78.100 / 55. 78.100
Stderr output:   libavcodec     57.107.100 / 57.107.100
Stderr output:   libavformat    57. 83.100 / 57. 83.100
Stderr output:   libavdevice    57. 10.100 / 57. 10.100
Stderr output:   libavfilter     6.107.100 /  6.107.100
Stderr output:   libavresample   3.  7.  0 /  3.  7.  0
Stderr output:   libswscale      4.  8.100 /  4.  8.100
Stderr output:   libswresample   2.  9.100 /  2.  9.100
Stderr output:   libpostproc    54.  7.100 / 54.  7.100

我不太了解错误

0 个答案:

没有答案