본문 바로가기
SW 개발/Android

안드로이드 스마트 폰 화면 미러링 방법: scrcpy 사용법

by 모바일 SW 개발자 Kibua20 2021. 8. 15.
반응형

안드로이드 스마트 폰 화면을 PC로 미러링 하는 방법을 설명하도록 하겠습니다.

 

스마트 폰 화면을 그대로 PC에 가져오는 것 뿐만 아니라, 사운드 전송, 마우스로 원격 클릭 및 키보드 입력 값을 전달하여 제어도 가능합니다.   안드로이드 개발자 분에게는 PC에서 원격 디버깅에 활용할 수 있으며,  일반적으로는 회사 보안 정책 상 PC에 카카오톡이 설치가 막혀있는 경우 폰의 카카오톡을 PC에서 사용 가능합니다.  

 

안드로이드 화면 미러링 앱은 PlayStore에도 많지만 광고가 포함된 유료 앱도 많아 무료로 사용할 수 있는 오픈 소스 기반을 scrcpy를 설명하고자 합니다. 

 

scrcpy 활용 예

  • 안드로이드 화면/오디오을 PC에 띄우는 경우 (비디오 뿐 아니라 오디오도 전송함)
  • 안드로이드 스마트 폰 원격 디버깅 (USB, WiFi 연결 가능)
  • 스마트 폰의 카카오톡을 PC에서 사용 (회사 보안 상 PC 카톡 설치가 불가한 경우 유용함) -> 한글 입력 지원 
  • 회사 보안 프로그램에 영향없이 스마트폰 기능을 데모할때 유용함 (스마트폰 - PC - 프로젝트 연결)
  • 스마트 폰 화면을 녹화 저장 (e.g. 게임 녹화), 화면 캡쳐 (은행 앱 처럼 FLAG_SECURE 설정된 화면도 캡쳐)
  • 복수의 스마폰을 하나의 PC 에서 사용할 때

 

scrcpy 특징

  • lightness (native, displays only the device screen): adb를 사용하고 있고 실행 파일만 설치하면 됩니다. 최근 버전에서는 멀티 display도 지원합니다. 
  • performance (30~60fps):  유선 8 Mbps로 기본 설정되어 있고, 무선은  2 Mbps로 설정하면 영화 감상에도 큰 무리가 없는 수준입니다.
  • quality (1920×1080 or above): 고해상도 지원합니다. 명령어 옵션으로 해상도 및  crop도 가능함
  • low latency (35~70ms) :  실시간 반응성이 좋습니다. 
  • low startup time (~1 second to display the first image):  첫 화면에 나오는데 빠른 시간을 보장합니다. 
  • non-intrusiveness (nothing is left installed on the device):   단말에 특별한 설치 프로그램 필요 없습니다.

scrcpy의 설치 방법 및 활용 방법은 아래 동영상에 잘 설명되어 있습니다.

출처: www.youtube.com/watch?v=zZDkK3A-qKE

 

1. 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 디버깅' 설정을 enable해야 함

안드로이드 폰에 adb 연결 설정이 필요합니다.  안드로이드 폰에서 개발자 메뉴의 USB 디버깅을  Enable 해야 합니다.  안드로이드 폰 시스템 설정 > 소프트웨어 정보 > 빌드 번호를 3번 이상 클릭하여 '개발자 메뉴'를 활성화하고 하고, 개발자 메뉴에서 'USB 디버깅' 메뉴를 활성화해야 합니다. 상세 내용은 링크를 확인해주세요. 

 

adb  처음 연결하는 경우 'USB 디버깅을  항상 허용할까요' 라는 팝업을 표시하고 이때 '확인' 버튼을 눌러야 합니다. 

 

안드로이드 폰에서 설정이 정상적으로 되었다면 PC와 연결 후 adb devices 명령어로 Device ID 확인이 가능해야 합니다.

 

$ adb devices 

List of devices attached
LGMV300L45212cca device

 

2. scrcpy 실행

scrcpy를 실행하면 아래와 같이 핸드폰 화면이 미러링 됩니다.  이 상태에서 USB Audio를 통해서 소리도 전달되면 PC에서 마우스 및 키보드 전달도 가능합니다. 

 

scrcpy 실행

 

 

