概述
在 Ubuntu 20.04 系统上,由于包管理器版本可能滞后,建议通过源码编译安装最新版本的 scrcpy。
步骤 1:安装必要的依赖
sudo apt install ffmpeg libsdl2-2.0-0 adb wget gcc git pkg-config meson ninja-build libsdl2-dev \
libavcodec-dev libavdevice-dev libavformat-dev libavutil-dev \
libswresample-dev libusb-1.0-0 libusb-1.0-0-dev
步骤 2:克隆代码
git clone https://github.com/Genymobile/scrcpy
cd scrcpy
步骤 3:修改代码以适配编译环境
为了编译通过,需要针对 libavcodec 兼容性修改部分头文件引用。执行以下补丁操作:
diff --git a/app/src/decoder.c b/app/src/decoder.c
index 4d0a1daf..a7f7196 100644
--- a/app/src/decoder.c
+++ b/app/src/decoder.c
@@ -1,7 +1,8 @@
#include "decoder.h"
#include <errno.h>
-#include <libavcodec/packet.h>
+//#include <libavcodec/packet.h>
+#include <libavcodec/avcodec.h>
+#include <libavutil/avutil.h>
#include "util/log.h"
diff --git a/app/src/packet_merger.h b/app/src/packet_merger.h
index 3f9972ce..6b0da13 100644
--- a/app/src/packet_merger.h
+++ b/app/src/packet_merger.h
@@ -5,7 +5,8 @@
#include <stdbool.h>
#include <stdint.h>
-#include <libavcodec/packet.h>
+// #include <libavcodec/packet.h>
+#include <libavcodec/avcodec.h>
/**
* Config packets (containing the SPS/PPS) are sent in-band. A new config
diff --git a/app/src/recorder.h b/app/src/recorder.h
index 70b3836..4471108 100644
--- a/app/src/recorder.h
+++ b/app/src/recorder.h
@@ -5,7 +5,8 @@
#include <stdbool.h>
#include <stdint.h>
-#include <libavcodec/packet.h>
#include "options.h"


