Drop Radio Docs
    Preparing search index...

    Module @drop-radio/ffmpeg

    This library exposes portions of the ffmpeg and ffprobe commandline tool interfaces to be used in operations on the backend.

    This module is intended only for internal use within the drop-radio server codebase. If you are working on a module with the scope:server tag, you may import the library and its functions:

    import { ffprobeFormat, hlsStream } from '@drop-radio/ffmpeg'

    const inputFile = 'path/to/media/file.wav'
    const workingDir = 'stream/output/directory'

    const {
    format: { filename, duration },
    } = ffprobeFormat(inputFile)

    const duration_us = Number.parseInt(duration.replace('.', ''))

    const sub = hlsStream(inputFile, workingDir).subscribe({
    next({ out_time_us }) {
    const percent = ((100 * out_time_us) / duration_us).toFixed(2)
    console.log(`streaming ${filename} ... ${percent}% complete`)
    },
    error(err) {
    console.error(err)
    sub.unsubscribe()
    },
    complete() {
    console.log('done'!)
    },
    })

    Classes

    FFProbeError
    HLSStreamError

    Interfaces

    FFProbeFormat
    FFProbeResult
    HLSStreamFormat
    HLSStreamOptions
    HLSStreamProgress

    Variables

    HLS_STREAM_DEFAULTS

    Functions

    ffprobeFormat
    hlsStream