출처: https://kibua20.tistory.com/138
github: https://github.com/Genymobile/scrcpy
안드로이드 화면 미러링 앱은 PlayStore에도 많지만 광고가 포함된 유료 앱도 많아 무료로 사용할 수 있는 오픈 소스 기반을 scrcpy를 설명하고자 합니다.
scrcpy의 설치 방법 및 활용 방법은 아래 동영상에 잘 설명되어 있습니다.
scrcpy 설치는 github 사이트에도 가능하고 apt로 설치가 가능합니다.
#우분투 설치 (v1.12버전이 설치됩니다. 최신 버전은 git hub에서 빌드 방법을 확인해주세요.)
$ sudo apt install scrcpy
# Windows 설치: v1.17이 최신 버전입니다.
github.com/Genymobile/scrcpy/releases/download/v1.16/scrcpy-win64-v1.16.zip
github.com/Genymobile/scrcpy/releases/download/v1.17/scrcpy-win64-v1.17.zip
※ V1.17의 변경 사항
은 github.com/Genymobile/scrcpy/releases/tag/v1.17 를 참고해주세요. V1.6 대비해서 ① Android 11에서 -- show-touches 와 --stay-awake 에러 수정, ②마우스 클릭 수정 (마우스 오른쪽 키는 Back키 삽입하고 Mid키는 홈키 삽입), ③ Copy-Paste 오류 수정, ④ screen off Work aroud 적용 ⑤ Encoder 옵션 적용 등이 개선되었다고 합니다.
안드로이드 폰에 adb 연결 설정이 필요합니다. 안드로이드 폰에서 개발자 메뉴의 USB 디버깅을 Enable 해야 합니다. 안드로이드 폰 시스템 설정 > 소프트웨어 정보 > 빌드 번호를 3번 이상 클릭하여 '개발자 메뉴'를 활성화하고 하고, 개발자 메뉴에서 'USB 디버깅' 메뉴를 활성화해야 합니다. 상세 내용은 링크를 확인해주세요.
adb 처음 연결하는 경우 'USB 디버깅을 항상 허용할까요' 라는 팝업을 표시하고 이때 '확인' 버튼을 눌러야 합니다.
안드로이드 폰에서 설정이 정상적으로 되었다면 PC와 연결 후 adb devices 명령어로 Device ID 확인이 가능해야 합니다.
$ adb devices
List of devices attached
LGMV300L45212cca device
scrcpy를 실행하면 아래와 같이 핸드폰 화면이 미러링 됩니다. 이 상태에서 USB Audio를 통해서 소리도 전달되면 PC에서 마우스 및 키보드 전달도 가능합니다.
scrcpy를 실행 옵션은 아래와 같습니다. USB 연결에서는 특별한 옵션이 필요 없고, WiFi 연결 시에서는 bitrate과 fps조절이 필요합니다.
--always-on-top Make scrcpy window always on top (above other windows).
-b, --bit-rate value Encode the video at the given bit-rate, expressed in bits/s.
--crop width:height:x:y Crop the device screen on the server. The values are expressed in the device natural orientation
-f, --fullscreen Start in fullscreen.
--max-fps value Limit the frame rate of screen capture (only supported on devices with Android >= 10).
-m, --max-size value Limit both the width and height of the video to value. The other dimension is computed so that the device aspect-ratio is preserved. Default is 0 (unlimited).
-n, --no-control: Disable device control (mirror the device in read-only).
-N, --no-display Do not display device (only when screen recording is enabled).
-p, --port port Set the TCP port the client listens on. Default is 27183.
-s, --serial serial The device serial number. Mandatory only if several devices are connected to adb.
-S, --turn-screen-off Turn the device screen off immediately.
-t, --show-touches Enable "show touches" on start, disable on quit. It only shows physical touches (not clicks from scrcpy).
스마트 폰 화면을 MP4 동영상으로 화면 녹화가 가능합니다.
$ scrcpy --record file.mp4 (또는 file.mkv)
#화면 미러 없이 저장. Ctrl+C로 끝냄
$ scrcpy --no-display --record file.mp4 scrcpy -Nr file.mkv
# interrupt recording wit
adb의 WiFi 연결 기능을 활용해서 미러링이 가능합니다. 스마트 폰을 PC와 같은 공유기에 연결하고 「스마트 폰의 IP 주소」로 연결해야 합니다.
1. PC와 스마트폰을 같은 WiFi AP 공유기에 연결
2. 스마트폰을 컴퓨터에 USB로 연결하고, 터미널 (or cmd 창)에서 아래 명령어를 입력해주세요.
$ adb tcpip 5555
(성공 시) : restarting in TCP mode port: 5555
* 매번 USB연결이 귀찮다면 setprop
$ adb shell setprop service.adb.tcp.port 5555
3. 스마트 폰의 USB 연결을 해제하고 터미널에서 아래 명령어로 무선 연결
$adb connect <Smart Phone IP>:5555
* 스마트폰 설정 > 휴대폰 정보 > IP주소 메뉴에서 연결된 IP 주소 확인 가능합니다. 또는 터미널에서 $ adb shell ifconfig 명령어로 확인 가능합니다.
4. PC에서 scrcpy 실행, 무선 연결 상태에서 bitrate을 낮게 설정해야 화면 delay가 없습니다.
$ scrcpy --bit-rate 2M --max-size 800
$ scrcpy -b2M -m800
모바일 네트워크에서 테스트하면 아래와 같이 사설IP와 공인IP모두 adb로 연결이 안됩니다. adb자체가 지원하지 않을 수 있고 통신사의 Gateway에서 막혀 있을 수 있을 것 같네요. 연결 방법을 찾으시는 분은 댓글로 남겨주세요.
댓글 중에 VPN으로 성공한 사례가 있어 내용을 추가합니다. PC-공유기를 동일한 망에 놓고 공유기의 VPN을 통해서 모바일 네트워크로 연결하면 가능하다고 합니다.
scrcpy 에서 한글 입력이 일부 화면에서는 한글 입력 시 server 에러 메시지를 출력하면서 입력이 되지 않습니다. 하지만, 한글 입력기 (IME)을 띄운 상태에서 PC에서 한글 입력 시 정상적으로 입력이 가능합니다. (※알키보드 사용시에도 잘 동작한다고 함)
한/영키 전환 시 버그는 있지만 사용 가능한 수준입니다. 스마트 폰 입력기에서 한글/영문을 전환할 수 있고, PC에서는 한/영키가 안되면 Shift+Space으로 시도 해보시면 전환됩니다. (확인 버전 scrcpy v1.16 + LG Velvet)
스마트 폰 화면은 Off 상태에서 PC 화면만 미러링하는 경우에는 -S 옵션으로 실행하고, LCD off 상태에서는 마우스 오른쪽 Key로 누르면 다시 켜집니다.
# 스마트폰 LCD off 하고 PC 미러링 화면만 켜기
$ scrcpy -S
# Display off상태에서 다시 on하는 경우
# 마우스 오른쪽 키
스마트 폰 화면은 항상 켜져 있는 상태를 유지하기 위해서는 -W을 사용할 수 있습니다. Display off 시 잠금 화면을 해제하는 것이 가끔 불편할 수 있습니다. 스마트 폰과 USB를 연결한 상태에서 저속 충전(500mA) 수준으로 충전하고 있어 장시간 사용 가능합니다.
# 스마트폰 Alwayse on
$ scrcpy -W
PC에서 미러링하는 화면이 너무 큰 경우 아래와 명령어로 사이즈 조절이 가능합니다. Aspect ratio은 유지하고 화면 크기를 조정합니다. 기본 값을 0 (unlimited) 입니다.
$scrcpy --max-size 860
기능 | 단축키 (MOD = (left) Alt or (left) Super) |
Switch fullscreen mode | MOD+f |
Rotate display left | MOD+← (left) |
Rotate display right | MOD+→ (right) |
Resize window to 1:1 (pixel-perfect) | MOD+g |
Resize window to remove black borders | MOD+w | Double-click¹ |
Click on HOME | MOD+h | Middle-click |
Click on BACK | MOD+b | Right-click² |
Click on APP_SWITCH | MOD+s |
Click on MENU (unlock screen) | MOD+m |
Click on VOLUME_UP | MOD+↑ (up) |
Click on VOLUME_DOWN | MOD+↓ (down) |
Click on POWER | MOD+p |
Power on | Right-click² |
Turn device screen off (keep mirroring) | MOD+o |
Turn device screen on | MOD+Shift+o |
Rotate device screen | MOD+r |
Expand notification panel | MOD+n |
Collapse notification panel | MOD+Shift+n |
Copy to clipboard³ | MOD+c |
Cut to clipboard³ | MOD+x |
Synchronize clipboards and paste³ | MOD+v |
Inject computer clipboard text | MOD+Shift+v |
Enable/disable FPS counter (on stdout) | MOD+i |
Pinch-to-zoom | Ctrl+click-and-move |
¹Double-click on black borders to remove them.
²Right-click turns the screen on if it was off, presses BACK otherwise.
³Only on Android >= 7.
scrcpy fork 중에서는 GUI 버전이 있어 소개합니다. scrcpy-gui의 Git Hub사이트에서 다운로드 가능합며 설치 파일은 링크에서 다운로 할 수 있습니다. scrcpy-gui는 동작은 잘 하지만 GUI가 중국어로 나와서 불편합니다. (영어로 어떻게 변경하는지는 문의 중입니다.) scrcpy를 실행하면 상단 인디케이터 영역에 scrcpy 아이콘 생성되고 'Language' 메뉴에서 영어로 선택하면 영어로 사용 가능합니다.
#우분투에서 설치
$ sudo apt-get install gconf2 libappindicator1
$ sudo dpkg -i ScrcpyGui-1.5.1.deb
scrcpy 자체로는 사운드 미러링을 지원하고 있지 않습니다. Sound 미러링은 sndcpy를 사용해야 합니다. scrcpy와 sndcpy는 동시에 사용 가능합니다. sndcpy를 사용하기 위해서는 PC 에 VLC가 미리 설치되어 있어야하고 Android 10 (Q-OS)부터 가능합니다. sndcpy에 대한 설명은 아래 포스팅을 확인해주세요.
Designed by sketchbooks.co.kr / sketchbook5 board skin
Sketchbook5, 스케치북5
Sketchbook5, 스케치북5
Sketchbook5, 스케치북5
Sketchbook5, 스케치북5