Class: Producer
Coordinates video and audio encoding and publishing inside the pipeline worker.
Use addVideo() and addAudio() to configure tracks, then call start() to spawn the worker
and begin encoding. Access the running pipeline through controller() to open a connection.
Example
const producer = new Producer()
producer.addVideo(videoTrack, videoConfig)
producer.addAudio(audioTrack, audioConfig)
await producer.start(channelId)
const connection = producer.controller().connect({ url, authToken })
Methods
addAudio()
addAudio(
track,config):this
Add an audio track for encoding.
Parameters
track
MediaStreamTrack
config
Returns
this
addTrack()
addTrack(
input):this
Add an audio or video track for encoding.
Parameters
input
Returns
this
addVideo()
addVideo(
track,config):this
Add a video track for encoding.
Parameters
track
MediaStreamTrack
config
Returns
this
controller()
controller():
PipelineController
The running pipeline controller. Throws before start().
Returns
PipelineController
controllerIfStarted()
controllerIfStarted():
PipelineController|undefined
The pipeline controller if started, otherwise undefined.
Returns
PipelineController | undefined
hasClosed()
hasClosed():
boolean
True once the producer has terminally settled (pipeline/worker death or close()). Synchronous.
Returns
boolean
start()
start(
channelId):Promise<void>
Spawn the pipeline worker and begin encoding every added track.
Parameters
channelId
string
Returns
Promise<void>