Wowza GoCoder SDK FAQ

This article answers frequently asked questions about Wowza GoCoder™ SDK.

General capabilities


Can I grab individual frames or snapshots with the GoCoder SDK?

Yes. Use the WOWZVideoSink protocol in the iOS SDK or the WOWZRenderAPI.VideoFrameListener interface in the Android SDK.

Can I develop an app using GoCoder SDK that runs in the background and streams from camera and microphone?

The iOS SDK can continue streaming audio once the app is placed in the background, but due to camera access restrictions for background apps enforced by Apple, it can't continue streaming video.

The capability to stream both video and audio in the background is planned for a future release of the Android SDK.

Can I record video to a local device and then stream it to Wowza Streaming Engine?

Yes, the GoCoder SDK allows your custom app to record video onto a local device and then stream the recorded file to Wowza Streaming Engine™ media server software.

Does the SDK support switching between portrait and landscape orientation while streaming?

The frame size of the video stream always remains constant while streaming. This means that a 1280x720 stream doesn't become 720x1280 if you rotate the device while streaming. However, the SDK supports a configuration option that can be set to one of three different modes (same as the device default, always landscape, or always portrait) that affect the appearance of the video stream when the orientation of the device changes while streaming.

By default, the stream maintains the orientation of the device and fills the full frame. In this mode, if you turn the device upside down while streaming, the video stream appears upside down, too.

In the other modes, the stream maintains the orientation of the device when streaming was initiated. In this mode, if you start streaming in one orientation (say, landscape) and then rotate the device 90 degrees (say, to portrait), the stream will rotate back to the original orientation so that it remains upright. In the example of the device turning from landscape to portrait, the frame size of the video will shrink so that it becomes letter-boxed, displaying the full frame but with black bars across the top and bottom while the device is in portrait orientation.

Can I mute during streaming?

Yes.

What is the maximum resolution supported by GoCoder SDK?

The GoCoder SDK can encode and broadcast up to 3840x2160, or 8.3 megapixels (4K). Playback, however, is only supported up to 1920x1080 pixels.

How do I connect GoCoder SDK to Wowza Streaming Engine and Wowza Streaming Cloud?

See these articles for instructions:

Protocols and latency


What protocol does the GoCoder SDK use to stream to Wowza Streaming Engine?

GoCoder SDK uses the proprietary WOWZ™ protocol, a TCP-based low-latency streaming protocol.

Does the GoCoder SDK support WOWZS?

No, the GoCoder SDK doesn't support WOWZS, which is the Secure Sockets Layer implementation of WOWZ.

How do you configure Wowza Streaming Engine and Wowza Streaming Cloud for low latency?

For the Wowza Streaming Cloud™ service, see How to address network congestion by using a stream source and How to deliver a reduced-latency HLS stream in Wowza Streaming Cloud.

For Wowza Streaming Engine, see How to set up low-latency applications in Wowza Streaming Engine for RTMP streaming.

Is the GoCoder SDK IPv6 compatible?

Yes, the GoCoder SDK is IPv6 compatible.

iOS SDK questions


What are the minimum system requirements for the iOS SDK?

The GoCoder SDK for iOS requires iOS SDK 8.01 or later and Xcode 7 or later. For install instructions, see How to install GoCoder SDK for iOS.

Can the SDK be used to develop both Objective-C and Swift-based apps?

Yes. The SDK is delivered as an iOS framework that can be used with both Objective-C and Swift development.

Does the SDK work with Titanium, Cordova, or other frameworks?

Yes. Titanium SDK and other mobile frameworks can be used with GoCoder SDK to develop live streaming apps. Currently, Wowza doesn't offer plug-ins for these frameworks or platforms, but we encourage developers to create plug-ins for their needs.

Why do I get a "Permission denied" error when building an Xcode project using the GoCoder SDK framework?

If you encounter a permission-denied error, do the following:

  1. In the error messages displayed in the Xcode build log, locate the full path to the file named strip-frameworks.sh.
  2. Open a Terminal window, and enter the command:
chmod 777 <filepath

Android SDK questions


What are the minimum system requirements for the Android SDK?

The GoCoder SDK for Android requires Android 5.0 (API level 21) or later for broadcasting and Android 6.0 (API level 23) or later for playback. Android Studio 1.2.0 or later is also required. For install instructions, see How to install GoCoder SDK for Android.

Can I use Camera2 API in Android instead of the APIs provided with your Android SDK?

The WOWZGLBroadcaster class in the GoCoder SDK for Android can be used to capture and stream video content from practically any source, including the Camera2 API.

Licensing


Why am I getting an error that my license key is invalid?

The most common reason the license key doesn't validate is that the app bundle ID (iOS) or application ID (Android) doesn't match the ID that was supplied to Wowza when the key was generated.

How do I check the app ID?

On iOS, the bundle identifier is set in the General section of Xcode's target settings view. Make sure that the value in the Bundle Identifier field matches the ID you supplied to Wowza to generate the license key.

On Android, the application ID is typically set in the defaultConfig section of the /app/build.gradle file as follows:

android {
    ...
    defaultConfig {
        applicationId 'com.mycompany.myapp'
        ...

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