I cannot play video(playback) with flash on Chrome or any browsers. I am trying to watch video previously recorded from a red5 server running on Widlfy 15. The version of red5 I am using is v1.0.9.-RELEASE
I am using Chrome (Version 73.0.3683.103 (Official Build) (64-bit)) and Adobe flash 32.0.0.171). The code in my SWF file embedded in HTML is :
connection = new NetConnection();
connection.proxyType = "best";
connection.connect(“rtmps://localhost:8935/service”)
On Chrome I got the following error when checking the logs : POST https://localhost:8935/open/1 net::ERR_EMPTY_RESPONSE
- I can record video with red5 and rtmps protocol. I can do a successful test with ffmpeg -i "rtmps://localhost:8935/service/my_video.mp4" -vcodec copy -acodec copy out.mp4 . I have upgraded many libraries like apache , httpcontantainer.
- I have used Chrome64_51.0.2704.84 with Flash version 21.0.0.242 . The issue is the same.
- My red5 server supports TLS 1.0 , TLS 1.1 , TLS 1.2 (check it with nmap and while debugging red5 server code.
- I have the same issue with v1.0.10 version of red 5.
- Wireshark indicates that TLS 1.2 is used and show Encypted Message Hanshake and then application data message as if TLS 1.2 is transmitting data. Then the next message is a TLS encryption alert. After that the communication stopped brutally.
I am using a self-sign certificate for my localhost . I have added the CA root certificate in my Chrome browser to simulate a CA certificate. Truststore and keystore are correctly set up in redcore.xml and video recording works. On the server side where red5 is running in my container called my_hostname, I got the following logs which seem important:
I have set up a RTMPS native in red5 but i have a log saying i am in a non native RTMPS for some reason :
my_hostname | 15:55:37,610 INFO [org.red5.server.net.rtmps.RTMPSIoFilter] (NioProcessor-28) RTMPS Session id: CBN7YR9BFVO9W
my_hostname | 15:55:37,610 INFO [org.red5.server.net.rtmps.RTMPSIoFilter] (NioProcessor-28) Non-native RTMPS connection requested for: CBN7YR9BFVO9W
my_hostname | 15:55:47,324 WARN [org.red5.server.net.rtmp.RTMPConnection] (rtmpScheduler-1) Closing CBN7YR9BFVO9W, due to long handshake. State: >connect
How to view rtmps red5 playback video from Chrome ?
More logs :
my_hostname | 15:55:37,547 INFO [stdout] (NioProcessor-28) update handshake state: change_cipher_spec
my_hostname | 15:55:37,547 INFO [stdout] (NioProcessor-28) upcoming handshake states: client finished[20]
my_hostname | 15:55:37,547 INFO [stdout] (NioProcessor-28) upcoming handshake states: server change_cipher_spec[-1]
my_hostname | 15:55:37,547 INFO [stdout] (NioProcessor-28) upcoming handshake states: server finished[20]
my_hostname | 15:55:37,547 INFO [stdout] (NioProcessor-28) NioProcessor-28, READ: TLSv1.2 Handshake, length = 40
my_hostname | 15:55:37,548 INFO [stdout] (NioProcessor-28) check handshake state: finished[20]
my_hostname | 15:55:37,548 INFO [stdout] (NioProcessor-28) update handshake state: finished[20]
my_hostname | 15:55:37,548 INFO [stdout] (NioProcessor-28) upcoming handshake states: server change_cipher_spec[-1]
my_hostname | 15:55:37,548 INFO [stdout] (NioProcessor-28) upcoming handshake states: server finished[20]
my_hostname | 15:55:37,548 INFO [stdout] (NioProcessor-28) *** Finished
my_hostname | 15:55:37,549 INFO [stdout] (NioProcessor-28) verify_data: { 118, 34, 113, 228, 247, 234, 90, 205, 141, 172, 200, 231 }
my_hostname | 15:55:37,549 INFO [stdout] (NioProcessor-28) ***
my_hostname | 15:55:37,553 INFO [stdout] (NioProcessor-28) update handshake state: change_cipher_spec
my_hostname | 15:55:37,554 INFO [stdout] (NioProcessor-28) upcoming handshake states: server finished[20]
my_hostname | 15:55:37,554 INFO [stdout] (NioProcessor-28) NioProcessor-28, WRITE: TLSv1.2 Change Cipher Spec, length = 1
my_hostname | 15:55:37,555 INFO [stdout] (NioProcessor-28) *** Finished
my_hostname | 15:55:37,560 INFO [stdout] (NioProcessor-28) verify_data: { 66, 121, 143, 7, 121, 172, 211, 83, 5, 34, 144, 192 }
my_hostname | 15:55:37,561 INFO [stdout] (NioProcessor-28) ***
my_hostname | 15:55:37,561 INFO [stdout] (NioProcessor-28) update handshake state: finished[20]
my_hostname | 15:55:37,562 INFO [stdout] (NioProcessor-28) NioProcessor-28, WRITE: TLSv1.2 Handshake, length = 40
my_hostname | 15:55:37,562 INFO [stdout] (NioProcessor-28) %% Cached server session: [Session-9, TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256]
my_hostname | 15:55:37,610 INFO [org.red5.server.net.rtmps.RTMPSIoFilter] (NioProcessor-28) RTMPS Session id: CBN7YR9BFVO9W
my_hostname | 15:55:37,610 INFO [org.red5.server.net.rtmps.RTMPSIoFilter] (NioProcessor-28) Non-native RTMPS connection requested for: CBN7YR9BFVO9W
my_hostname | 15:55:47,324 WARN [org.red5.server.net.rtmp.RTMPConnection] (rtmpScheduler-1) Closing CBN7YR9BFVO9W, due to long handshake. State: connect
my_hostname | 15:55:47,326 INFO [stdout] (rtmpScheduler-1) rtmpScheduler-1, called closeOutbound()
my_hostname | 15:55:47,326 INFO [stdout] (rtmpScheduler-1) rtmpScheduler-1, closeOutboundInternal()
my_hostname | 15:55:47,326 INFO [stdout] (rtmpScheduler-1) rtmpScheduler-1, SEND TLSv1.2 ALERT: warning, description = close_notify
my_hostname | 15:55:47,327 INFO [stdout] (rtmpScheduler-1) rtmpScheduler-1, WRITE: TLSv1.2 Alert, length = 26
my_hostname | 15:55:47,328 INFO [org.red5.server.net.rtmp.RTMPMinaConnection] (NioProcessor-28) Connection is closed: CBN7YR9BFVO9W
my_hostname | 15:55:47,329 INFO [stdout] (NioProcessor-28) NioProcessor-28, called closeInbound()
my_hostname | 15:55:47,329 INFO [stdout] (NioProcessor-28) NioProcessor-28, fatal error: 80: Inbound closed before receiving peer's close_notify: possible truncation attack?
my_hostname | 15:55:47,329 INFO [stdout] (NioProcessor-28) javax.net.ssl.SSLException: Inbound closed before receiving peer's close_notify: possible truncation attack?
my_hostname | 15:55:47,329 INFO [stdout] (NioProcessor-28) %% Invalidated: [Session-9, TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256]
my_hostname | 15:55:47,330 INFO [stdout] (NioProcessor-28) NioProcessor-28, SEND TLSv1.2 ALERT: fatal, description = internal_error
my_hostname | 15:55:47,332 INFO [stdout] (NioProcessor-28) NioProcessor-28, Exception sending alert: java.io.IOException: writer side was already closed.
my_hostname | 15:55:47,332 INFO [stdout] (NioProcessor-28) NioProcessor-28, called closeOutbound()
my_hostname | 15:55:47,332 INFO [stdout] (NioProcessor-28) NioProcessor-28, closeOutboundInternal()
my_hostname | 15:55:47,332 WARN [org.red5.server.net.rtmp.RTMPMinaIoHandler] (NioProcessor-28) Connection was not found for CBN7YR9BFVO9W
my_hostname | 15:55:47,507 WARN [org.red5.server.net.rtmp.RTMPConnection] (rtmpScheduler-1) Closing LVI6J72JECMZ2, due to long handshake. State: connect
my_hostname | 15:55:47,512 INFO [stdout] (rtmpScheduler-1) rtmpScheduler-1, called closeOutbound()
my_hostname | 15:55:47,512 INFO [stdout] (rtmpScheduler-1) rtmpScheduler-1, closeOutboundInternal()
my_hostname | 15:55:47,513 INFO [org.red5.server.net.rtmp.RTMPMinaConnection] (NioProcessor-29) Connection is closed: LVI6J72JECMZ2
my_hostname | 15:55:47,513 INFO [stdout] (NioProcessor-29) NioProcessor-29, called closeInbound()
my_hostname | 15:55:47,513 INFO [stdout] (NioProcessor-29) NioProcessor-29, fatal error: 80: Inbound closed before receiving peer's close_notify: possible truncation attack?
my_hostname | 15:55:47,513 INFO [stdout] (NioProcessor-29) javax.net.ssl.SSLException: Inbound closed before receiving peer's close_notify: possible truncation attack?
my_hostname | 15:55:47,513 INFO [stdout] (NioProcessor-29) NioProcessor-29, SEND TLSv1.2 ALERT: fatal, description = internal_error
my_hostname | 15:55:47,513 INFO [stdout] (NioProcessor-29) NioProcessor-29, Exception sending alert: java.io.IOException: writer side was already closed.
my_hostname | 15:55:47,513 INFO [stdout] (NioProcessor-29) NioProcessor-29, called closeOutbound()
my_hostname | 15:55:47,513 INFO [stdout] (NioProcessor-29) NioProcessor-29, closeOutboundInternal()
my_hostname | 15:55:47,513 WARN [org.red5.server.net.rtmp.RTMPMinaIoHandler] (NioProcessor-29) Connection was not found for LVI6J72JECMZ2