최신목록

2018년 9월 28일 금요일

[FFMPEG]ffmpeg build with openh264

이전글에서 언급했던 x264 포함 빌드해서 제품에 적용하려고 했더니 라이선스문제가 발생했다. x264 포함빌드시 --enable-gpl 이 옵션이 ffmpeg을 lgpl에서 gpl 라이선스로 변경하는것이었다. 동영상 되는것만 생각하다가 적용을 못할 상황에... 라이선스 문제안되는 h264 라이브러리를 찾다보니 openh264라는 라이브러리가 있었다. lgpl로 그냥 사용하면 된다한다. 다시 빌드해 보았다.

x264 때와 비슷하다.

1. MSYS2 설치(x86_64)
http://www.msys2.org/

2. YASM 설치
http://yasm.tortall.net/Download.html

win64.exe 를 C:\msys64\usr\bin 폴더에 다운받고 yasm.exe라고 이름을 변경한다.

3. ffmpeg 다운로드
https://www.ffmpeg.org/download.html

4. openh264 다운로드
https://github.com/cisco/openh264

5. vs2015 x64 native tools command prompt 실행(msvc 환경)후 mingw 환경 실행함

>cd c:\msys64
>msys2_shell.cmd -mingw64 -full-path =>64bit build

*x86 빌드시 vs2015 x86 native tools command prompt 실행(msvc 환경)후 mingw 환경 실행함

6. mingw 환경에서 openh264 폴더로 이동해서 빌드함(OS 대문자로)
$make OS=msvc PREFIX=xxxxxx install

*x86 빌드시
$make OS=msvc PREFIX=xxxxxx clean => 위 빌드 내용이 남아있어서 다른옵션 빌드 안될때 사용
$make ARCH=x86 OS=msvc PREFIX=xxxxxx install

*x64 와 x86 dll 구분 => dll 파일 열어보면 PE 다음에 L이 있으면 x86 d? 가 있으면 x64

아래 폴더및 라이브러리가 생김

--bin
--include
--lib
    |--openh264.lib

7. 위 결과물을 ffmpeg 폴더 아래 openh264로 저장한다.

8. ffmpeg 폴더로 이동해서 빌드한다.
$export PKG_CONFIG_PATH=./openh264/lib/pkgconfig
$./configure --enable-shared --enable-libopenh264 --extra-cflags='-I./openh264/include' --extra-ldflags='-L./openh264/lib' --prefix=${PWD}/ffmpeg_build --toolchain=msvc
$make
$make install

이제 x264가 아닌 openh264가 잘 로드되 있는지 확인해보자.

>ffmpeg -codecs | findstr 264



h264 관련 encoder가 libopenh264로 잘 로드되있다 ~

동영상 생성시 용량은 x264보다 크고 느낌인지 화질도 좀...떨어지는거 같고...ㅎ x264가 좋긴한데...lgpl로 쓸수 있다는 장점이 h264가 특허료가 있긴한데 많이 사용할거 아니니 일단은 만족~

댓글 없음:

댓글 쓰기