UNPKG

express-bitrate-streamer

Version:

Express-based HLS multi-bitrate streaming backend + tiny frontend player.

32 lines (26 loc) 1.18 kB
#!/usr/bin/env node import { Command } from 'commander'; import path from 'node:path'; import createFFmpegIngest from '../src/server/ffmpeg.js'; import createCleaner from '../src/server/cleaner.js'; const program = new Command(); program .name('express-bitrate-streamer') .description('Ingest a video/audio source and generate HLS multi-bitrate outputs') .version('1.0.0'); program.command('ingest') .argument('<input>', 'input file/url/rtmp') .option('-s, --stream <id>', 'stream id') .option('--live', 'treat as live source', false) .option('--out <dir>', 'output root (default: streams-data)') .action(async (input, opts) => { const ff = createFFmpegIngest({ outputRoot: opts.out || 'streams-data' }); const streamId = opts.stream || path.basename(input, path.extname(input)); await ff.ingest(input, streamId, { live: !!opts.live }); const cleaner = createCleaner({ outputRoot: opts.out || 'streams-data' }); cleaner.start(streamId); console.log(`✅ Ingested to /streams/${streamId}/master.m3u8`); }); program.parse(process.argv);