본문 바로가기
프로그래밍

화면녹화 프로그램 만들기[1]

by minimax95 2020. 5. 4.

 지난 포스팅에서 심플한 화면녹화 프로그램을 만들어 보았다.(이전 포스팅 보기)

녹화시작, 녹화종료, 인코딩 세 가지 기능을 가지고 있는 말 그대로 화면 녹화 프로그램이다.

그러나 확장자가 wmv 파일로 한정되어 웹에서 지원이 제한되는 한계가 있어서 FFMpegConverter를 이용하여 웹에서 사용할 수 있는 .mp4 확장자 포맷 파일로 인코딩하는 방법을 살펴보고자 한다.

 

지난 번 Encode( ) 함수는 아래와 같다.

인코딩 소스코드 이미지

우리는 마지막 부분에 FFMpegConverter를 이용하여 별도의 버튼 처리 없이 바로 wmv 파일을 mp4로 바꿔볼 것이다.

 

이를 위해서는 먼저 NuGet 패키지 관리에서 NReco.VideoConverter 라이브러리를 참조해야 한다.

NReco.VideoConverter 라이브러리는 FFMpeg에서 제공하는 함수를 이용하여 비디오 포맷을 변환해 주는 라이브러리이다. NReco.VideoConverter 참조가 성공적으로 끝나면 제공되는 함수 사용을 위해 using 문을 아래와 같이 추가해 준다.

NReco 추가 소스코드 이미지

이제 FFMpegConverter를 사용할 준비가 완료되었다.

Encode( ) 함수의 마지막 줄인 j.Encode( ); 하단에 아래의 소스코드를 추가해 준다.

 

 string tempName1 = mediaItem.ActualOutputFileName;
 tempName1 = tempName1.Substring(0, tempName1.Length - 4);
 tempName1 = tempName1.Replace(".", "_");
 tempName1 = tempName1 + ".wmv";
 string tempName = mediaItem.ActualOutputFileName;
 tempName = tempName.Substring(0, tempName.Length - 4);
 tempName = tempName.Replace(".", "_");
 var ffMpeg = new NReco.VideoConverter.FFMpegConverter();                    
 ffMpeg.ConvertMedia(mediaItem.ActualOutputFileFullPath,

                                  mediaItem.ActualOutputFileFullPath.Replace("wmv", "mp4"), "mp4");

 

여기서의 핵심은 FFMpegConvter를 이용해서 wmv 포맷을 mp4로 바꾸는 부분이다.

나머지는 단순히 string 변환을 통해 파일명을 알아보기 쉽게 바꾸어 준 것 뿐이다.

 

다시 솔루션을 빌드하여 실행파일을 생성하고 실행해 보자.

출력파일 포맷이 아래와 같이 변경되어 우리가 원하는 mp4파일을 얻을 수 있다.

mp4파일변환 이미지

 

댓글