Wowza Community

A error occurred writing to the open broadcast connection: (8)

I am using Go Coder Android SDK for Broadcasting video.

When video streaming run more than 1 mins it showing below error:

A error occurred writing to the open broadcast connection: (8)

Below is log:

24149-24874 E/WMSTransport: Function call FAILURE result received with the following properties:
24149-24885 E/OMXMaster: A component of name 'OMX.qcom.audio.decoder.aac' already exists, ignoring this one.
24149-24880 E/ACodec: [OMX.qcom.video.encoder.avc] storeMetaDataInBuffers (output) failed w/ err -1010
24149-24897 E/WOWZClient: A error occurred writing to the open broadcast connection:  (8)
    java.net.SocketException: Socket closed
        at libcore.io.Posix.sendtoBytes(Native Method)
        at libcore.io.Posix.sendto(Posix.java:211)
        at libcore.io.BlockGuardOs.sendto(BlockGuardOs.java:278)
        at libcore.io.IoBridge.sendto(IoBridge.java:509)
        at java.net.PlainSocketImpl.write(PlainSocketImpl.java:500)
        at java.net.PlainSocketImpl.-wrap1(PlainSocketImpl.java)
        at java.net.PlainSocketImpl$PlainSocketOutputStream.write(PlainSocketImpl.java:266)
        at com.wowza.gocoder.sdk.support.wse.WOWZClient.write(WOWZClient.java:728)
        at com.wowza.gocoder.sdk.support.wse.WOWZClient.writeNalOrAAC(WOWZClient.java:963)
        at com.wowza.gocoder.sdk.support.wse.WOWZClient.sendNalWithTimecode(WOWZClient.java:929)
        at com.wowza.gocoder.sdk.support.wse.StreamPublisher.onVideoFrame(StreamPublisher.java:215)
        at com.wowza.gocoder.sdk.support.encoder.H264Encoder$1.run(H264Encoder.java:698)
        at android.os.Handler.handleCallback(Handler.java:746)
        at android.os.Handler.dispatchMessage(Handler.java:95)
        at android.os.Looper.loop(Looper.java:148)
        at android.os.HandlerThread.run(HandlerThread.java:61)
24149-24897 E/StreamPublisher: A error occurred writing to the open broadcast connection:  (8)
    java.net.SocketException: Socket closed
        at libcore.io.Posix.sendtoBytes(Native Method)
        at libcore.io.Posix.sendto(Posix.java:211)
        at libcore.io.BlockGuardOs.sendto(BlockGuardOs.java:278)
        at libcore.io.IoBridge.sendto(IoBridge.java:509)
        at java.net.PlainSocketImpl.write(PlainSocketImpl.java:500)
        at java.net.PlainSocketImpl.-wrap1(PlainSocketImpl.java)
        at java.net.PlainSocketImpl$PlainSocketOutputStream.write(PlainSocketImpl.java:266)
        at com.wowza.gocoder.sdk.support.wse.WOWZClient.write(WOWZClient.java:728)
        at com.wowza.gocoder.sdk.support.wse.WOWZClient.writeNalOrAAC(WOWZClient.java:963)
        at com.wowza.gocoder.sdk.support.wse.WOWZClient.sendNalWithTimecode(WOWZClient.java:929)
        at com.wowza.gocoder.sdk.support.wse.StreamPublisher.onVideoFrame(StreamPublisher.java:215)
        at com.wowza.gocoder.sdk.support.encoder.H264Encoder$1.run(H264Encoder.java:698)
        at android.os.Handler.handleCallback(Handler.java:746)
        at android.os.Handler.dispatchMessage(Handler.java:95)
        at android.os.Looper.loop(Looper.java:148)
        at android.os.HandlerThread.run(HandlerThread.java:61)

A error occurred writing to the open broadcast connection

This error should come up after a socket connection has already been established, but network saturation or bandwidth throttling is preventing packets to be sent from the broadcaster or packets to be received by your Wowza server.

If there was not a full disconnection, you can improve your chances of holding onto the stream with Adaptive bitrate params:

Here are detailed descriptions for the ABR-related parameters available in the WOWZMediaConfig class of the Android SDK…

The LowBandwidthScalingFactor property is the factor by which to scale the desired bitrate in low bandwidth conditions. Valid range is 0.0 to 1.0; any other value will be ignored. Setting a value of 0.0 indicates that the encoder should choose the best value; setting a value of 1.0 indicates that bitrate will never be throttled. The default is 0.75.

The FrameBufferSizeMultiplier property is the value by which to multiply the video frame rate to derive the number of video frames to buffer before the encoder starts to throttle bitrate and/or frame rate. For example: if the frame rate is 30 and the videoFrameBufferSizeMultiplier is 5, the encoder will buffer 150 (5 * 30) frames before throttling. Setting a value of 0 indicates that the encoder should choose the best value. The default value is 4.

The FrameRateLowBandwidthSkipCount property is the number of frames to skip when the encoder cannot keep up with the broadcaster. In low bandwidth conditions the encoder will skip frames to conserve bandwidth but still send consistent frames so the encoder can produce smooth playback. The maximum number of frames that can be skipped is equal to the key frame interval minus one - i.e. setting this to 29 with a key frame interval of 30 will produce a key frame only stream, setting to 1 will never skip frames. The default is 4 meaning skip 1 of every 4 frames.