Desktop/Video Record

FFmpeg을 활용한 화면 녹화(1/2)

leonhong 2022. 3. 20. 12:04

개발 목적

 현재 작업하는 장면을 자동으로 녹화하는 프로그램을 제작하려고 함.

 예를 들어서 자동으로 프로그램을 실행한 후, 실행되는 화면을 자동으로 녹화해 놓으면, 나중에 녹화된 화면을 보고 빠르게 테스트(재생시 2배속이나 건너뛰기 등등의 기능을 이용하여) 및 디버깅이 가능함.

 

개발 개요

 1. GUI 베이스의 프로그램을 제작하고자 하므로 C#으로 화면 구성.

 2. 녹화 및 재생을 Script로 실행할 수 있는 FFmpeg(v5.0)으로 녹화 기능 구성.

 3. 녹화를 수행하고자 할 때, C#의 Process 실행함수를 이용하여 FFmpeg를  실행하여 수행함

 

녹화 프로그램 개발시 시도해 본 다른 방식 - C# + OpenCvSharp4

장점은 C#에서 라이브러리를 이용하여 개발하므로, 프레임 단위로 디버깅이 편리함.

그런데 단점이 다음과 같음.

먼저 라이브러리를 이용하여 녹화하는 방식이 블로그마다 달라서 정확한 방식을 찾아봐야 하고, 찾은 자료대로 해봐도 생각보다 잘 안됨.

그리고 녹화시 "1초당 30프레임 녹화옵션"을 지정하면 개발자가 시간을 정확히 측정하여 1초에 30개의 이미지 저장해야하는데, 만일 정확히 1초에 30개 이미지 갯수를 맞추지 못하면 녹화와 재생 시간이 서로 Sync되지 않는 문제가 발생하므로 여기에 대한 예외처리를 개발자가 해주어야 함. 그런데 그 예외처리가 매우 까다로움.

 

 

'Desktop > Video Record' 카테고리의 다른 글

FFmpeg을 활용한 화면 녹화(2/2)  (0) 2022.03.20