Title: Delivering Live Streams Using Wowza GoCoder
Tools Used: Wowza Streaming Engine, Wowza GoCoder App for iOS
Description: In this tutorial, I’ll show the reader how to use the Wowza GoCoder App with Wowza Streaming Engine. You’ll gain a better understanding of how GoCoder can be used for mobile streaming where individuals would like to turn their mobile device into a live encoder for live streaming.
Many individuals and organizations utilize live streaming for events, but throughout the world many realize that mobile devices can also easily stream video of events, meetings, speakers, sporting events, and other activities. Today, you’ll get a better understanding of how to get your next mobile streaming event off the ground.
First, to get started with streaming using Wowza GoCoder and Wowza Streaming Engine, you’ll need to do some set-up on the streaming server.
If you’d like to follow along, perform the following first in Wowza Streaming Engine Manager:
- Create an Application for Live streaming
- Find your IP address for Wowza
- Create credentials for your Live Streaming in the Source Authentication Section
- Determine what Stream Name you’ll use for this tutorial
Configure items on Wowza Streaming Engine within Wowza Streaming Engine Manager
Now that you have those items, let’s get started working in Wowza GoCoder.
For this tutorial, our Application name is freeman_live and our stream name is sample. Both items are lowercase. Although it’s not required, a good best practice is to always use lowercase characters for your Wowza applications and stream names. And be sure not to include spaces when creating your Application and Stream Name. Not including spaces makes it much easier to troubleshoot technical issues with your Wowza streaming. Your IP address for your Wowza instance can be found in Wowza Streaming Engine Manager as soon as you log in. For the purposes of this tutorial, I’ll keep my credentials a secret.
It’s always a great idea to confirm that your credentials are working for Source Authentication and that your live streaming is working properly for you Wowza application. You can do this with Wowza GoCoder, or you can test it with another live streaming application or device.
Selecting your Camera Shot
Let’s get started with the tutorial. Download and install Wowza GoCoder on your iOS device. Open the application. You’ll notice several icons on your screen once you exit the startup Help screen.
For my source, I’m using a shot with my iPhone of our family pet and loving Bichon, Harley.
The item that looks like a lightning bolt turns your camera light on and off. The button next to it rotates your camera towards you or your subject. Point the camera at a subject by rotating the camera accordingly. Next, let’s configure the Wowza Streaming Engine settings by clicking the Connect button. It’s the icon at the top that looks like the Wowza logo.
Adding Host, Application, and Source Authentication information
At the dialog, choose Wowza Streaming Engine. You can also using Wowza Streaming Cloud for mobile live streaming, but for our tutorial we’re using Wowza Streaming Engine.
Now, it’s time to input your Host, Application, and Source Authentication information. Click on Host from the available options.
At dialog, add your IP address or hostname as well as your port number. It’s safe to use port 1935 when using Wowza (Remember to also open this port on the firewall connected with your Wowza Streaming Engine). Click the Back button.
Next, click on Application.
Now add your Application name. For this tutorial, my Application name is freeman_live with a Stream Name of sample. Click the Back button once you add you information.
Navigate to Source Authentication by clicking Source Authentication from the available choices.
Input your credentials for your live stream. These are the same credentials listed within the Source Authentication Section of Wowza Streaming Engine Manager. Click the Done button once you add them.
Choosing Your Video Options
Now, let’s move to the Video Options. Click the icon with the adjustment sliders in the top right corner.
In this section, you’ll create your video settings and configurations. Since you’re just getting started with mobile streaming, I recommend using a lower frame size and date rate to start with. Using a modest 640×360 setting and a lower data rate of 700kbps will be good for now. If you happen to be at a university, college campus, or a company where upload wireless bandwidth is well above 20 Mbps consistently, then you can use a 1280 x 720 frame size and a date rate of 2500kbps. It’s a good best practice if your available upload bandwidth is a least 3 times the amount of your live stream. For this tutorial, we’ll use the more modest setting.
Let’s move on. Click on Stream.
Select Video + Audio. This will stream both video and audio from your mobile device. The other items here are self-explanatory. Click the Back button.
Next, click on Video Settings.
Setting this item correctly is very important. For Framerate, type in 30 into the text box and for Keyframe Interval type 60, and leave Allow Rotated Video enabled. The Framerate and Keyframe Interval work in harmony. Since our Framerate is 30, a Keyframe Interval of 60 means a Keyframe will be inserted into our video every 2 seconds (or at least every two seconds). This is because the 30 stands for 30 frames per second (fps). If you wanted to add a keyframe every 4 seconds, the Keyframe Interval would be 120. For mobile streaming, I recommend always using a Keyframe Interval of every 2 seconds. Using a Keyframe Interval value of 60 achieves this. I recommend this because if you ever decide to use Wowza Transcoder to create Adaptive Bit Rate live streams with your Wowza GoCoder live streams, it’ll be an easier transition, and it should work much better for you. If the user bandwidth decreases or increases, the 2 second interval allows for a greater opportunity for streaming switching.
Let’s continue. Click the Back button.
Choose Video Size from the dialog window.
Select 640×360 from the list of frame sizes and click the Back button.
Enable Auto Restart if you’d like you’d like Wowza GoCoder to automatically start streaming if you lose your connection and it’s re-established. Click Done once you finish.
Setting the Data Rate for Your Mobile Live Stream
It’s now time to select your bit rate for your live encode.
Click the data rate button in the lower left-hand corner of the Wowza GoCoder app. This will bring up several available data rate options.
Keep in mind, the available settings here and connected to the frame size you select under Video Size within Video Options.
Choose 700kbps for the list.
Now to start your mobile live stream, click the red Start Encoding button and your live encoding should start and Stream Started will be displayed. That’s it. And that’s how you deliver live streams using Wowza GoCoder.
Lastly, if you’d like to disable the startup Screen Help that appears when you first open Wowza GoCoder, click the Video Options button available on app start-up.
Then, click More Options.
And then disable the startup Help Screen by moving the Show Help Screen slider to the left. In this section, you can also enable Show Status Bar to see the clock and battery life available on your device.
Hopefully this blog post gives you a better understanding of mobile streaming with Wowza GoCoder as well as more insight on many of the various video and encoding settings available.
Items to Remember…
Don’t use the Stream Name sample if you’d like to record streams of your mobile streaming with Wowza GoCoder. Doing so will overwrite the default sample.mp4 in your Wowza content directory.
Also, whatever Application and Stream Name you use in Wowza GoCoder, this information (in some form) will be used in your media player set-up to allow your stream to be available for viewers.
In this tutorial, we guided you through the process of sending live streams to Wowza Streaming Engine using Wowza GoCoder, but you can also perform the same type of streaming using an Android Device. Many of the items in the user interface look a little different, but it’s basically the same information.