본문 바로가기
[Developer]/Android

scrcpy 제대로 활용하기(1/2)

by 해피빈이 2022. 2. 19.

Photo by Markus Spiske on Unsplash

 

scrcpy가 어떤 것인지 궁금하다면 아래 링크의 글을 먼저 확인하는 것을 추천한다.

안드로이드 화면을 PC에서 컨트롤 하기(scrcpy)

그렇다면 이 scrcpy를 좀 더 파워풀하게 활용할 수는 없을까?

아래에서 다양한 기능을 활용하는 방법과 필자가 추천하고 자주 활용하는 옵션을 소개하려 한다.

 

(1) scrcpy 제대로 활용하기 - 사이즈, 렌더링, 캡처 등

(2) scrcpy 제대로 활용하기 - 연결, 윈도우, 컨트롤, 파일드롭, 단축키 등

 

기본 활용 방법

우선 scrcpy를 제대로 활용하기 위해서는 실행 단계에서 파라미터로 옵션을 주어야 한다.

커맨드로 scrcpy로 실행이 당연히 가능하지만, 이것이 아닌 아래 처럼 실행하는 것이다.

scrcpy --[full text parameter] or -[short text parameter] ...

당연히 파라미터는 2개 이상을 사용하는 것도 가능하며, 짧은 한 개의 문자, 혹은 길게 된 문자로 활용이 가능하다. 보통 full text parameter를 이용할 경우 대시(-)를 앞에 두 개 붙여서 활용하며, short 파라미터를 활용할 경우 대시(-)를 앞에 한 개 붙여서 활용한다.

그리고 미리 언급하지만, 이 모든 것은 참고자료의 링크를 보거나 scrcpy --help를 입력하여 확인이 가능하다.

옵션 소개

모든 옵션을 다 소개할 수는 없지만, 활용하기 좋은 대부분의 옵션을 소개하고자 한다.

캡처 환경 구성

사이즈 축소

가끔, Android 기기의 크기를 축소하면 더 성능이 증가할 때가 있다. 그래서 width와 height을 제한하는 것도 방법이다. 아래에서처럼 사이즈를 명시하면, 긴 쪽의 사이즈가 설정한 크기만큼으로 제한되어 나온다.(비율은 동일하므로, 짧은쪽도 함께 줄어든다.)

사실 기기를 띄운 뒤에 줄이면 똑같지 않냐고 생각할 수 있지만, 해상도는 변하지 않는다. 즉, 해상도를 줄인 상태에서 윈도우 크기를 키우면, 도트가 깨져보일 수 있는 것이다. 대신 성능이 증가되므로 느리다면 추천할만 하다.

극단적인 테스트를 해 보면 아래처럼 뭉개지고 글자를 알아볼 수 조차도 없다는 뜻이다.

scrcpy --max-size 1024
scrcpy -m 1024  # short version

비트레이트 변경

기본 비트레이트는 8Mbps이다. 이것을 줄이는 방법이다. 이것은 캡쳐화면으로 차이를 알기는 어렵고, 움직여보면 차이가 명확히 보인다. 마치 전송량 제한이 걸린 상태에서 비디오 보는 느낌과 비슷하다. 숫자를 줄일수록 자글자글한 노이즈가 많이 보인다.

scrcpy --bit-rate 2M # M(메가)단위의 숫자 혹은 K(킬로)단위도 가능하다.
scrcpy -b 2M  # short version

프레임레이트 제한

프레임레이트 즉, 초당 프레임인 FPS를 줄여주는 효과를 가져온다. 앞서서 명시한 방법은 전송량 기준이라면, 이것은 프레임 기준이다. FPS를 극단적으로 줄여보면 효과를 명확히 알 수 있다. 이 역시 움직이면 뚝뚝 끊어져보이는 것으로 알 수 있다. Android 10 이상의 기기에서만 작동이 보장된다.

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를 누르면 중단이 가능하다.

다만 주의할 점이 있다. 일단 이것은 성능 저하를 가져오지 않기 위해 실시간으로 화면이 표시되지 않을 수 있다. 그리고, 더 중요한 한가지 사실은 mp4로 녹화할 경우 파일은 정상 생성이 되지만, 실제 재생하려고 하면 문제가 있는 파일이라며 재생이 불가하였다. 대신 mkv로 녹화할 경우에는 잘 되는것을 확인하였다. 그래서 가급적 mkv로 녹화를 추천하며, 어떤 확장자로 녹화를 시작하든, 본인의 피씨 혹은 안드로이드 기기 설정 아래에서 잘 녹화가 되는지 먼저 시험녹화 이후 진행하는 것을 권한다.(만약 녹화가 중요한 상황에서 실컷 다 진행했는데 파일이 열리지 않는다면 이거 낭패 아닌가!)

그래도 그나마 다행인건, 녹화 중에도 mkv 파일을 미디어 플레이어에서 열면 열리고 재생이 된다. 그러니 꼭 중지한 이후에 확인하지 않아도 되므로, 이미 시작한 뒤에 잘 되고 있나 중간 체크하는 것도 좋은 방법이 될 것 같다.

버퍼링 지정

만약 버퍼링을 지정하고 싶다면, 지정이 가능하다. 레이턴시가 증가되긴 하겠지만, 지터를 감소시킬 수 있다. 다만 이 기능은 문제가 있을 경우에 대해서 사용하는 경우만 유용하므로 그렇게 필요한 기능은 아니라고 생각이 든다. 문제가 있을 경우 혹은 일부러 지연시키고 싶은 사유가 있을 경우 활성화하자. 단위는 밀리초(ms)이다.

scrcpy --display-buffer=50  # 화면 표시를 50ms 지연시키고 싶은 경우

참고자료

반응형

댓글