3. 실행 옵션 

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). 
 

4. 화면 녹화

스마트 폰 화면을 MP4 동영상으로 화면 녹화가 가능합니다.  

 

$ scrcpy --record file.mp4    (또는 file.mkv)

 

#화면 미러 없이 저장. Ctrl+C로 끝냄

$ scrcpy --no-display --record file.mp4 scrcpy -Nr file.mkv

# interrupt recording wit

 

 

 

4. WiFi 연결 상태에서 화면 미러링

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 명령어로 확인 가능합니다. 

스마트 폰의 IP 주소 확인

 

4. PC에서 scrcpy 실행,  무선 연결 상태에서  bitrate을 낮게 설정해야 화면 delay가 없습니다. 

     $ scrcpy --bit-rate 2M --max-size 800

     $ scrcpy -b2M -m800

WiFi 연결 상태에서 화면 미러링

 

모바일 네트워크 확인 - 미지원

모바일 네트워크에서 테스트하면 아래와 같이 사설IP와 공인IP모두 adb로 연결이 안됩니다. adb자체가 지원하지 않을 수 있고 통신사의 Gateway에서 막혀 있을 수 있을 것 같네요. 연결 방법을 찾으시는 분은 댓글로 남겨주세요.

 

모바일 네트워크에서는 adb connect가 지원되지 않음

댓글 중에 VPN으로 성공한 사례가 있어 내용을 추가합니다. PC-공유기를 동일한 망에 놓고 공유기의 VPN을 통해서 모바일 네트워크로 연결하면 가능하다고 합니다. 

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.

 

