pedroSG94 / RootEncoder

RootEncoder for Android (rtmp-rtsp-stream-client-java) is a stream encoder to push video/audio to media servers using protocols RTMP, RTSP, SRT and UDP with all code written in Java/Kotlin
Apache License 2.0
2.54k stars 772 forks source link

java.net.SocketException: Software caused connection abort #464

Closed BrickWorkerKing closed 3 years ago

BrickWorkerKing commented 4 years ago

This error occurs when performing a 15-minute RTSP push stream operation on Android 7.0.

error log:

E: send error: java.net.SocketException: Software caused connection abort at java.net.SocketOutputStream.socketWrite0(Native Method) at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:112) at java.net.SocketOutputStream.write(SocketOutputStream.java:157) at com.pedro.rtsp.rtp.sockets.RtpSocketTcp.sendFrameTCP(RtpSocketTcp.java:43) at com.pedro.rtsp.rtp.sockets.RtpSocketTcp.sendFrame(RtpSocketTcp.java:28) at com.pedro.rtsp.rtsp.RtspSender$1.run(RtspSender.java:123) at java.lang.Thread.run(Thread.java:761)

E: disconnect error java.net.SocketException: Broken pipe at java.net.SocketOutputStream.socketWrite0(Native Method) at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:112) at java.net.SocketOutputStream.write(SocketOutputStream.java:157) at sun.nio.cs.StreamEncoder.writeBytes(StreamEncoder.java:221) at sun.nio.cs.StreamEncoder.implFlushBuffer(StreamEncoder.java:291) at sun.nio.cs.StreamEncoder.implFlush(StreamEncoder.java:295) at sun.nio.cs.StreamEncoder.flush(StreamEncoder.java:141) at java.io.OutputStreamWriter.flush(OutputStreamWriter.java:229) at java.io.BufferedWriter.flush(BufferedWriter.java:254) at com.pedro.rtsp.rtsp.RtspClient$2.run(RtspClient.java:239) at java.lang.Thread.run(Thread.java:761)

pedroSG94 commented 4 years ago

Are you doing RTSPS? Maybe your problem is related with this (first answer): https://stackoverflow.com/questions/12986542/how-to-solve-connection-reset-by-peer-socket-write-error Try disable renegotiation in the server and enable in device:

//call it in onCreate before use the library
System.setProperty("sun.security.ssl.allowUnsafeRenegotiation", "true");