• How to use Wowza GoCoder video broadcasting Android app

    This article describes how to use the Wowza GoCoder encoding app on Android devices to publish live streams to a Wowza™ media server. Wowza GoCoder is a live audio and video encoding application designed for Android devices running Android 4.4 (API 19) or later. You can use Wowza GoCoder to capture and deliver live audio and video content over 4G, 3G, and Wi-Fi systems to a Wowza media server, which can then broadcast the content as HD-quality H.264 adaptive bitrate streams to any screen.



    Configure Wowza media server software
    Configure Wowza GoCoder App
    Sharing a stream playback URL to social media
    Using GoCoder with Android Wear
    More resources

    Configure Wowza media server software

    Follow the instructions in the "Configuration" section in How to set up live streaming using an RTMP-based encoder to create a live streaming application. This tutorial provides instructions for creating an application named live using Wowza Streaming Engine software.

    Configure Wowza GoCoder App

    The connection from GoCoder to the Wowza Streaming Engine media server is configured within the GoCoder app.

    Note: If you're running Wowza Streaming Engine Manager on your Android device that has the GoCoder app, you can automatically configure the app with the live application connection settings from the Sources (Live) page in the manager. If you're running Streaming Engine Manager on the local server computer or on a remote computer, you can send the connection settings for a live application to an email app on the device and launch GoCoder with the prescribed settings. For more information, see the URL configuration method section.
    1. Launch the Wowza GoCoder app on your Android device. An instructional overlay image is displayed on top of the application after it launches. The overlay provides a brief description of each of the app's buttons. To dismiss it, tap anywhere on the screen.

    2. To specify the Wowza media server information, tap the Connect button (the Wowza gear icon) in the upper-right corner of the app.

    3. On the Connect To page, tap Wowza Streaming Engine.

      Note: For information on how to use the GoCoder app with the Wowza Streaming Cloud service, see How to connect Wowza GoCoder to Wowza Streaming Cloud.
      The Engine page lets you provide information about the Host, Application, and Source Authentication.

      1. Tap Host, enter Server and Port information, and then tap Back.

        • For Server, enter the Wowza server IP address or hostname.

        • For Port, enter the port used for streaming. By default, a Wowza media server binds to TCP port 1935 for all forms of streaming.

      2. Tap Application, enter Application and Stream Name information, and then tap Back.

        The above example shows what you should enter if your Wowza media server application name is live and your stream name is myStream.

      3. Tap Login, enter the Source Username and Source Password, and then tap Done.

        The Source Username and Source Password are configured in the Source Authentication page in Wowza Streaming Engine Manager. For more information on creating source accounts, see Authenticating connections from live sources.

    4. Specify encoding settings for video and audio. Tap the Video options button in the upper-right corner of the app to display the Options page.


      For video streams, do the following:

      1. Tap Stream, choose the recording type (video, audio, or both), and then tap Back.

      2. Tap Video Settings, specify the Framerate and Keyframe Interval (number of seconds between keyframes), and then tap Back.

        • Not all Android devices guarantee the target framerate or keyframe interval of the output stream.

        • Enable Allow Rotated Video if you want the video output to match the orientation of the camera. If you want to keep the video output upright and be able to switch from portrait to landscape mode, keep Allow Rotated Video off. Make sure Auto-rotate is enabled in your device settings.
      3. Tap Video Size, select a video size, tap Back, and then tap Done.

        The available Video Size values will vary depending on device capabilities.


      For audio-only streams, do the following:

      • Tap Stream, tap Audio Only, and then tap Back.

        This setting removes any video that's present from the encoded stream, meaning that only the audio portion is delivered to the Wowza media server. If everything is configured correctly, you'll see the following message displayed in the app:


      Sharing Message

      If you want to share your broadcast link to a social media account, configure a default Message and webpage URL to use in a post after you have started your broadcast. For more information, see Sharing a stream playback URL to social media.

    5. Specify the encoded bitrate for the stream. Tap the bitrate button in the lower-left corner of the app to show the available bitrates.

      In the bitrate bar, select the highest bitrate value that you want to stream.

      The available bitrates will vary depending on device capabilities, the selected Video Size, and network connection type.

      Note: To configure adaptive bitrate streaming, which uses streams encoded at multiple bitrates, you must configure Wowza Transcoder in Wowza Streaming Engine. Transcoder will decode the video and audio of the incoming single bitrate live stream and re-encode it to multiple bitrates with properly aligned keyframes for adaptive bitrate delivery. For more information, see How to set up and run Wowza Transcoder for live streaming.
    6. (Optional) For devices that have an LED flash for the rear-facing camera, tap the LED flash button () in the upper-left corner of the app to enable LED flash mode. Setting LED flash mode to ON provides extra light.

      Tap the button again to disable LED flash mode (set to OFF).

    7. For devices that have front-facing and rear-facing cameras, tap the Camera switch button () in the upper-left corner of the app to toggle the selected camera.

    8. To broadcast to the Wowza media server, tap the Encode button.

      If everything is configured correctly, a broadcast timer begins to track the duration of the stream and and you'll see the following message displayed in the app:


      To stop the broadcast to the Wowza media server, tap the Encode button again.

    URL configuration method

    Wowza GoCoder supports configuration through custom URLs. You can click a custom URL on your Android device to launch GoCoder in a preconfigured state based on URL parameters.

    To send a configuration URL link to your device:

    1. In Wowza Streaming Engine Manager, select your live application, click Sources (Live), and then click Wowza GoCoder.

    2. Make sure the application connection settings are correct, and then click Email Me. A new email opens in your default email program with a GoCoder configuration link generated from your connection settings.

    3. Enter the email address you want to send the configuration URL to and then append any other custom parameters and their values to the end of the Android URL (separate each parameter with an &). The following URL is an example configuration link for Android devices:

      Available URL parameters:

      • publishHost = [wowza-ip-address] or [hostname]
      • publishPort = [integer]
      • publishApplication = [application-name]
      • publishStream = [stream-name]
      • publishURL = [playback-URL] to share via social media.
      • publishUser = [source-username]
      • publishPassword = [source-password]
      • publishRotationLock = [YES | NO]
      • publishAutoStart = [YES | NO]
      • publishAutoRestart = [YES | NO]
      • publishBroadcastType = [integer] value from 0-2 [0 = "Audio", 1 = "Video", or 2 = "Audio/Video"]
      • publishFPS = [float] value to indicate the framerate, for example: 30.00
      • publishKeyFrameInterval = [integer] value to indicate the keyframe frequency (number of frames between keyframes)
      • publishBitrateIndex = [integer] value from 0-3 [0 = "Low", 1 = "Medium", 2 = "High", 3 = "Very High"]. The actual value that results depends on the selected frame size.
      • publishFrameSizeIndex = [integer] value from 0-10 corresponding to the following available frame sizes in GoCoder:
        • 0 = 192x144
        • 1 = 320x240
        • 2 = 352x240
        • 3 = 352x288
        • 4 = 480x360
        • 5 = 640x360
        • 6 = 640x480
        • 7 = 960x540
        • 8 = HD720
        • 9 = HD1080
        • 10 = UHD2160
      • publishCamera = [FRONT | BACK] (use the front or back camera by default).

    4. Send the email, open the email on your device, and then tap the configuration URL to launch GoCoder with those settings.

    • All URL parameters are optional. GoCoder uses default values for parameters that aren't specified. For best results, pass a complete set for all options that you want to configure. Test the URL carefully as incorrect parameter values can cause GoCoder to behave incorrectly.

    • This configuration URL, while internal to the device, isn't secure. The publishPassword parameter is in clear text on the device.

    • If you specify a parameter value that is not supported by the device, the closest available size will be used.

    • Not all Android email applications support this configuration method. If your configuration link does not launch within GoCoder, try another email client.


    Playback in Wowza Streaming Engine Manager

    In Streaming Engine Manager, click the Test Players button in the upper-right corner of the live application page. The Test Players window that opens includes test players that are preconfigured to stream the live stream named myStream over various streaming formats.

    Each tab in the Test Players window either hosts a test player that you can use to play the live stream or provides instructions for playing the live stream. For example, to use the Adobe HDS protocol to play myStream, click the Adobe tab, and then click Start.

    The test players are also online on the Wowza Test Player webpage.

    Playback in Wowza example players

    You can use example players installed with the Wowza media server software to test the stream on your live streaming application. For more information see the following articles:

    Sharing a stream playback URL to social media

    You can send or post a custom message and playback URL via email, text, Facebook, Twitter, and many other apps. This message and playback URL can be configured in your GoCoder settings.

    Note: Your stream's playback URL can also be sent to GoCoder using the URL configuration within Wowza Streaming Engine Manager.
    To announce your streaming broadcast via social media:

    1. Tap the Options button in the upper-right corner of the app to display the Options page.

    2. Tap Sharing Message and then tap the Message text to customize the message that GoCoder will post to your social media account.

    3. Tap URL to enter the URL of the website that contains your embedded video stream. This URL will be automatically appended to the Message. Tap Done to save the Sharing Message settings.

    4. After starting your broadcast, tap the Sharing button in the upper-right corner of the app and then tap the application where you want to post the announcement. The application you choose opens with your Message and URL automatically entered as a new post or message.

    5. Make sure the text and URL link are correct and then post or send the announcement. Depending on the features in the application, you may also be able to add an image, add a location and check the number of characters remaining before reaching the maximum post size.

    Using GoCoder with Android Wear

    Install the GoCoder app on your Android Wear watch to control your GoCoder stream from a distance. A help screen is displayed when you first launch the app on your watch and when you select the Help icon from the options list. From your watch you can start and stop the stream, view stream play time, and view a video preview from your main device. Tap the screen to toggle the camera preview on or off. Swipe left on the preview screen to access options that let you Switch camera between back and front cameras, toggle the Flashlight on or off, and Mute audio.


    Connection issues

    If the app can't connect to the Wowza media server, open the following URL in a web browser to verify that the server is running:


    The Wowza media server software version and build number should be displayed in the webpage. If it isn't, make sure that the server is running and that TCP port 1935 is open on your router, firewall, and/or software firewall (iptables on Linux).

    If the server is running, verify that your Host information in the app is correct. Make sure that the Server value only contains the server IP address or hostname. It must not contain a complete publishing URL.


    Wowza GoCoder doesn't support multitasking. If you put the app into the background, audio and video resources are released to the system and the app is disconnected from the Wowza media server.


    Latency between Wowza GoCoder and a Wowza media server should be less than 2 seconds using default settings. If the delay is longer than 2 seconds, you can try setting the <Streams>/<StreamType> property in Application.xml to rtp-live-lowlatency. For Wowza Streaming Engine software, you can do this by enabling the Low-latency stream option on the live application's Setup tab in Streaming Engine Manager.

    Server-to-device latency is typically higher for Apple HLS streams than for Adobe HDS streams. The keyframe frequency that you specify in the app and the chunk duration interval that's specified in the Wowza media server application configuration can affect the latency between the server and the device that receives the stream. For iOS devices, you can tune application configuration properties to reduce latency. For more information, see How to configure Apple HLS packetization (cupertinostreaming).

    For tuning suggestions to reduce latency when streaming to Adobe Flash Player and Flash-based players such a JW Player and Flowplayer, see How to achieve the lowest latency from capture to playback.

    Battery life

    Encoding makes heavy use of device hardware and may drain your battery faster than some other apps. To view current battery status on your device, swipe down from the top of the screen to temporarily show the status bar.

    More resources

    Originally Published: 04-03-2014.
    Updated: For Wowza GoCoder (Android) 2.0 on 12-15-2015.

    If you're having problems or want to discuss this article, post in our forum.