@bitrate/converter
CLI и Node.js обёртка над FFmpeg для конвертации аудио и изображений.
Требования
FFmpeg поставляется через ffmpeg-static — системная установка не нужна.
CLI
Конвертация аудио в OGG Opus
# Базовая конвертация (128k CBR)
media-converter audio -i song.mp3
# Кастомный битрейт
media-converter audio -i song.mp3 -b 192k
# VBR (Variable Bitrate)
media-converter audio -i song.mp3 --vbr
# Указать выходной файл
media-converter audio -i song.mp3 -o song.opus
Извлечение аудио из видео в AAC
media-converter video-to-audio -i video.mp4
media-converter video-to-audio -i video.mp4 -b 256k
Конвертация изображений в WebP
media-converter image -i cover.jpg
media-converter image -i cover.png -q 85 # качество 0-100
Программный API
import { convertAudio, convertImage } from '@bitrate/converter'
// Аудио
await convertAudio({
inputPath: './song.mp3',
outputPath: './song.opus',
bitrate: '192k',
format: 'opus',
})
// Изображение
await convertImage({
inputPath: './cover.jpg',
outputPath: './cover.webp',
quality: 85,
})
Использование в API
AudioProcessor (BullMQ воркер) использует @bitrate/converter для создания progressive
Opus fallback и единого multi-bitrate HLS-пакета AAC/fMP4. HLS-варианты кодируются совместно,
чтобы границы сегментов совпадали при адаптивном переключении.
Подробнее: Audio Processing Pipeline