ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • ffmpeg로 녹화영상 압축하기 - 1. Windows10 빌드환경 구축(media autobuild suite)
    IT,컴퓨터/서비스,웹,소프트웨어 2020. 9. 4. 10:43
    하단 광고는 티스토리가 임의 삽입하여 노출되고 있습니다
    728x90

    지난달에 USB 캡쳐카드 구입했다는 이야기를 했었는데, 글 쓰기 직전에 본가에서 이걸로 녹화 작업을 하고 왔습니다.

    그런데 프로그램 기본값으로 설정한 채로 녹화했더니(비트레이트 18,000 / 최대 비트레이트 20,000) 720 x 480 해상도인데도 40분짜리 영상이 4.5GB가 나오더군요.

    덕분에 녹화작업이 끝나고 나니 파일이 총 140GB쯤 나와 버렸습니다.

     

    '그래도 버려지는 테이프 녹화하는건데' 하면서 높은 설정을 유지한건 저지만, 예상을 꽤 뛰어넘긴 하더군요.

    그래서 영상을 자르는데만 사용하던 ffmpeg로 압축을 해 보기로 합니다.

     

     

    1. 빌드를 왜 해야 하는가?

    ffmpeg는 오픈소스라서 윈도우에서 쓸 수 있게 소스를 빌드해준 고마운 분이 계십니다. [바로가기, 9월 중순 한정이 되어버렸네요]

    하지만 이는 코덱 옵션이 빠진 상태라 오디오/비디오 스트림을 복사해 변환하거나(copy 옵션) 스트림 녹화 작업을 하는 정도로만 쓸 수 있습니다.

    코덱을 쓰려고 하면 라이브러리를 넣고 ffmpeg 빌드시 --enable-xxxx 옵션을 줘서 활성화를 해야 합니다.

     

    하지만, 이게 말이나 쉽지.. 어느 운영체제에서든 빌드 환경을 만드는건 꽤 까다로운 법입니다.

    특히 윈도우에서는 말이죠.

     

    P.S

    2020.12.06 P.M 2:30분경 추가.

    위에 링크한 윈도우용 빌드가 없어져서 다른 빌드를 찾다 보니, 또다른 윈도우용 빌드 중에서

    많은 enable 옵션이 적용된 버전이 있더군요.

     

    공식 홈페이지 다운로드 란에는 'Windows builds by BtbN' 이라는 이름으로 링크되어 있고 [Github 릴리즈 보기]

    Github 레포지토리에서 스크립트를 다운로드 받은 후 직접 빌드하실 수도 있습니다.

     

    이러면 아래의 긴 수고를 거의 안해도 되겠습니다.

    참고하시길.

    ///

     

     

    처음에는 FFmpeg Compilation Guide 를 참고하여 MinGW부터 시작해 차례차례 구성요소를 설치했습니다.

    하지만 역시나 보통일이 아니더군요.

    단순히 gcc 설치하고 의존성 있는 다른 패키지(의 윈도우 포팅판)만 설치하면 성공을 보장하는 것도 아니고,

    거의 운이 따라야 하는(?) 수준이었습니다.

     

    결국 이틀정도 낑낑대다가 포기하려던 찰나, 아까 링크한 가이드에 이런 툴이 링크되어 있었습니다.

    이래서 문서를 잘 읽으라고 하는걸까요.

     

    https://github.com/m-ab-s/media-autobuild_suite

     

    역시 오픈소스로 만들어진 이 빌드환경 생성 도구는 윈도우 전용입니다.

    ffmpeg 에 필요한 코덱을 선택하면 자동으로 설정파일을 만들고, 그 설정파일을 기반으로 빌드환경에 필요한 구성요소를 자동으로 다운로드받고 빌드해서 exe를 만들어 줍니다.

    필요한 코덱 소스파일 싹 받아서 빌드를 진행하고, 마지막으로 ffmpeg에 enable 옵션까지 주고 빌드해 주는거죠.

     

    대신 주의사항에도 있지만 용량이 엄청 필요하고 시간도 엄청 걸립니다.

    티브로드 사용중이라 해외 다운로드가 좀 약하고, 데스크탑도 구형 CPU(i5-2500K) 를 사용중이긴 하지만

    실행 후 빌드가 끝나기까지 7시간 반 걸렸습니다. 용량도 24GB쯤 썼구요.

    h264, h265, aac 코덱 위주로 선택했는데도 말이죠.

     

    그래도 일단 알아서 다운받고 풀고 셋팅해주니 편리함이야 이루 말할 수 없지만요.

     

     

    2. 실행과정

    이 패키지는 기본 구성요소가 스크립트 뿐이라 총 용량이 1MB도 되지 않습니다.

    전체 경로가 너무 길어지지 않는 (D:/a/b/c/d/e 가 아닌 D:/a 에 위치시키도록) 위치에 풀어놓고 실행하면 끝.

     

    적당히 위치시킨 뒤, media-autobuild_suite.bat 파일을 관리자 권한으로 실행합니다.

    이러면 작업중에 자잘한 문제가 생길 가능성이 줄어듭니다.

     

    실행 후에는 전체 경로가 작은 폴더에 위치시키라- 하는 경고가 나올 수 있는데, 무시하고 넘어갈 수 있습니다.

    저는 D드라이브 아래에 tools 폴더를 만들고 그 아래에 폴더채로 풀어 넣었습니다.

     

    이후엔 32bit/64bit 선택 같은 초기 질문부터 설치할 코덱, 미디어 도구 등을 하나하나 설치할건지 물어봅니다.

    제 경우는 h264, h265, aac 코덱 위주로 선택했고, 실험적이라고 뜨거나 구형 코덱들은 설치하지 않았습니다.

    처음엔 범용성을 높힌답시고 거의 다 선택했더니 5시간쯤 지나서 빌드가 실패하더군요..-_-

     

    혹시나 해서 성공했을때의 설정파일도 남겨봅니다.

    잘 안되시면, build 폴더에 아래 내용으로 media-autobuild_suite.ini 파일을 만들고 스크립트 실행하시면 인식하고 이걸로 작업합니다.

     

    아무튼 질문에 다 답하시면 방금 언급한 build 폴더에 media-autobuild_suite.ini 파일이 생기고 작업을 시작합니다.

    혹시 중간에 창이 닫혀도 이 파일이 남아있다면 언제든 이어서 작업할 수 있습니다.

     

    그리고 하나하나 소스를 받고 빌드하는 지루한 과정이 지나고,

     

    성공한다면 맨 마지막처럼 성공했으니 5초 뒤 창이 닫힌다고 뜨고 창이 닫힙니다.

     

    그 뒤에 local32(32bit) / local64(64bit) 폴더 안에 있는 bin-audio / bin-global / bin-video 폴더의 exe를 쓰시면 됩니다.

     

    이런식으로 환경변수로 등록하시면 편합니다. 일일히 절대경로로 안들어가도 되니까요.

     

     

    3. 일반적인 오류 대응

    환경은 잘 꾸려져 있어도 다양한 문제가 발생합니다.

     

    일단 제가 겪었던 문제와 해결방법을 공유합니다. 사실 github issue 에서 검색하면 거의 다 나오는것 같지만요.

     

    작업 초기, 키 다운받는 화면이 오랫동안 떠 있던데 작업관리자를 보면 이 이후 아무 작업도 하지 않더군요.

    혹시나 해서 창을 닫아보니 별일 없이 다음 과정으로 넘어가고 문제도 없습니다..-_-

     

    참고하시기 바랍니다.

     

    이 오류의 경우는 build 폴더 안에 있는 media-autobuild_suite.ini 를 notepad++ 같은 에디터로 열고, 맨 아래 noMintty=1 로 바꾸고 저장한 뒤 media-autobuild_suite.bat 스크립트 재실행하면 된다고 하더군요. [github Issue page]

     

    media-autobuild_suite.bat 스크립트가 build 폴더 안에 있는 media-autobuild_suite.ini 를 감지하기 때문에,

    이게 있으면 아까같은 질문의 폭풍 없이 이 파일의 설정대로 업데이트(혹은 누락된 소스 체크) 프로세스가 진행됩니다.

     

    물론 업데이트시에도 하나하나 소스의 업데이트를 확인하기 때문에 시간이 무진장 오래 걸리지만요(제 경우는 거의 초기 빌드급이었음)

     

     

     

    아무튼 이거 쓴다고 빌드하는데만 3-4일을 삽질한지라 쳐다보기도 싫었는데, 어찌어찌 성공하고 나니 그래도 마음이 풀리네요.

     

    그럼 다음 글에서는 이 도구를 사용해서 어떻게 비디오를 변환해 봤는지 정리해 보겠습니다.

     

    주말 지나고 다음 글에서 뵙지요.

    댓글

Designed by Tistory.