113 lines
4.9 KiB
Markdown
113 lines
4.9 KiB
Markdown
|
#Scrcpy
|
||
|
|
||
|
|
||
|
[[Android ADB 명령어]]
|
||
|
|
||
|
- 화면 강제 OFF
|
||
|
> scrcpy --turn-screen-off
|
||
|
|
||
|
- 잠자기 모드를 방지하면서 물리적 화면을 끄기
|
||
|
> scrcpy --turn-screen-off --stay-awake
|
||
|
> scrcpy -Sw
|
||
|
|
||
|
- scrcpy를 닫을 때 기기의 화면을 OFF
|
||
|
> scrcpy --power-off-on-close
|
||
|
|
||
|
- OTG - on the go 모드 (USB연결 필요)
|
||
|
>scrcpy --otg
|
||
|
>scrcpy --hid-keyboard --hid-mouse
|
||
|
|
||
|
- 손가락으로 물리적 터치한 영역 표시
|
||
|
>scrcpy --show-touches
|
||
|
scrcpy -t
|
||
|
|
||
|
- PC의 스크린세이버 동작OFF
|
||
|
> scrcpy --disable-screensaver
|
||
|
|
||
|
- APP자동 복사 경로 지정
|
||
|
> scrcpy --push-target=/sdcard/Movies/
|
||
|
|
||
|
- 화면 사이즈 제한
|
||
|
>scrcpy --max-size 1024
|
||
|
scrcpy -m 1024 # short version
|
||
|
|
||
|
- 비트레이트 변경 (기본 8M)
|
||
|
>scrcpy --bit-rate 2M # M(메가)단위의 숫자 혹은 K(킬로)단위도 가능하다.
|
||
|
scrcpy -b 2M # short version
|
||
|
|
||
|
- 프레임레이트 제한
|
||
|
> scrcpy --max-fps 15 # 숫자는 fps를 자유롭게 입력
|
||
|
|
||
|
- 크롭(특정부위만 잘라서 표시, --max-size옵션을 같이 사용시 우선순위 주의)
|
||
|
> scrcpy --crop 1224:1440:0:0 # 1224x1440 at offset (0,0)
|
||
|
|
||
|
|
||
|
- 화면 회전 고정
|
||
|
>scrcpy --lock-video-orientation # 현재 화면 회전 상태로 지정
|
||
|
scrcpy --lock-video-orientation=0 # 0° 회전으로 지정
|
||
|
scrcpy --lock-video-orientation=1 # 90° 회전으로 지정
|
||
|
scrcpy --lock-video-orientation=2 # 180° 회전으로 지정
|
||
|
scrcpy --lock-video-orientation=3 # 90° 시계방향으로 돌려서 지정
|
||
|
|
||
|
- 렌더링을 위한 인코더 지정
|
||
|
(부 기기에서는 scrcpy 사용 중 종료되거나 크래시 되는 경우 다른 인코더를 사용 하면 해결될 수 있음)
|
||
|
> # 인코더 확인
|
||
|
> scrcpy --encoder _
|
||
|
>
|
||
|
> # 인코더 적용
|
||
|
> scrcpy --encoder {OMX.qcom.video.encoder.avc}
|
||
|
|
||
|
- 화면녹화
|
||
|
>scrcpy --record file.mp4 # 긴 명령어
|
||
|
scrcpy -r file.mkv # 짧은 명령어
|
||
|
- 러링 없이 파일로만 녹화
|
||
|
>scrcpy --no-display --record file.mp4
|
||
|
scrcpy -Nr file.mkv
|
||
|
># 만약 녹화를 중단하고 싶다면, 명령 프롬프트에서 Ctrl+C를 누르면 중단이 가능하다.
|
||
|
- 녹화 버퍼링 지정
|
||
|
> scrcpy --display-buffer=50 # 화면 표시를 50ms 지연시키고 싶은 경우
|
||
|
|
||
|
|
||
|
- 읽기전용
|
||
|
>scrcpy --no-control
|
||
|
scrcpy -n
|
||
|
|
||
|
|
||
|
***
|
||
|
|
||
|
### 터널링
|
||
|
```CMD
|
||
|
원격에 있는 기기를 연결하기 위해 로컬의 adb 클라이언트로 원격의 adb 서버에 연결하는 것이 가능하다.(물론 adb 프로토콜은 같은 버전을 사용해야 한다는 전제조건이다.)
|
||
|
아래와 같이 진행하면 된다. 먼저 adb 서버를 실행할 곳에서는 서버를 시작해야 한다.
|
||
|
|
||
|
adb kill-server
|
||
|
adb -a nodaemon server start
|
||
|
# 계속 유지해야 한다.
|
||
|
|
||
|
만약 이 서버에 192.168.1.2로 접근할 수 있다고 가정하면, 다른 터미널에서 scrcpy를 이렇게 실행해 둔다.
|
||
|
기본적으로 scrcpy는 adb 포워딩 터널 연결에 사용되는 로컬 포트를 사용한다.(일반적으로 27183포트이고, --port명령으로 확인하면 된다.) 필요하다면 다른 터널 포트를 지정하여 강제로 실행하는 것도 가능하다.
|
||
|
|
||
|
export ADB_SERVER_SOCKET=tcp:192.168.1.2:5037
|
||
|
scrcpy --tunnel-host=192.168.1.2 # 터널의 호스트 IP 지정
|
||
|
scrcpy --tunnel-port=1234 # 포트를 지정하고 싶은 경우
|
||
|
터널을 이용한 이런 기법은 여러 안드로이드 기기를 한 곳에서 서버의 역할을 하는 피씨를 전용으로 두고 한 팀에서 공용으로 접근하기 위해서 사용하는 것이 좋을 것 같다.
|
||
|
adb 서버 연결을 안전하게 하기 위해서는 SSH 터널링을 사용하는 것이 좋다. 먼저 adb 서버가 원격 컴퓨터에서 실행중인지 확인하고 실행중이 아니라면 시작해 준다.
|
||
|
adb start-server
|
||
|
그리고 SSH 터널링 연결해준다.
|
||
|
# 로컬 5038포트에서 --> 원격 5037 포트로 연결하고
|
||
|
# 로컬 27183포트로 <-- 원격 27183 포트에서 연결하기를 원한다면
|
||
|
ssh -CN -L5038:localhost:5037 -R27183:localhost:27183 your_remote_computer
|
||
|
# 이 연결을 유지해준다.
|
||
|
ssh 연결을 유지한 상태에서 다른 터미널을 열어 scrcpy를 실행해 준다.
|
||
|
export ADB_SERVER_SOCKET=tcp:localhost:5038
|
||
|
scrcpy
|
||
|
위와는 다른 방법으로 만약, 네트워크 구성에 따라 원격 포트 포워딩을 활성화 하고 싶지 않다면, 대신 포트 포워딩 연결을 강제할 수 있다. 방향을 로컬에서 리모트로만 진행될 수 있도록 할 수 있다. 뒤에서 -R대신 -L로 입력해 준다.
|
||
|
# 로컬 5038포트에서 --> 원격 5037 포트로 연결하고
|
||
|
# 로컬 27183포트에서 --> 원격 27183 포트로 연결하기를 원한다면
|
||
|
ssh -CN -L5038:localhost:5037 -L27183:localhost:27183 your_remote_computer
|
||
|
# 이렇게 연결하고 연결을 유지한다.
|
||
|
이 상태에서 다른 터미널을 열고 아래와 같이 scrcpy를 실행해 준다.
|
||
|
export ADB_SERVER_SOCKET=tcp:localhost:5038
|
||
|
scrcpy --force-adb-forward -b2M -m800 --max-fps 15
|
||
|
|
||
|
```
|