Adaptive Bitrate Streaming Using Wowza Streaming EngineDecember 17, 2018
Today’s viewers are accessing video content across more devices and connection speeds than ever before. Adaptive bitrate streaming (ABR) enables you to reach these users — no matter whether they’re using a cell phones in an off-the-grid area or a 5k smart TV hooked up to Ethernet — by dynamically switching between different bandwidths.
With adaptive bitrate streaming, all users get the best possible experience for their circumstances. When a mobile viewer reaches a stronger signal strength, their stream will automatically adapt to deliver a higher bitrate file. Likewise, as household internet is strained by family members logging onto multiple devices, the stream will adjust to bandwidth constraints with minimal buffering.
Built for adaptive bitrate streaming, the Wowza Streaming Engine™ software can be configured to create discrete streams at various bitrates and detect the optimum speed for delivery. In this video, Justin walks through the step-by-step process of ABR streaming, so you can ensure a good user experience for anyone accessing your content.
Full Video Transcript:
In this video, we’ll show you how to live stream at adaptive bitrate, or ABR. We’ll be using the free OBS studio software as our encoder and a trial of Wowza Streaming Engine for transrating to multiple bitrates. Be sure to sign up for a trial license. Both will run on the same machine with Windows 10 as the operating system, because transcoding functionality is only available on Windows or Linux. We’ll also be using our free Wowza™ Player for playback through our browser, so be sure to go to the link shown to sign up for an account.
For OBS studio, go to the website and download it in installer for Windows. Run the installer and do a quick default installation to get up and running fast. For Wowza Streaming Engine, go to wowza.com, and, using the Download link in the menu, locate and Download the most recent installer for Windows. Run the installer and use the trial license you received by email. You’ll also need to create an administrator account during this process.
Now, once Wowza Streaming Engine is installed and running, the Engine Manager will open up automatically in your browser. Log in using the administrator account you’ve just created, and then you’ll need to create a Source User Name and Password for a secure connection to your encoder. Once it’s created, you’ll find this information in the Engine Manager under Server, within Source Authentication.
Now that everything’s installed, let’s set up OBS studio as the encoder. We can go under Applications and use the default live application called “live” for this stream. From here, you can go to Sources (Live) to get all the application connection settings. Be sure to note the port and application name. You’ll be using these in OBS studio.
Once you’re back in OBS studio, we’ll need to add a Video Capture Device for streaming. We’re going to be using the default webcam and leave the device settings as default. When this is complete, we’ll go to Settings. Here, under Video, we’ll change the canvas size to 720p. Then, we can go back to the main screen and stretch the webcam video to fit the screen. Now when this is complete, you may want to return to Settings and just note that under Output the Video Bitrate is 2500 kilobits per second and the Audio Bitrate is 160 kilobits per second. You’ll need this info later for transcoding.
Now under Stream, we can choose Custom Streaming Server and set the URL to go to rtmp://localhost, with the port and application name added after. We’ll also need to check Use authentication, and then add in the source authentication username and password.
Last, we’ll create a stream name and place that as the Stream key. I’m going to call this “windowsexperience.” Once everything’s been added, and we’re ready, we can start the stream in OBS studio. You’ll see indications that the stream is running along with the CPU usage, current frame rate and bandwidth usage. Back in Engine Manager, we can go to incoming stream and see the stream “windowsexperience” is running. With an active incoming stream, we can test it in Wowza Player.
The playback URL should be set by default, just Launch the Player and in the new window play the stream.
Now that we have our live stream up and running on a local network, we can make this livestream adaptive bitrate. Back in Engine Manager, go under Transcoder and Enable Transcoder. Once we restart the application, we’ll see changes take effect. OBS will disconnect and then reconnect, Wowza Streaming Engine will start to transcode using the fallback template, which is currently set as Transrate. This is one of the transporter templates we have set up and ready to go. Under incoming streams, you’ll be able to see not only the active incoming stream from OBS studio, but the source stream that’s being aligned for adaptive bitrate, as well as the 360p and 160p renditions. These are transrated and transsized to new resolutions and bitrates.
Back under Transcoder, we can see how these renditions are configured via reviewing that Transrate fallback template. Currently, the presets for source, 360p, and 160p have all been enabled. Let’s also enable 240p by first selecting it and then in the new window choosing Enable Preset.
If we return to the Transcoder template, we can see that all four have now been enabled. However, these changes won’t be applied until we restart the application once again. Once the restart is initiated, OBS will disconnect and reconnect just like before, and then under incoming streams, you’ll see that the changes have now taken effect.
Now we have our source and all three renditions active. To view at adapted bitrate, well need to make a SMIL file that references them. We’ll first go back to Transcoder and access the Transrate template. We’ll need to know the settings for each of our presets, so we can enter them in the SMIL file. You may want to have two tabs open for this, one with the information we need to enter and the other for adding said information into the SMIL file. Under our ‘live’ application, we’ll go to SMIL Files and chose to add Add SMIL File. I’m going to name this “Windows” and title it “Windows Experience.” Once the file’s been added, I can then Add [the] SMIL Stream into the file.
The Type will be Video, since we’re streaming video, and now I’ll need to start entering all the required fields. I’ll do this by going back to copy the “windowsexperience” source name. I’ll then return to the SMIL file, paste in the name and also add ENG as the language for this stream. More details on these settings are shown on the right side of the page.
If you recall, in OBS studio, the video source stream was at 25,000 kilobits per second, with a 720p resolution and audio at 160 kilobits per second. We’re entering this info now in bits per second. I’m going to finish adding this data in and then I’ll continue on by adding the 360p rendition. Like before, I’ll need this to be video and I’ll also copy and paste the source name from my other tab. The rest of the information, however, can’t come from OBS like it did before, since that’s not the source. Rather, I’m going to have to go to Transcoder and in the Transrate template, I’ll need to select the proper preset so I can then copy over the Video Bitrate, Video Width, Video Height, but the Audio remains the same as the source.
Once I’m done, I’ll save this just like before and I’m still going to need to do the 240p, as well as the 160p rendition, but I’m going to fast-forward through this process since it is the same as the 360p that I just did. Once the source and all the renditions have been added to the SMIL file, you’ll want to see it working in Wowza Player. The SMIL file won’t come up by default but you can get the proper path by using the Test Player.
Under the Mobile tab, you can just copy that IOS information. Now, go over to Wowza Player. Again, the path won’t be in the selectable URLs, but you can enter it manually. So, I will paste it in right here. Then, we’ll Launch [the] Player Builder, and in the new window, play the live stream. You’ll notice in the bottom-right corner there’s now an option for different bitrates. While you are currently on auto — so the bitrate adapts to your network speed — you can choose to manually select the one you want.
While the change may not be noticeable, the 160p and 360p renditions have a watermark added in the template, so you’ll easily know when that change has taken place. You can always edit the presets to have that watermark removed.
Alright, that’s the entire process from start to finish for adaptive bitrate live streaming. Please check out our help documentation for more details on specific configurations, and thanks for watching.