Journal of Knowledge Information Technology and Systems ISSN 1975-7700 http://www.kkits.or.kr System Usage Analysis of Screen Recorder Software Based on Video Codecs Oh-Sung Kwon * Dept. of Computer Education, Gongju National University Of Education A B S T R A C T The range of screen recorder software's applications has been gradually increasing. The reason is that multimedia contents' utilization is growing very fast recently. In general, these screen recording software concurrently execute with other computer software and usually increase the burden of computer system resources. Therefore In this paper, we look into the computer resource usage of CPU and memory. We make a new experiment software for screen recording to obtain stable results. The software is consisted of screen capturing module and converter based on video codecs. The screen capture is performed periodically at an interval of a predefined time in our experimental software. We use Xvid as codec used in our screen recording software. Xvid is widely known as an useful open source video code. In experiment results, we make sure that the CPU shows constantly usage below 1% and memory usage indicates average below 410 MB. The software is not required a large amount of CPU computing resource. Therefore, we recommend that the screen recording software's utilization is desirable on the computers with sufficient resource. It is faced with an unexpected difficulty in small main memory. C 2014 KKITS All rights reserved K E Y W O R D S : Screen Recorder, Screen Capture, Video Codecs, Xvid, CPU Usage, Memory Usage A R T I C L E I N F O : Received 10 November 2014, Revised 12 December 2014, Accepted 12 December 2014. * Corresponding author is with the Department of 1. 서 론 Computer Education, Gongju National University of Education, Gongju ChungNam, 314-711, KOREA. E-mail address: oskwon@gjue.ac.kr 동영상 등 멀티미디어 자료 활용의 일반화는 컴 퓨터 화면을 캡쳐하거나 녹화하는 작업의 필요성
을 높이고 있으며, 이를 위한 다양한 프로그램 또 한 소개되고 있다. 이러한 화면 녹화 프로그램은 손쉽게 컴퓨터 화면의 진행 내용을 저장하게 할 수 있도록 도와주는 반면에 작업 컨텐츠와 프로그 램이 동시에 같은 컴퓨터에서 실행되어야 하기 때 문에 시스템 사용 자원의 부담을 가중시키거나 효 율성을 저하시키는 문제점으로 작용할 수 있다. 본 논문에서는 이러한 화면 녹화 프로그램을 실행하 는 경우 발생할 수 있는 컴퓨터 자원의 부담 내용 을 측정하고 분석하고자 한다. 일반적으로 화면 녹화 프로그램은 동영상 변환 코덱을 사용하여 캡쳐된 화면 내용을 비디오로 변 환하는 데, 본 논문에서는 보다 정확한 실험을 위 하여 부수적인 편의 기능을 제외한 화면 캡쳐와 코덱 변환의 기본 기능만을 갖춘 실험용 화면 녹 화 프로그램을 제작하였고 그것을 이용하여 동작 특성을 CPU 사용률, 메모리 사용량 등을 중심으로 측정하였다. 본 논문에서는 먼저 화면 녹화 프로그램 현황과 특징을 살펴보고, 성능 측정을 위하여 필요한 기본 기능을 갖춘 화면 녹화 프로그램의 구현을 설명한 다. 다음에 녹화 프로그램을 실제 동작하면서 필요 한 컴퓨터 자원을 측정하고 그 효율성을 분석하고 녹화 프로그램의 효과적 사용을 위한 시스템의 일 반적 환경을 제시하도록 한다. 2. 화면 녹화 프로그램 현황 국내외적으로 다양한 화면 녹화 프로그램들이 소개되어 활용되고 있다. 녹화 프로그램은 주기적 으로 캡쳐한 화면 이미지 리스트를 비디오 코덱 (Video Codec)을 이용하여 동영상으로 변환하는 기 능을 수행한다[1,2]. 화면 녹화 기술은 일반적으로 동영상 녹화, 교육 자료 및 튜토리얼 작성, 사용 감시 등에 주로 이용되며, 대표적인 소프트웨어로 는 TechSmith 사의 캠타시아(Camtasia) 등을 들 수 있다[5]. <표 1>은 화면 녹화를 위하여 자주 사 용되는 주요 제품들의 특징을 나타낸다. 표에서 보 듯이 녹화 프로그램은 대부분 사용이 자유로운 오 픈 소스 코덱인 제비드(Xvid)를 이용하는 경우가 많았다. Xvid는 상용 제품인 DivX에 대항하려는 의 도로 만들어진 오픈 소스 제품으로 다양한 플랫폼 에서 널리 사용되는 일반화된 코덱이다[6,7,8,9,10]. 표 1. 화면 녹화 소프트웨어 현황 Table 1. Current Status of Screen Recorder Software No 제품 압축 코덱 용도 1 T사(국외) 선택가능 화면/편집 2 A사(국내) 3 S사(국내) 4 S사(국내) 오픈소스 (Xvid MPEG) 오픈소스 (Xvid MPEG) 오픈소스 (Xvid MPEG) 화면녹화 화면녹화 화면감시 화면 녹화 프로그램은 녹화 대상 영역을 정하거 나 화면 전체를 녹화하는 방법으로 진행한다. 녹화 영역이 지원 가능한 가용 시스템 자원을 초과하는 경우도 발생할 수 있다. 이 경우 화면 캡쳐 주기를 조정하는 방식으로 그 부담을 줄이는 방식이 주로 적용된다. 최근 들어서는 단순 녹화 기능만을 제공하는 비 교적 구현이 용이한 형태의 프로그램들이 다수 소 개되고 있다. 이 프로그램들 역시 무료 라이센스를 제공하는 오픈 소스 코덱인 제비드(Xvid)를 사용하 여 구현되고 있다. 화면 녹화 기술을 활용한 학술 연구로는 Hwang 의 캠타시아를 이용하여 의과대학 교육용 튜토리 얼 동영상 제작하고 그 학습 효과를 측정하는 내 용 등 이 있다[3]. 또한, 화면 녹화를 컴퓨터 사용 감시에 이용하는 경우에는 화면 녹화 외에도 키보 - 774 -
드, 프로세스, USB 사용 내역 등을 포함하는 경우 가 있었으며 이를 위한 이베트 처리 기술 등의 연 구가 진행된 바 있다[4]. 후킹 기법을 이용하여 사 용자의 다른 응용에서의 행동을 수집하고 인식하 여 적응형 응용 프로그램 진행이 가능하도록 하는 연구도 있었다[1,4]. 3. 화면 녹화 프로그램의 구현 본 논문에서는 코덱 기반 화면 녹화기의 성능을 측정하기 위하여 <그림 1>과 같은 실험용 화면 녹 화 프로그램을 작성하였다. 녹화 프로그램의 코덱 은 가장 일반적으로 이용되는 코덱 중의 하나인 Xvid Mpeg 오픈 소스 제품을 사용하였다. 녹화 프 로그램은 지정된 간격으로 화면을 캡쳐하고 이를 코덱으로 압축하여 실시간 저장하며 이 과정을 반 복한다. 적은 저장 용량을 보인다, 이러한 녹화 프로그램은 녹화 대상 응용 프로그램과 동시에 실행되어야 하 기 때문에 메모리와 CPU 사용에서 시스템의 부하 를 줄 수 있다. 본 논문은 이러한 시스템 부하 정도를 계산하여 효과적으로 활용이 가능한 시스템의 자원 범위를 제시하고자 한다. 실험에 사용되는 컴퓨터 활용 시 나리오는 일반적인 작업의 특성을 반영하도록 워 드프로세싱 등 오피스 작업과 다양한 응용 등을 번갈아 사용하는 방식으로 측정하였다. 화면 녹화 프로그램은 사용 컴퓨터의 작업 환경 에 크게 영향을 받는다. 예를 들어 화면 해상도에 따라 저장해야할 녹화 영역의 크기는 크게 증가될 수 있다. 녹화 과정에 영향을 주는 요소들을 정리 하면 <표 2>와 같다. 표 2. 녹화 관련 설정값 Table 2. Setting Values of Screen Recorder 항목 예 1 화면 해상도 1600*900, 듀얼모니터 등 2 캡쳐 주기 20Frame/sec, 3 코덱 화질 최상 그림 1. 화면 녹화 소프트웨어의 개요 Figure 1. Overview of Screen Recorder SW 화면 녹화 프로그램은 화면 캡쳐를 반복하는 부 분과 얻은 화면 이미지 리스트를 압축 변환하는 부분으로 구성되며 결과물로 동영상으로 형태로 저장된다. 일반적으로 화면 변화가 적은 워드 프로 세싱 같은 작업은 코덱 압축률이 커서 상대적으로 본 논문의 실험에서는 위에서 제시한 표 의 내 용을 지정하고 성능 시험을 진행하였다. 캡쳐 주기 는 초당 프레임수를 나타내며, 이 값이 크면 보다 자연스런 동영상 출력이 가능하지만 화면 상의 반 복적인 캡쳐를 통하여 이루어지는 작업이기 때문 에 보통 20 프레임 미만으로 운영된다. 코덱화질의 경우 최상으로 하면 육안으로 복사본임을 구별하 기 어려운 정도의 화질의 결과물 제작이 가능하지 만 CPU와 메모리 부담을 가중시킨다. - 775 -
4. 녹화기의 성능 실험 녹화기의 성능 실험은 녹화기가 화면 캡쳐를 반 복하며 이미지를 모으고 동영상 코덱으로 압축하 며 동영상을 출력하는 과정 중에 발생하는 CPU 사 용률과 메모리 사용량을 시간별로 측정하는 과정 으로 진행하였다. 최고 CPU 사용률이 26.56%, 2번 피씨의 경우는 57.85 % 까지 상승하였지만 처리 완료 후에는 1% 미만으로 내려가며 안정적인 사용률을 <그림 2>처 럼 나타냈다. 초반부의 CPU 사용이 다소 상승하는 것은 동영상 압축 코덱의 초기화 루틴 시행에 따 른 일반적인 응용 프로그램 시작 초기 증상으로 보인다. 4.1 CPU 사용률 분석 녹화기의 CPU 사용률을 측정하기 위한 실험 시 나리오는 4분 동안 실험 피씨 화면의 녹화를 진행 하면서 시간별 사용률을 계산하는 방식으로 진행 하였다. 실험 대상 운영체제는 <표 3>과 같이 윈도 우즈 7과 윈도우즈 8 을 대상으로 하였다. No 운영체제 CPU Mem HDD 1 2 표 3. 실험 환경 Table 3. Experimental Environment Windows 7 Prof K SP1 (64Bit) Windows 8 (64Bit) Intel i7-377 0 3.40 GHz Intel i7-377 0 3.40 GHz 2 GB 2 GB 500 GB 500 GB 그림 2. 녹화시 CPU 사용률 [No.1 피씨] Figure 2. CPU Usage Occurred While Recording Screen [No. 1 PC] <그림 2>는 1번 컴퓨터의 녹화시 CPU 사용률을 시간별로 나타낸 것이고 <그림 3>은 2번 컴퓨터의 적용 결과를 표시한 것이다. 본 논문의 실험 결과치의 정확성과 신뢰성을 확 보하기 위하여 한국정보통신기술협회의 소프트웨 어시험연구소에 의뢰하여 실험을 진행하였다. 성능 과 자원 사용률 측정 도구로는 Performance Logs and Alerts 를 사용하였다. 본 실험에서 CPU 사용 률은 비 유휴 스레드를 실행하는 데 소비하는 시 간을 백분율을 나타낸 것이며, 1 번 피씨의 경우는 그림 3. 녹화시 CPU 사용률 [No.2 피씨] Figure 3. CPU Usage Occurred While Recording Screen[No. 2 PC] - 776 -
4.2 녹화기의 메모리 사용률 분석 그림 4. 재생시 CPU 사용률 [No.1 피씨] Figure 4. CPU Usage Occurred While Playing Video [No. 1 PC] 녹화기 실행 동안의 메모리 사용은 <그림 6>, <그림 7>과 같다. 그림에서 보듯이 녹화 진행에 따 른 메모리의 사용은 1번 피씨의 경우는 409MB, 2번 피씨의 경우는 487MB 이하로 일정하게 유지되었다. 동영상 압축에 따른 영향으로 다소 높은 메모리 사 용을 보였다. 이러한 현상은 듀얼 모니터 환경에 따 른 녹화 이미지 임시 저장에 따른 것으로 판단되며, 대략 410M 내외의 메모리 사용을 나타냈다. 그림 5. 재생시 CPU 사용률 [No.2 피씨] Figure 5. CPU Usage Occurred While Playing Video [No. 2 PC] 그림 6. 녹화시 Memory 사용량 [No.1 피씨] Figure 6. Memory Usage Occurred While Recording Screen[No. 1 PC] 녹화된 영상을 확인하기 위하여 재생하는 경우 동작에 필요한 재생 프로그램의 CPU의 사용 내역 은 <그림 4>, <그림 5>와 같다. 분석 그래프에서 프로그램 시작과 종료 부근의 로컬 피크가 나타나 는 것은 프로그램 실행에 따른 초기화 작업과 응 용 프로그램 종료에 따른 부하 가중으로 보인다. CPU 사용률은 1 번 피씨의 경우 최고 27.88%, 2번 피씨의 경우는 33.19% 까지 올라갔지만 처리 완료 후는 모두 1% 미만으로 내려가는 것을 확인할 수 있었다. 그림 7. 녹화시 Memory 사용량 [No.2 피씨] Figure 7. Memory Usage Occurred While Recording Screen[No. 2 PC] - 777 -
녹화 결과를 재생하는 경우의 메모리 사용은 1 번 피씨의 경우 389MB, 2번 피씨의 경우 371MB 이 하로 일정하게 유지되었다. 재생기의 경우는 녹화 기처럼 녹화 대상 프로그램과 동시에 실행되는 상 황이 아니므로 메모리 사용이 늘더라도 동영상 녹 화 결과물엔 영향을 주지 않는다. 그림 8. 재생시 Memory 사용량 [No.1 피씨] Figure 8. Memory Usage Occurred While Playing Video [No. 1 PC] 그림 9. 재생시 Memory 사용량 [No.2 피씨] Figure 9. Memory Usage Occurred While Playing Video [No. 2 PC] <그림 8>과 <그림 9>는 동영상 재생 시의 메 모리 요구량을 표시한다. 메모리 요구량은 녹화 시와 비슷한 용량을 요구하는 것을 확인할 수 있었다. 이러한 요구량은 녹화 완료 시에 이루어 지는 과정이므로 녹화 결과에 영향을 주지 않는 다. 5. 결 론 컴퓨터 화면 내용을 캡쳐하거나 동영상으로 녹 화하는 등의 자료 제작 형태가 늘어나면서 화면 녹화 프로그램의 사용도 일반화되고 있는 추세이 다. 대부분의 화면 녹화 프로그램은 반복적인 화면 캡쳐와 그 결과를 동영상 코덱으로 변환하여 저 장하는 방식으로 작동한다. 이러한 녹화 프로그램 은 녹화 대상 응용 프로그램과 동시에 같은 컴퓨 터상에서 실행되어야 하기 때문에 메모리와 CPU 사용 면에서 시스템의 부하를 가중 시킬 수 있는 문제가 있다. 본 논문은 이러한 시스템 부하 정도를 계산하 여 보았는데, 녹화기의 경우 CPU 사용량은 1% 미 만으로 별다른 영향을 주지 못하는 것으로 나타났 다. 메모리 사용의 경우는 듀얼 모니터를 사용하는 경우 코덱의 압축 과정 실행이 메인 메모리상에서 이루어지기 때문에 약 410M 내외의 메모리 사용을 보였다. 결국, 화면 녹화 프로그램은 CPU 보다는 사용 메모리 영역에 더 큰 시스템 부하와 영향을 주는 것으로 관찰되었다. 최근 들어 주 메모리 용량이 Giga 단위로 늘고 있는 추세이지만 메모리 용량이 작은 시스템의 경우에는 시스템 전체의 성능을 저 하시키는 요인으로 작용할 수 있음을 확인할 수 있었다. 추가적인 연구로는 메모리 사용 용량을 줄일 수 있는 새로운 코덱의 개발과 시스템 가용 역량을 실시간 자동 검출하고 그에 맞게 코덱의 화질을 자동 조정하는 것이 필요하리라 본다. - 778 -
References [1] J. Berdajs, Extending applications using an advanced approach to DLL injection and API hooking, J. of Software: Practice and Experience, Vol. 40 No. 7, pp.567-584, 2010. [2] O.-S. Kwon, Implementation of system usagerecorder for personal computer security, Vol. 9 No. 4, Korea Knowledge Information Technology Society, 2014. [3] S.-S. Hwang, A method for creating eaching movie clips using screen recording software, J. of Korean Radiol Soc, Vol. 56, No. 4, p.395-402, 2007. [4] Y.-K. Kim, An API hooking technique based on windows kernel, Ph. D. dissertation, Hannam University, 2010. [5] Camtasia_Studio,http://en.wikipedia.org/wiki/Ca mtasia_studio [6] Diagram showing different applications using FFmpeg, http://en.wikipedia.org/wiki/ffmpeg #Multimedia_frameworks_using_FFmpeg [7] FFmpeg License and Legal Considerations, http://ffmpeg.org/legal.html [8] Hooks Overview, http://msdn.microsoft.com/ en-us/library [9] Diagram showing different applications using FFmpeg, http://en.wikipedia.org/wiki/ffmpeg #Multimedia_frameworks_using_FFmpeg [10] Xvid, http://ko.wikipedia.org/wiki/xvid 코덱 기반 화면 녹화기의 시스템 사용 분석 요 약 최근 멀티미디어 자료 활용의 일반화는 컴퓨터 화 면 녹화 소프트웨어의 사용을 늘리고 있다. 이러한 화 면 녹화기는 연속적인 화면 캡쳐와 코덱 기반의 동영 상 압축 기능으로 구성된다. 이러한 화면 녹화 프로그 램은 녹화 대상 컨텐츠와 동시에 한 컴퓨터에서 실행 되어야 하기 때문에 컴퓨터 시스템 자원 활용의 부담 을 가중시키는 문제점을 야기하기도 한다. 본 논문에 서는 이러한 화면 녹화기 실행 시에 직면하는 CPU 와 메모리 사용률을 시간별로 측정하고 시스템 부하 정도를 분석하였다. 본 논문에서는 보다 신뢰성 있는 실험하기 위하여 부수적인 편의 기능을 제외한 화면 캡쳐와 녹화 기능을 갖춘 실험용 녹화 소프트웨어를 구현하였다. 실험 소프트웨어는 화면 녹화 소프트웨어 들이 주로 사용하고 있는 오픈 소스 코덱 제비드 (Xvid)를 기반으로 작성되었다. 실험결과, CPU는 일정 하게 1% 미만의 안정적인 사용률을 보였고, 메모리는 듀얼 모니터인 경우에 410MB 내외의 자원을 요구하 였다. CPU는 시스템 사용 정도가 미미하여 동시 실행 시에도 의미있는 부담을 주지 않았지만 메모리의 경 우는 충분한 여유 영역의 확보가 필요할 것으로 관찰 되었다. Oh-Sung Kwon received the Ph.D. degree in the Department of Computer Engineering from Chung-Ang University in 1994. He has been a professor in the Department of Computer Education at Gongju National University of Education since 1995. His current research interests include multimedia data processing and digital image processing. E-mail address: oskwon@gjue.ac.kr 권오성 공주교육대학교 컴퓨터교육과 - 779 -