Select different audio stream in Azure Communication services - azure

I am researching a scenario where I setup a videoconference call app (like https://github.com/Azure-Samples/communication-services-web-calling-hero) with Azure Communication Services (ACS) and substitute the incoming audio stream with a different incoming audio stream (for example a translated English stream). In Azure Media Services this is possible, but this is lacking the videoconference functionality.
I cannot find any documentation on how to handle multiple audio streams for a single incoming video signal. Is this already possible in the current preview? Or should I switch to AWS Chime or Jitsi?

Related

How can i streaming and have the video available to download using Azure media services

I need to stream a tv signal (I have the rights) using azure media service. And at the same time i need to have as a video to be access and download it at least as a part But how can i access part of this continuous video. I thought that a job encoder was the tool but i can't find a way. Is any way to do it?
Solution 1: Use FFmpeg to download any Azure media service video or live stream.
For this you need to have FFmpeg installed. No matter you are using Windows, Linux, or Mac OS.
Download latest FFmpeg here: https://ffmpeg.org/download.html
And you need to get the Azure Media Service smooth streaming URL of the video you are watching. Typically, this URL ends with 'manifest'.
Example :
Refer this documents where you can find the step by step procedure to download or live stream
1) https://anduin.aiursoft.com/post/2020/5/15/download-any-azure-media-service-video-or-live-stream-with-ffmpeg
Solution 2: live event can be set to either a pass-through (an on-premises live encoder sends a multiple bitrate stream) or live encoding (an on-premises live encoder sends a single bitrate stream). For details about live streaming in Media Services v3, see Live events and live outputs.
Live Event:
When using the pass-through Live Event, you rely on your on-premises live encoder to generate a multiple bitrate video stream and send that as the contribution feed to the Live Event (using RTMP or fragmented-MP4 input protocol). The Live Event then carries through the incoming video streams to the dynamic packager (Streaming Endpoint) without any further transcoding.
Live Encoding:
When using cloud encoding with Media Services, you would configure your on-premises live encoder to send a single bitrate video as the contribution feed (up to 32Mbps aggregate) to the Live Event (using RTMP or fragmented-MP4 input protocol). The Live Event transcodes the incoming single bitrate stream into multiple bitrate video streams at varying resolutions to improve delivery and makes it available for delivery to playback devices via industry standard protocols like MPEG-DASH, Apple HTTP Live Streaming (HLS), and Microsoft Smooth Streaming.
For more details refer this document

Real-Time Audio Encoding With Azure Media Services

Is it possible to get real-time audio encoding using Azure Media Services? We have an ASP.NET MVC C# site that we want to allow our users to upload an audio file and then immediately play that audio file back using a standard HTML5 audio tag.
I know I can upload the audio asset to azure and then ask it to encode it into an MP3 file so that it can be played using the audio tag but there may be to much of a delay in that process. Is there a way to upload the asset and then ask azure for an MP3 stream that it would encode in real-time so that I can play it to the user immediately after the upload completes.
If it cannot be done with azure is there a different service that offers that capability?
Currently, we do not provide a real-time transcoding option where the playback request triggers a real-time transcode.
An option for you may be to run ffmpeg directly in an Azure Function.

RTP stream with bareSIP

my current setup involves streaming from a GoPro to a linux box, and I managed to get bareSIP running on the box to stream the video locally with the 'v' command. However, there's no documentation or commands to configure an RTP broadcasting stream. Would anyone have any insight into publishing an RTP/RTSP output stream for other users to view on their devices?
I've used Unreal Streaming Media components and found them to be very good. They are lightweight and fast yet very powerful.
Using Unreal components you could install the stream forwarder on your laptop, point it at the RTSP stream and tell it to forward to the Distribution server application.
This app can host thousands of connections (supposedly) and last I looked you didn't need a license if you have 3 or fewer sources. The stream can be viewd via their own small player app, via a web player such as jPlayer or via VLC etc.
I've been pretty happy with this before - it saved me from having to use the Live555 streaming mess.
Good Luck!

Multiplexing several ingested audio streams and one video stream with Azure Media Services

We are looking into developing a web application that streams video from one source and audio from several locations. In the future, we may consider streaming video from multiple locations also.
The content will be delivered to multiple clients and must be thus packaged as one output stream. From what we could find on Media Services docs, there is no builtin way to multiplex the incoming streams into one output stream to be delivered to users.
How could one multiplex several AV sources with Azure Media Services. Please note that "locations" was used deliberately to signify that the AV sources will be in different physical locations and as such, the multiplexing cannot be done locally on one computer.
Azure Media Services supports Adobe RTMP and Microsoft Smooth (fMP4) ingest. The Microsoft Smooth protocol will allow you to send independent streams containing video or audio, that are synchronized by timestamp. RTMP will support multiple audio tracks, but I don't believe multiple video tracks are supported.
When you create a Channel for Smooth (fMP4) ingest you will have access to an ingest end point which you can send media to from multiple end points, for example, http://domain/ingest.isml/Streams(video_camera_angle1), .../Streams(video_camera_angle2), .../Streams(audio_en), .../Streams(audio_sp), .../Streams(audio_fr).
Azure Media Services supports 4 egress protocols: Apple HLS, Adobe HDS, Microsoft Smooth, and MPEG-DASH. All of them support multiple audio tracks. Today, I believe only Microsoft Smooth and Apple HLS support multiple video tracks.

What libraries/APIs allow me access real time audio waveforms of a phone call?

I am looking to build an app that needs to process incoming audio on a phone call in real time.
WebRTC allows for this but i think this works only in their browser based P2P audio communications functionality but not for phone calls/ VOIP.
Twilio and Plivo allow you record the audio for batch/later processing.
Is there a library that will give me access to the audio streams in real time? If not, what would I need to build such a service from scratch?
Thanks
If you are open to using a media server (so that the call is not longe P2P but it's mediated by the media server using a B2B model), then perhaps the Kurento Media Server may solve your problem. Kurento Media Server makes possible to create processing capabilities which are applyied in real time onto the media streams. There are many examples in the documentation of computer vision and augmented reality algorithms applied in real time over the video streams. I've never seen an only-audio processing module, but it should be simple to implement just by creating an additional module, which is not too complex if you have some knowledge about C/C++ and media processing concepts.
Disclaimer: I'm part of the Kurento development team.

Resources