From 425505990dfde1120de103d587b15342c0591825 Mon Sep 17 00:00:00 2001 From: Alex McKenzie Date: Tue, 7 May 2024 16:35:37 +1000 Subject: [PATCH] Allow a custom flashVer string --- rtmp/src/main/java/com/pedro/rtmp/rtmp/CommandsManager.kt | 5 +++++ .../src/main/java/com/pedro/rtmp/rtmp/CommandsManagerAmf0.kt | 2 +- .../src/main/java/com/pedro/rtmp/rtmp/CommandsManagerAmf3.kt | 2 +- rtmp/src/main/java/com/pedro/rtmp/rtmp/RtmpClient.kt | 4 ++++ 4 files changed, 11 insertions(+), 2 deletions(-) diff --git a/rtmp/src/main/java/com/pedro/rtmp/rtmp/CommandsManager.kt b/rtmp/src/main/java/com/pedro/rtmp/rtmp/CommandsManager.kt index eea0ed49f8..e5b0645977 100644 --- a/rtmp/src/main/java/com/pedro/rtmp/rtmp/CommandsManager.kt +++ b/rtmp/src/main/java/com/pedro/rtmp/rtmp/CommandsManager.kt @@ -49,6 +49,7 @@ abstract class CommandsManager { var appName = "" var streamName = "" var tcUrl = "" + var flashVer: String = "FMLE/3.0 (compatible; Lavf57.56.101)" var user: String? = null var password: String? = null var onAuth = false @@ -85,6 +86,10 @@ abstract class CommandsManager { this.password = password } + fun setFlashVer(flashVer: String) { + this.flashVer = flashVer + } + protected fun getCurrentTimestamp(): Int { return (TimeUtils.getCurrentTimeMillis() / 1000 - timestamp).toInt() } diff --git a/rtmp/src/main/java/com/pedro/rtmp/rtmp/CommandsManagerAmf0.kt b/rtmp/src/main/java/com/pedro/rtmp/rtmp/CommandsManagerAmf0.kt index 85dd4f2cba..fdae04aadc 100644 --- a/rtmp/src/main/java/com/pedro/rtmp/rtmp/CommandsManagerAmf0.kt +++ b/rtmp/src/main/java/com/pedro/rtmp/rtmp/CommandsManagerAmf0.kt @@ -40,7 +40,7 @@ class CommandsManagerAmf0: CommandsManager() { BasicHeader(ChunkType.TYPE_0, ChunkStreamId.OVER_CONNECTION.mark)) val connectInfo = AmfObject() connectInfo.setProperty("app", appName + auth) - connectInfo.setProperty("flashVer", "FMLE/3.0 (compatible; Lavf57.56.101)") + connectInfo.setProperty("flashVer", flashVer) connectInfo.setProperty("tcUrl", tcUrl + auth) if (!videoDisabled) { if (videoCodec == VideoCodec.H265) { diff --git a/rtmp/src/main/java/com/pedro/rtmp/rtmp/CommandsManagerAmf3.kt b/rtmp/src/main/java/com/pedro/rtmp/rtmp/CommandsManagerAmf3.kt index 354e8049fa..2db5d55701 100644 --- a/rtmp/src/main/java/com/pedro/rtmp/rtmp/CommandsManagerAmf3.kt +++ b/rtmp/src/main/java/com/pedro/rtmp/rtmp/CommandsManagerAmf3.kt @@ -42,7 +42,7 @@ class CommandsManagerAmf3: CommandsManager() { BasicHeader(ChunkType.TYPE_0, ChunkStreamId.OVER_CONNECTION.mark)) val connectInfo = Amf3Object() connectInfo.setProperty("app", appName + auth) - connectInfo.setProperty("flashVer", "FMLE/3.0 (compatible; Lavf57.56.101)") + connectInfo.setProperty("flashVer", flashVer) connectInfo.setProperty("tcUrl", tcUrl + auth) if (!videoDisabled) { if (videoCodec == VideoCodec.H265) { diff --git a/rtmp/src/main/java/com/pedro/rtmp/rtmp/RtmpClient.kt b/rtmp/src/main/java/com/pedro/rtmp/rtmp/RtmpClient.kt index 77d3aa122c..a240422ad9 100644 --- a/rtmp/src/main/java/com/pedro/rtmp/rtmp/RtmpClient.kt +++ b/rtmp/src/main/java/com/pedro/rtmp/rtmp/RtmpClient.kt @@ -187,6 +187,10 @@ class RtmpClient(private val connectChecker: ConnectChecker) { commandsManager.fps = fps } + fun setFlashVer(flashVer: String) { + commandsManager.flashVer = flashVer + } + fun connect(url: String?) { connect(url, false) }