@Citramone
Надо бы что-то написать

Как реализовать правильную конвертация аудиофайлов fluent-ffmpeg?

у меня есть функция
async function convertTo(inputPath, outputPath) {
    return await new Promise((resolve, reject) => {
        const format = outputPath.substring(outputPath.lastIndexOf('.') + 1);
        ffmpeg(inputPath)
            .audioCodec(libopus)
            .toFormat(format)
            .on('error', (err) => {
                reject(err);
            })
            .on('end', () => {
                console.log('Успешная конвертация');
                resolve();
            })
            .save(outputPath)
    })
}

как я понимаю для конвертации в ogg нужно использовать кодек libopus а как сделать так чтоб можно конвертировать любой файл по нужному кодеку.
Спасибо.
  • Вопрос задан
  • 84 просмотра
Пригласить эксперта
Ответы на вопрос 1
Enokin
@Enokin
Full-stack разработчик
Нужно будет самостоятельно указать необходимый кодек, исходя из формата, в который вы хотите конвертировать аудиофайл

const codecs = {
    'ogg': 'libopus',
    'mp3': 'libmp3lame',
    'flac': 'flac',
    'aac': 'aac',
    // другие форматы и кодеки...
};

async function convertTo(inputPath, outputPath) {
    return await new Promise((resolve, reject) => {
        const format = outputPath.substring(outputPath.lastIndexOf('.') + 1);
        const codec = codecs[format];
        
        if (!codec) {
            reject(new Error(`Кодек для формата "${format}" не найден`));
            return;
        }

        ffmpeg(inputPath)
            .audioCodec(codec)
            .toFormat(format)
            .on('error', (err) => {
                reject(err);
            })
            .on('end', () => {
                console.log('Успешная конвертация');
                resolve();
            })
            .save(outputPath)
    })
}
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы
23 нояб. 2024, в 01:31
1000 руб./за проект
23 нояб. 2024, в 00:16
2000 руб./за проект
22 нояб. 2024, в 23:55
3000 руб./за проект