Creating a Mobile Live-Streaming App

How Do I Get Started?

Your iOS or Android app needs mobile live-streaming capabilities, so users can capture and send a live video stream from anywhere in the world. But how do you get started? We'll show you options, best practices and examples for creating a mobile live video streaming app of your own, or for integrating live-streaming capabilities into your existing mobile app. 

Mobile Broadcasting Goes Mainstream

Mobile devices dominate, and this is driving technology’s evolution around the globe—particularly with the boom in live mobile broadcasting. Mass-market apps such as Periscope have received major attention, but the use cases go beyond social media: from apps for streaming live sporting events to live public safety video and datacasting; insurance-claim damage reporting; aerial reconnaissance via drones; citizen journalism; and much more. Live streaming from mobile devices is now mainstream, with apps bridging the gap between business and pleasure. If organizations want to capitalize on this trend, they need to act quickly and utilize proven technology to fully leverage mobile live video streaming.

Your End-to-End Mobile Streaming Options

A successful mobile live-streaming app requires a reliable end-to-end streaming workflow: from video and audio capture to encoding, transcoding, packaging, delivery and playback. The right approach for you depends on your use case, and what pieces you already have:

Mobile Live-Streaming Workflow Options & Descriptions

Option Scenario Description

1

Use your existing camera(s) and encoder.

You already have one or more video cameras and a hardware or software encoder for compressing outgoing video and audio.

2

Use a third-party mobile encoding app.

You already have a mobile encoding app, and now you need to deliver live streams to viewers.

3

Use the Wowza GoCoder™ mobile app or SDK.

You plan to use the Wowza GoCoder app as-is, or leverage the SDK to allow users to send a live stream from your existing mobile app.

These three options map to the three streaming workflows shown in the graphic above. Choose the one that best matches your live-streaming scenario.

In the following sections, we’ll explore how to get up and running with your chosen option for mobile live streaming. (Each of these assumes someone is actively managing incoming and outgoing live-stream delivery from a mobile encoder.)

Option 1: Use Your Existing Camera(s) and Encoder

Option 1: Use Your Existing Camera(s) and Encoder

You’re already streaming with one or more cameras and a software or hardware encoder, or an IP camera with a built-in encoder. Now you want to reach viewers on their mobile devices. Take the following steps to complete your workflow:

  1. Determine which streaming formats your encoder can deliver. The H.264 and H.265, or HEVC, video codec; AAC audio codec; and the RTMP and RTSP streaming protocols are common for compression and delivery.
  2. Decide whether to use Wowza Streaming Engine™ media server software or the Wowza Streaming Cloud™ managed service for delivery of streams.
  3. Determine which media players and devices you will be targeting as you get started. 
    • Wowza Player is provided through Wowza Streaming Engine or Wowza Streaming Cloud. It's an adaptive bitrate HTML5 player that can be customized for any device and embedded on the free hosted web page Wowza provides, as well as your own page, to deliver high-quality streaming experiences. 
    • We often recommend JW Player as a great any-screen option, including both in-browser playback support and mobile SDKs for iOS and Android devices.
    • Many other player technologies are available, including THEOplayer, as well as the open-source Google Shaka Player for MPEG-DASH streaming.
  • Best Practice
  • You can test multiple players and streaming formats directly on the Wowza Test Players page to ensure everything works as planned before you take your app live.

4. When you’re ready to send a stream from the existing encoder, log into your Wowza server or cloud account; follow the five-step setup wizard in Wowza Streaming Cloud, or this tutorial for Wowza Streaming Engine; publish your live stream; set up playback to your web page or desired player; and share a link to your stream with your audience.

Option 2: Use a Third-Party Mobile Live-Streaming App

Option 2: Use a Third-Party Mobile Live-Streaming App