5. scrcpy GUI 버전

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 GUI 버전 (출처: https://github.com/Tomotoes/scrcpy-gui)

 

6. SCRCPY 소리 미러링

scrcpy 자체로는 사운드 미러링을 지원하고 있지 않습니다.  Sound 미러링은 sndcpy를 사용해야 합니다. scrcpy와 sndcpy는 동시에 사용 가능합니다.  sndcpy를 사용하기 위해서는 PC 에 VLC가 미리 설치되어 있어야하고 Android 10 (Q-OS)부터 가능합니다.  sndcpy에 대한 설명은 아래 포스팅을 확인해주세요.

 

 

관련 글:

[블로그 관리/티스토리 블로그 관리] - 파이썬 Selenium을 활용한 네이버 서치어드바이저 URL 입력 '자동화'

[개발환경/Tips] - 네이버 동영상 다운로드 방법 (동영상과 설명 포함)

[모바일 SW 개발/Android] - Android 에서 리눅스 App 실행: Linux Terminal Emulator (Termux) 활용

[모바일 SW 개발/Android] - Android에서 Python 실행 (SL4A와 Termux 활용)

[모바일 SW 개발/Android] - Android apkanalyzer 에러: java.lang.NoClassDefFoundError: javax/xml/bind/annotation/XmlSchema

[모바일 SW 개발/Android] - Command line 기반 Android Apk 분석 툴: apkanalyzer

[모바일 SW 개발/Python] - 파이썬으로 Apk Download 자동화: Selenium기반의 Apk 크롤러

[모바일 SW 개발/Android] - Android 소스 최적화 (100GB에서 65GB로 줄이기)

[모바일 SW 개발/Android] - Android 11 (R-OS) Emulator에 설치하기

[모바일 SW 개발/Android] - Android 11 기능 소개

[모바일 SW 개발/Android] - Ubuntu에서 Android 10 빌드하기

반응형



댓글67

    이전 댓글 더보기
  • 무우 2020.10.30 18:17

    알키보드쓰면 한글입려 매끄럽게 잘됩니다 참고하세요~
    아 그리고 위에분 마우스 가운데버튼눌러보세요
    화면켜질꺼에요
    답글

  • 응가맨 2020.10.31 14:25

    소리도 같이 미러링하고 싶은데 잘 안되네요... 혹시 그것에 대한 자세한 설명은 없을까요?
    답글

  • 좋은 정보받고 구독하고 갑니다!!!자주 소통해요 ㅎ
    답글

  • 박범진 2020.11.23 10:17

    홍미노트9s 사용중인데 무선연결 할떼마다 멸령어

    adb.exe tcpip 5555
    adb.exe connect ip :5555
    scrcpy.exe -s ip :5555

    입력해야 하나요? 다른방법 없나요?
    답글

  • unclesto 2020.12.10 14:29

    두대의 스마트폰을 동시에 미러링 할 수 있는 방법은 없나요??
    답글

  • Favicon of https://nmmmblog.tistory.com BlogIcon 남무맘무 2020.12.23 11:26 신고

    저는 화면은 미러링이 되는데 오디오는 넘어오질 않네요 ㅠㅠ 그에 대한 설명 해주실 수 있을까요??
    답글

  • Favicon of https://seulseonsaeng.tistory.com BlogIcon 슬선생 2021.01.07 18:21 신고

    이거 간혹 필요한 기능인데 감사합니다!
    답글

  • 고양이 2021.01.13 04:21

    프로그램 리뷰 찾던중인데 정성스럽게 작성된 글을보니 기분이 좋군요!! 잘보고갑니다. 하나 질문이 있는데요.
    스마트폰 3대까지 멀티옵션으로 미러링까진 성공했는데,
    연결된 디바이스 3개를 동시에 제어하는 기능도 있을까요?
    1번 스마트폰만 제어해도 2,3번 스마트폰도 동시에 동일하게 동작하는거요. 업무상 단순반복작업이 힘드네요.
    답글

    • 제가 알기로는 Adb에서 각각 제어하게 되었이어 한번에 3대 제어는 안될 것 같습니다. 동작 스크립트를 만들어 각각 디바이스에 동작시켜야 할 것 같습느다. 어떤 일을 하시는지 물어봐도 될까요?

  • 박범진 2021.01.20 22:55

    안녕하세요. scrcpy 프로그램 잘사용하고있습니다.

    제가 지채장애라서 모바일기기를 직접터치 못해서 컴퓨터에서 애니데스크 원격제어로 마우스클릭으로

    모바일기기 사용했는데 애니데스크가 업데이트 되면서 원격제어가 안됩니다. scrcpy 로 하면 되는데 다른 프로그램도 있나요?

    팀뷰어도 원격제어 안됩니다.

    사용하는 기기 > 홍미노트9s / 2019 파이어 hd 10.1
    답글

    • scrcpy와 유사한 프로그램으로 미러드로이드가 있습니다. 저도 이번 주에 리뷰 후 포스팅 예정입니다. 아래 설치 링크입니다.
      https://kr.mirroid.io/?utm_source=tstory_mobaswgb

    • BlogIcon 박범진 2021.01.21 14:21

      핸드폰은 미러로이드로 원격가능합니다

      2019 파이어 hd 10.1

      태블릿pc 는 연결이 안되는데 태블릿 원격제어는 어떻게하나요? scrcpy도 안되네요.

    • 아마존에서 만든 파이어 테블릿이네요. 저도 말로만 들었지 실제로 본적은 없네요.

      아마존 파이어는 안드로이드 오픈 소스로 개발된 것으로 알고 있으나 호환성은 보장이 안될 것 같습니다.

      scrcpy나 미러드로이드는 adb 기반으로 만들어진 앱들이라 해당 테블릿에서는 호환 안될 것 같습니다. 해당 제조사로 문의해보세요.

    • BlogIcon 박범진 2021.01.24 11:25

      미러로이드에 카톡,메일 문의해도 답이없네요. 애니데스크 구버전으로 설치하니깐 태블릿 원격 다시 되네요.

      태블릿도 원격제어 가능한 프로그램 없을가요?

    • 문의 해주신 내용은 저도 잘 모르겠습니다.

  • 미스양 2021.01.22 18:10

    안녕하세요. 많은 도움이 되었습니다.

    TCP연결에 대해서는 컴퓨터IP가 아닌 기기의 IP주소를 적어야해요 ㅎㅎ

    감사합니다~
    답글

  • 라이몬디 2021.01.31 22:30

    정말 감사합니다. 많은 정보 얻고갑니다 :D
    답글

  • 캐릭터 2021.02.02 12:54

    안녕하세요. 이글보고 미러링 연결은 했는데 폰에서는 소리가 나오는데 pc에서 소리가 나오지 않네요 ㅠㅠ
    usb 선을 그냥 충전용 일반으로 꽂아서 그런걸까요?? ㅠㅠ
    답글

  • Favicon of https://daebakstock.tistory.com BlogIcon 대박스탁 2021.04.29 22:07 신고

    좋은 정보 잘 읽고 갑니다
    어느덧 목요일까지 달려왔네요 편안한 밤되시고 편안한 밤 되세요
    답글

  • 꿀짱구 2021.07.07 20:05

    유용한 정보 너무나 감사합니다.
    소리까지 연결하는데 성공했지만..
    저장 명령어중 scrcpy --record file.mp4
    입력을 하면 이게 녹화가 되는것인지 아무런 반응이 없습니다.
    파일명을 따로 설정할수 없는가여?
    녹화가 된다면 pc에 저장이 되는건가여? 아니면 폰에 저장이 되는건가여?
    답글

  • 꿀짱구 2021.07.09 02:32

    화면녹화 알려주셔서 감사합니다.
    다름이 아니라 화면녹화를 하니깐 녹화는 고화질로 잘 되지만
    영상만 나오고 사운드가 나오지 않더라구요.
    소리도 같이 녹음하는 방법이 있을까여?
    답글

  • 네트워크 2021.07.23 21:18

    모바일 네트워크 연결의 경우 직접적인 연결은 아니지만 공유기에서 vpn 기능 지원 시 vpn 연결 등을 통해서 우회하는 방식으로 연결은 가능하더라구요
    답글

    • 우아!!. vpn은 생각지도 못했네요. 연결 구성도가 잘 떠오르지 않은데요. 어뗗게 구성하신거에요?

    • 네트워크 2021.07.23 22:44

      'pc - 공유기 - 동일 망에 연결된 스마트폰'이었다면
      vpn이 어떻게 보면 해당 망으로 연결하는거다보니깐
      'pc - 공유기(vpn 기능 지원) - 공유기 vpn에 연결된 스마트폰'을 구성으로 공유기에서 vpn 설정 시 할당하는 내부망 IP로 와이파이로 연결하는 방식과 동일하게 연결하여보니 연결이 되더라구요.

  • 외장프로젝터로 2021.07.28 16:10

    좋은 글 감사합니다!
    혹시 핸드폰(안드로이드) 화면을 외장 프로젝터로 미러링하는 것은 어떤 방법이 제일 좋을까요?
    핸드폰에 USB C - VGA 젠더로 프로젝터에 연결을 해야 합니다. 핸드폰에서는 HDMI 젠더를 바꿔보라는 에러 메세지만 나오고 화면이 안나오네요. low latency 로 720p 정도만 프로젝터로 쏴도 됩니다.
    혹시 아시면 조언 부탁드립니다!
    답글

    • 핸드폰하고 프로젝터에 따라서 방법이 달라질 것 같습니다.

      1. 유선 Display port (USB type C to HDMI)
      : 단말에서 DP 기능을 지원하면 제일 편합니다. 하지만 미지원 단말이 많고, 기능을 지원하더라도 안정성이 떨어지는 경우가 많습니다. 혹시 기능이 지원되는 단말이면 "비행기 모드"로 설정하면 쫌 나아집니다.

      2. 무선 연결 Miracast
      720p이면 충분합니다.

      3. SD 카드로 영화 copy :
      1번, 2번 안되면 SD카드 활용해야죠.

  • 하하하 2021.09.06 18:13

    3번실행옵션 4번화면녹화 명령어를 어디에 쳐야될지모르겠습니다 알려주시면 감사하겠습니다
    답글

  • 히쓰 2021.11.17 21:35

    미러로이드 대체재찾다가 와서 잘보고갑니다
    외부접속의 경우 ssh터널링으로 되는거같네요
    가이드가 빈약하긴하나 깃헙글에도 소개되어있고 vpn까지 할필요는 없어보이네요
    답글

  • Favicon of https://hamamamamaanan.tistory.com BlogIcon 하마앙 2021.11.18 16:48 신고

    안녕하세요 휴대폰을 여러대 연결하고 싶은데 첫 미러링은 잘되는데 그다음부터는 미러링이 되지 않네요 scrcpy -s 시리얼번호를 입력하면 디바이스까지는 인식을 하는데 미러링은 되지 않습니다 문제가 뭘가요 usb연결입니다
    답글