Convert RTMP to WebRTC With Wowza Streaming CloudJuly 13, 2021
Repackaging RTMP streams into WebRTC combines flexible publishing from any source with simple browser-based playback. For this type of workflow, broadcasters simply transport live streams to their media server using a standard IP camera or encoder and then convert the video streams into WebRTC.
Watch the tutorial above to learn the step-by-step process for converting an RTMP stream to WebRTC using the Wowza Streaming Cloud service.
Full Video Transcript:Justin Miller:
Wowza Streaming Cloud lets you stream from an RTMP source to WebRTC for playback with a very low latency. This does require your account has direct playback enabled. We’ll start by going to Live Stream and Add Live Stream. I’m going to name this live stream RTMP-2-WebRTC, and I’m going to find the location closest to me and then click Next. For the encoder or camera, I’m going to choose Other RTMP, and then for any other settings, I’m going to change the aspect ratio to 1920 by 1080, as well as Disable Authentication. Next, I’m not going to worry about any of the other settings since I am going to be sending out via WebRTC, so I definitely don’t need to host my webpage to play back my videos since that uses HLS.
Once I know everything is good, I’m going to click Finish. And then once this live stream is created, we’re going to need to go up to advanced and click on Transcoders, so we can go to the transcoder that was created for this live stream. In here under Transcoder Setup, I’m going to click on Edit and I am going to change the buffer size from 4 seconds, bring that down to 0 seconds, which will give me that latency I’m hoping to get as low of latency as possible. I’m also going to need to once that saved, go to Outputs & Targets, and this is important as well. While the other change was for low latency, I need to make a change here to my standard output, which means editing it and switching the audio to Opus. That’ll make sure that I can output with audio via WebRTC.
I’m also going to change the audio bitrate to 510, although that may not be necessary. I’ll Save this change. And now that these changes are done, I’m going to go back to Live Streams, to my RTMP-2-WebRTC live stream, and I’m going to Start Live Stream. Now, while this live stream is getting started, I’m going to hide that window and I’m going to get this source connection information into my encoder, I am going to be using OBS Studio. Hello, everyone. So, everything is already configured here except the settings. So, under Settings, first of all, I’ll make sure that my video is set as well to 1920 by 1080. My Audio needs to be at a sample rate of 48. It should not be 44.1. You definitely want 48 and you want it to be Stereo. For Output, I would not suggest using the simple mode, I would go to something Advanced, specifically something where we can tune for zero latency and also ensure that bframes are set to zero.
So I’ve added this bframes equals zero in myself just to ensure everything. And now under Stream, I can change the service to Custom and add my server information, which again is my primary server right here. And then using my stream name as my Stream Key. We have disabled authentication right now, so we don’t need to use authentication, but you can choose to leave that on if you want to. Now that we know everything is okay, I’m going to start my stream. We can see it started down here. And if we scroll up, there we can see it’s working. It only shows a thumbnail every five second change. And now to see this working, we’re going to need to use a WebRTC player.
Now, for a player you may want to use your own WebRTC player, or you can use our player, which is available from wowza.com/webrtc/play. And well, here it is right here, which you’ll need to change the settings for. So to change those settings, I am going to go in the menu over here, back to Transcoders, and if I go to my transcoder for RTMP-2-WebRTC, I’m going to go on the menu over here to direct playback URLs for the different playback choices, and I can find WebRTC. If I click on WebRTC, you’ll see that there is a source at the top, but the one we’re looking for is video and audio where we’ve converted that audio to use Opus. So I’m going to grab this and I’m going to copy the information here, I’m going to paste it over into my player.
Let’s just… It’ll take a few seconds, but you definitely want to ensure you do not use source, you use the second option listed here. And once that’s added in, settings are saved, and I can click Play. And there I am. And you might hear the echo of it working. I’m going to turn the audio off, but I just wanted to make sure you can tell if the audio is working. One, two, three, four, five. And you can see that I am obviously getting a little bit of a latency, but it’s pretty close. It is definitely a sub one second latency near real time. And that’s it. That’s all I wanted to show you. So, I hope this has been helpful for those people who want to stream via RTMP with as low of latency as possible out to WebRTC. Thanks for watching and happy streaming.