KitKat(4.4)부터 안드로이드는 화면을 녹화할 수 있는 기능을 지원한다. 이에 대한 소개는 여기에 있다. 이 걸 이용하면, 사용법이나 예제를 만드는 것이 한결 쉽다.
아래와 같은 특징이 있다.
- 저장은 MP4 포멧으로 저장된다.
- 최대 3분까지 녹화할 수 있다. (인텔리제이 기준)
- 16의 배수로 해상도(resolution)을 지정해야 한다.
- 해상도를 지정하지 않은 경우, 기본값은 단말의 해상도나 720p이다.(최대한 원래 해상도 지원)
인텔리제이에는 연결된 안드로이드 단말이 비디오 녹화를 지원하는 경우 다음과 같은 위치의 녹화 버튼이 활성화 된다.
이를 누르면 간단한 설정값을 입력한 후에 녹화가 시작되며 녹화가 끝나면 저장할 위치를 골라 저장할 수 있다. (안드로이드 스투디오의 DDMS에도 같은 기능이 있다고 한다.)
몇 번 촬영하다보니, 아래 설정이 용량도 작고 화면도 잘보이는 것 같다.
- Bit rate(Mpbs) : 4
- Resolution(width x height, in px) : 400*720
단말의 가로세로 비율이 다양해서 400*720과 같지 않을 때가 있을 것이다. 물론 녹화 기능이 실단말과 녹화하고자 하는 영역이 정확히 맞지 않아도 가로/세로 비율을 유지 시키며 녹화해준다. 다만, 좌우(혹은 위아래)에 검은색 여백이 채워지게 된다. 그럴 때는 고민하지 말고 폭(width)이나 높이(height) 한가지만 지정해서 녹화하자. 다른 값은 화면 비율에 따라 자동으로 채워진다.
용량은 최대한 최적화가 되는 것 같다. MP4 코덱의 기능인 것으로 추측되는데, 단순 비교 시에 같은 화면 사이즈에 같은 3분동안 녹화한 두 영상을 비교할 때, a. 잠금 화면의 정지된 영상을 3분동안 촬영했을 때 2.39mb 였는데 b. 2048 게임을 플레이한 경우 60mb 였다.
마지막으로, 안드로이드 개발자 사이트의 소개에 따르면 SurfaceView.setSecure()를 이용해 녹화되지 않도록 설정할 수도 있다고 한다.