Many third-party mobile apps for iOS and Android can encode and send live streams to Wowza Streaming Engine and Wowza Streaming Cloud for any-screen distribution. If you’ve found or built an app you like, follow these steps to share your live streams with viewers.

  1. Determine which streaming formats your mobile live-streaming app can deliver. The H.264 and H.265, or HEVC, video codec; AAC audio codec; and the RTMP and RTSP streaming protocols are common for compression and delivery.
  2. Note that some mobile live-streaming apps don’t have support for source authentication. If yours does not:
    Best Practice
    • Determine the risk of an unauthorized person sending an unapproved stream for delivery.
    • If the risk seems high, consider switching to a mobile app that supports RTSP or RTMP authentication.
  3. Decide whether to use Wowza Streaming Engine software or the Wowza Streaming Cloud service to deliver your streams. If you’ll be using a CDN (content delivery network), edge servers or services such as Facebook Live to scale your streaming, assign the appropriate stream targets.
  4. Determine which media players and devices you will be targeting as you get started. (See Option #1.)
  5. Provide mobile users with links to download the mobile live-streaming app you’re using.
  6. When a mobile user contacts you with a real-time request to broadcast a stream from his or her location, log into your Wowza server or cloud account, then follow the five-step setup wizard in Wowza Streaming Cloud or this tutorial for Wowza Streaming Engine, publish your live stream, set up playback to your web page or desired player and share a link to your stream with your audience.

Option 3: Use the Wowza GoCoder Mobile Capture and Encoding App or SDK

With Wowza GoCoder, there are two ways to offer users a professional mobile live-streaming app:

  • Wowza GoCoder:
    An app available for free on the Apple App Store and Google Play Store.
  • Wowza GoCoder SDK:
    A software development kit that simplifies mobile app development for iOS and Android.

Use the Wowza GoCoder mobile app on Apple iOS and Android devices to encode and stream live events in up to 4K—on the go, from any location to any screen and in real time over Wi-Fi or LTE connections. Users can also control Wowza GoCoder from their paired Apple Watch or Android Wear devices.

  1. Decide whether to use Wowza Streaming Engine media server software or the Wowza Streaming Cloud online service for delivery of streams.
  2. Determine which media players and devices you will be targeting as you get started. (See Option #1.)
  3. Provide mobile users with links to download Wowza GoCoder from the Apple App Store and the Google Play Store.
  4. When a mobile user contacts you with a real-time request to broadcast a stream from his or her location, log into your Wowza server or cloud account; follow the five-step setup wizard in Wowza Streaming Cloud, or this tutorial for Wowza Streaming Engine (selecting Wowza GoCoder as your video source); publish your live stream; set up playback to your web page or desired player; and share a link to your stream.

The Wowza GoCoder SDK simplifies mobile app development for iOS and Android by offering a common, cross-platform API to capture, encode and stream live video and audio with broad support for the ever-growing spectrum of connected devices. If you need a live-streaming app with a different feature set or a higher level of customization than Wowza GoCoder mobile app provides, consider the Wowza GoCoder SDK: the same SDK that the GoCoder app itself is built on.

The GoCoder SDK provides the ultimate flexibility for easily creating and integrating live video streaming into your customized, branded app experience. Direct integration with Wowza Streaming Engine software and the Wowza Streaming Cloud service provides a true end-to-end mobile broadcasting solution—giving you a faster time-to-market, lower development costs, the use of proven technology and unlimited scalability.

What You Can Control with the SDK:

  • Live capture, encoding and streaming on a wide range of iOS and Android devices through a single API designed to simplify platform and device complexity.
  • Connections to Wowza Streaming Engine and Wowza Streaming Cloud through a single configuration interface for streaming and authentication settings.
  • Detailed video and audio encoder settings, including support for video resolution up to 4K Ultra High Definition (HD).
  • Camera focus, exposure and flashlight features enabled across hardware platforms.
  • Network bitrate for improved quality of service.

Processing and Delivery Options

No matter how you capture your live event, you likely want to enable playback on as many endpoints as you can reach—including computers, smart TVs, game consoles, set-top boxes and mobile devices. Wowza offers two main content-processing and -delivery options for reaching any screen, anywhere:

Wowza Streaming Engine software can be installed on most operating systems, either on premises or on a cloud service such as Amazon Web Services, Microsoft Azure or Google Cloud Platform. You have full control over the software via the built-in admin console (Wowza Streaming Engine Manager), the command line, a Java API and a REST API.

Wowza Streaming Cloud is a fully managed online service, so you can focus less on running servers and more on building great customer experiences. It includes transcoding; stream delivery; and a free, non-branded player to use through a Wowza-hosted page or embed on your Web page. The programmable REST API enables deep customization, and the Ultra Low Latency feature supports sub-three-second end-to-end streaming delivery.