IVS Real-Time Broadcast SDK

0

I'm using IVS real-time streaming and I would like server-side code (Lambda or EC2) to join a stage as a participant so that it can stream pre-recorded audio, and process individual participant's streams server-side.

Is there a way to do this?

The IVS real-time streaming Web broadcast SDK is browser only and doesn't work in a Node.js environment.

I've read about Server-Side Composition but this appears to mix audio and video from all stage participants and then sends this mixed video to an IVS channel. I'd like to process participant's streams individually server-side. Server-Side Composition also appears to send video to an IVS channel, and my participant streams will be audio only.

https://docs.aws.amazon.com/ivs/latest/RealTimeUserGuide/server-side-composition.html

Matthew
asked 2 months ago93 views
1 Answer
0
  1. Use IVS Channel as a Transport Medium: While the IVS Real-Time Streaming Web broadcast SDK may not be directly usable in a Node.js environment, you can still leverage IVS channels as a transport medium for your server-side processing.

    1. Set Up a Node.js Server: Create a Node.js server that acts as an intermediary between your pre-recorded audio source and the IVS channel. This server will be responsible for: Joining the IVS channel as a participant. Receiving pre-recorded audio and sending it to the IVS channel as if it were a participant's audio stream. Processing individual participant streams as required.

    2. Stream Pre-recorded Audio: Your Node.js server can read pre-recorded audio files and stream them to the IVS channel. This allows you to simulate a participant's audio stream from the server side.

    4)Process Individual Participant Streams: While Server-Side Composition mixes audio and video from all participants, you can still access individual participant streams by subscribing to the IVS channel's low-latency HLS stream. Your Node.js server can consume this HLS stream, extract individual audio streams, and process them individually as needed. You can use libraries such as ffmpeg or GStreamer for audio processing tasks like noise reduction, transcription, or analysis.

  2. Custom Audio Processing: Implement custom logic in your Node.js server to process individual participant audio streams. This could include tasks such as real-time transcription, sentiment analysis, or any other audio processing you require.

6)Integration with IVS Channel:
    Ensure that your Node.js server integrates seamlessly with the IVS channel by handling stream ingestion, participant management, and any other necessary interactions with the IVS service.

By following this approach, you can achieve server-side processing of individual participant streams in an IVS environment, even without direct support for the IVS Real-Time Streaming Web broadcast SDK in Node.js. This allows you to leverage the capabilities of IVS while still having full control over audio processing and other server-side functionalities.

profile picture
answered 2 months ago

You are not logged in. Log in to post an answer.

A good answer clearly answers the question and provides constructive feedback and encourages professional growth in the question asker.

Guidelines for Answering Questions