diff --git a/.github/workflows/macos.yml b/.github/workflows/macos.yml index 105ba56..ba7a815 100644 --- a/.github/workflows/macos.yml +++ b/.github/workflows/macos.yml @@ -13,7 +13,7 @@ on: jobs: build: name: Build - runs-on: macos-latest + runs-on: macos-10.15 strategy: matrix: qt-ver: [5.15.1] diff --git a/QtScrcpy/device/device.cpp b/QtScrcpy/device/device.cpp index 7c833a9..98901d6 100644 --- a/QtScrcpy/device/device.cpp +++ b/QtScrcpy/device/device.cpp @@ -300,14 +300,14 @@ void Device::startServer() // support wireless connect, example: //m_server->start("192.168.0.174:5555", 27183, m_maxSize, m_bitRate, ""); // only one devices, serial can be null - // mark: crop input format: "width:height:x:y" or - for no crop, for example: "100:200:0:0" + // mark: crop input format: "width:height:x:y" or "" for no crop, for example: "100:200:0:0" Server::ServerParams params; params.serial = m_params.serial; params.localPort = m_params.localPort; params.maxSize = m_params.maxSize; params.bitRate = m_params.bitRate; params.maxFps = m_params.maxFps; - params.crop = "-"; + params.crop = ""; params.control = true; params.useReverse = m_params.useReverse; params.lockVideoOrientation = m_params.lockVideoOrientation; diff --git a/QtScrcpy/device/server/server.cpp b/QtScrcpy/device/server/server.cpp index 5616622..756da4b 100644 --- a/QtScrcpy/device/server/server.cpp +++ b/QtScrcpy/device/server/server.cpp @@ -142,27 +142,27 @@ bool Server::execute() args << "/"; // unused; args << "com.genymobile.scrcpy.Server"; args << Config::getInstance().getServerVersion(); - args << Config::getInstance().getLogLevel(); - args << QString::number(m_params.maxSize); - args << QString::number(m_params.bitRate); - args << QString::number(m_params.maxFps); - args << QString::number(m_params.lockVideoOrientation); - args << (m_tunnelForward ? "true" : "false"); + args << QString("log_level=%1").arg(Config::getInstance().getLogLevel()); + args << QString("max_size=%1").arg(QString::number(m_params.maxSize)); + args << QString("bit_rate=%1").arg(QString::number(m_params.bitRate)); + args << QString("max_fps=%1").arg(QString::number(m_params.maxFps)); + args << QString("lock_video_orientation=%1").arg(QString::number(m_params.lockVideoOrientation)); + args << QString("tunnel_forward=%1").arg((m_tunnelForward ? "true" : "false")); if (m_params.crop.isEmpty()) { - args << "-"; + args << "crop="; } else { - args << m_params.crop; + args << QString("crop=%1").arg(m_params.crop); } - args << "true"; // always send frame meta (packet boundaries + timestamp) - args << (m_params.control ? "true" : "false"); - args << "0"; // display id - args << "false"; // show touch - args << (m_params.stayAwake ? "true" : "false"); // stay awake + args << "send_frame_meta=true"; // always send frame meta (packet boundaries + timestamp) + args << QString("control=%1").arg((m_params.control ? "true" : "false")); + args << "display_id=0"; // display id + args << "show_touches=false"; // show touch + args << QString("stay_awake=%1").arg((m_params.stayAwake ? "true" : "false")); // stay awake // code option // https://github.com/Genymobile/scrcpy/commit/080a4ee3654a9b7e96c8ffe37474b5c21c02852a // - args << Config::getInstance().getCodecOptions(); - args << Config::getInstance().getCodecName(); + args << QString("codec_options=%1").arg(Config::getInstance().getCodecOptions()); + args << QString("encoder_name=%1").arg(Config::getInstance().getCodecName()); #ifdef SERVER_DEBUGGER qInfo("Server debugger waiting for a client on device port " SERVER_DEBUGGER_PORT "..."); @@ -176,7 +176,7 @@ bool Server::execute() #endif // adb -s P7C0218510000537 shell CLASSPATH=/data/local/tmp/scrcpy-server app_process / com.genymobile.scrcpy.Server 0 8000000 false - // mark: crop input format: "width:height:x:y" or - for no crop, for example: "100:200:0:0" + // mark: crop input format: "width:height:x:y" or "" for no crop, for example: "100:200:0:0" // 这条adb命令是阻塞运行的,m_serverProcess进程不会退出了 m_serverProcess.execute(m_params.serial, args); return true; diff --git a/QtScrcpy/device/server/server.h b/QtScrcpy/device/server/server.h index 496398b..1793576 100644 --- a/QtScrcpy/device/server/server.h +++ b/QtScrcpy/device/server/server.h @@ -31,7 +31,7 @@ public: quint16 maxSize = 720; // 视频分辨率 quint32 bitRate = 8000000; // 视频比特率 quint32 maxFps = 60; // 视频最大帧率 - QString crop = "-"; // 视频裁剪 + QString crop = ""; // 视频裁剪 bool control = true; // 安卓端是否接收键鼠控制 bool useReverse = true; // true:先使用adb reverse,失败后自动使用adb forward;false:直接使用adb forward int lockVideoOrientation = -1; // 是否锁定视频方向 diff --git a/QtScrcpy/util/config.cpp b/QtScrcpy/util/config.cpp index 60f6191..6c98b07 100644 --- a/QtScrcpy/util/config.cpp +++ b/QtScrcpy/util/config.cpp @@ -15,7 +15,7 @@ #define COMMON_PUSHFILE_DEF "/sdcard/" #define COMMON_SERVER_VERSION_KEY "ServerVersion" -#define COMMON_SERVER_VERSION_DEF "1.17" +#define COMMON_SERVER_VERSION_DEF "1.21" #define COMMON_SERVER_PATH_KEY "ServerPath" #define COMMON_SERVER_PATH_DEF "/data/local/tmp/scrcpy-server.jar" diff --git a/config/config.ini b/config/config.ini index 6b85845..7f61934 100644 --- a/config/config.ini +++ b/config/config.ini @@ -10,7 +10,7 @@ RenderExpiredFrames=0 # 视频解码方式:-1 自动,0 软解,1 dx硬解,2 opengl硬解 UseDesktopOpenGL=-1 # scrcpy-server的版本号(不要修改) -ServerVersion=1.17 +ServerVersion=1.21 # scrcpy-server推送到安卓设备的路径 ServerPath=/data/local/tmp/scrcpy-server.jar # 自定义adb路径,例如D:/android/tools/adb.exe @@ -18,10 +18,10 @@ AdbPath= # 编码选项 "-"表示默认 # 例如 CodecOptions="profile=1,level=2" # 更多编码选项参考 https://d.android.com/reference/android/media/MediaFormat -CodecOptions="-" +CodecOptions="" # 指定编码器名称,必须是H.264编码器 # 例如 CodecName="OMX.qcom.video.encoder.avc" -CodecName="-" +CodecName="OMX.qcom.video.encoder.avc" # Set the log level (debug, info, warn, error) LogLevel=info diff --git a/third_party/scrcpy-server b/third_party/scrcpy-server index ab38830..c04e181 100644 Binary files a/third_party/scrcpy-server and b/third_party/scrcpy-server differ