Задать вопрос

Яндекс cloud functions + ffmpeg?

накидал чутка кода для yandex cloud functions

const ffp = require('@ffmpeg-installer/ffmpeg');
const ffmpeg = require('fluent-ffmpeg');
ffmpeg.setFfmpegPath(ffp.path);

module.exports.handler = async function (event, context) {

    try {
        const inputUrl = 'https://storage.yandexcloud.net//24f2622c-ca2d-4d3f-9c6a-bd275bfce063/c2a38ad3985b2a4ecc589c900d1a5356.mp4';

        const watermarkPath = 'https://storage.yandexcloud.net/content/244f1559-eb73-5fe6-ab28-1d738fd9d513.blob';
        const outputVideoPath = './videos/video1.mp4';

        await new Promise((resolve, reject) => {
            ffmpeg()
                .input(inputUrl)
                .input(watermarkPath)
                .complexFilter([
                    '[0:v]scale=iw/2:ih/2 [main]; [1:v]scale=100:50 [watermark]; [main][watermark]overlay=W-w-10:H-h-10'
                ])
                .toFormat('mp4')
                .on('end', () => {
                    console.log('Готово! Водяной знак добавлен.');
                    resolve();
                })
                .on('error', (err) => {
                    console.error('Ошибка:', err);
                    reject(err);
                })
                .save(outputVideoPath);
        });
    } catch (err) {
        console.log(err);
        console.log(err.stack);
        
        return {
            message: 'Error: ' + err.msg,
            error: err.stack
        };
    }
};

если убираю эту строчку

const ffmpeg = require('fluent-ffmpeg');
ругается что не может найти ffmpeg

если оставляю, то

{
    "errorMessage": "Unable to import converter.handler module. Error: undefined",
    "errorType": "Error",
    "stackTrace": [
        {
            "function": "de.<anonymous>",
            "file": "/function/runtime/bootstrap",
            "line": 177,
            "column": 91
        },
        {
            "function": "Generator.throw",
            "file": null,
            "line": null,
            "column": null
        },
        {
            "function": "a",
            "file": "/function/runtime/bootstrap",
            "line": 158,
            "column": 184
        }
    ]
}

на локалке все отрабатывает(
  • Вопрос задан
  • 177 просмотров
Подписаться 2 Простой Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы