English | 中文
flv-muxer.js
is a pure TypeScript FLV
multiplexer that enables native FLV
streaming and recording on the Web platform.
- Transmit
FLV
streams to a media server viaWebTransport
orWebSocket
for web-based live streaming - Overcome the limitation of the
MediaRecorder
API, which does not supportFLV
format recording
npm install flv-muxer
<script src="https://cdn.jsdelivr.net/npm/flv-muxer@latest/dist/flv-muxer.iife.js"></script>
FlvMuxer
is a class for creating an FLV
multiplexer instance, providing stream processing capabilities.
const muxer = new FlvMuxer(
writable: WritableStream,
options: {
mode: "record" | "live";
chunked: boolean; // Whether to transmit in chunks
}
);
-
configureAudio()
: Configures the audio encoderflvMuxer.configureAudio({ encoderConfig: AudioEncoderConfig; }); // Example flvMuxer.configureAudio({ encoderConfig: { codec: "mp4a.40.29", sampleRate: 44100, numberOfChannels: 2, }, });
Audio encoder configuration: AudioEncoderConfig.
-
configureVideo()
: Configures the video encodermuxer.configureVideo({ encoderConfig: VideoEncoderConfig; keyframeInterval: number, // Keyframe interval in frames }); // Example flvMuxer.configureVideo({ encoderConfig: { codec: "avc1.640034", width: 2560, height: 1440, framerate: 30, }, keyframeInterval: 90, });
video encoder configuration: VideoEncoderConfig.
-
addRawChunk
: Add raw frame data.flvMuxer.addRawChunk("video" | "audio", chunk: VideoFrame | AudioData); // Example flvMuxer.addRawChunk("video", chunk);
-
start()
: Starts the multiplexer to receive and process data -
pause()
: Pauses the multiplexer, temporarily stopping data processing -
resume()
: Resumes the multiplexer, continuing data processing -
stop()
: Stops the multiplexer, terminating data processing
state
: Returns the current state of the multiplexer. Possible values are"recording"
,"paused"
, or"inactive"
.