[Media] FFMPEG에 x265 encoding 활성화 방법
Posted on 2014. 5. 19. 00:53
Filed Under Development
이 글은 www.jakeworld.net 에서 작성되었습니다.
- 퍼가실 때에는 이 박스와 함께 복사해주세요.
FFMPEG 에 x265 library를 활성화하여 hevc encoding을 할 수 있는 환경을 준비하는 방법에 대해 알아봅시다.
준비물:
1. Linux host
2. libx265 source
3. FFMPEG source
[preparing libx265]
본인이 mercurial or tortoiseHG 를 사용한다면 아래 repo를 끌어옵니다.
Console >> hg clone https://bitbucket.org/multicoreware/x265
없다면...
URL >> https://bitbucket.org/multicoreware/x265/downloads
으로 접속해서 Tag tab에서 태깅된 버전을 받습니다.
git-hub 경우는 snapshot 을 압축해서 받아올 수 있는데 bitbucket은 그런게 안보이네요.
압축을 푼 이후 x265/build/linux 로 이동 후 아래 명령을 수행합니다.
./make-Makefiles.bash
make
make install
[preparing FFMPEG]
다음은 FFMPEG 을 준비합니다.
준비된 libx265 라이브러리와 연동하기 위한 FFMPEG을 새로 빌드해야 하기 때문에 소스가 필요합니다.
본인이 git를 사용한다면... 아래 repo를 끌어옵니다.
Console >> git clone git://source.ffmpeg.org/ffmpeg.git ffmpeg
없다면...
URL >> http://git.videolan.org/?p=ffmpeg.git;a=snapshot;h=HEAD;sf=tgz
으로 접속하면 현재 repo상의 HEAD revision의 snapshot을 받아서 풀어줍니다.
압축을 푼 ffmpeg 최상위 경로에서 아래 명령을 수행합니다.
<필요한 코덱이 있다면 configure 시 추가 해주세요>
./configure --prefix=/usr/local --enable-gpl --enable-nonfree --enable-libopus --enable-libvpx --enable-libvidstab --enable-libx265
make
make install
이후 빌드된 ffmpeg을 통해 다음과 같은 명령어로 encoding 이 가능합니다.
ffmpeg -i input.mp4 -c:v libx265 output.mkv
configure시 pkg-config 를 통해 libx265를 찾는데 인식하지 못할 경우 /usr/local/lib/pkgconfig의 *.pc 파일들을 /usr/lib/pkgconfig로 복사해주시면 해결될겁니다.
사족1> 현재 기준으로 mkv 와 mp4 는 지원합니다. ts는 테스트하진 못했지만, 현재 FFMPEG TS muxer 소스에 hevc stream type이 추가되지 않은 상태라 소스상에 추가만 해준다면 되지 않을까 싶네요. 이래도 안된다면 bitstream filter 소스 확인이 필요할 듯 합니다. (아마 Parameter NAL unit이 포함된 extra data의 전체 구조가 h264와 별 다른게 없어서 bitstream filter가 호환이 되지 않을까 싶습니다만) 최신 리비전에서 TS muxer에 hevc stream type 추가 확인하였습니다.
사족2> libx265 의 퍼포먼스는 참담합니다. 정말... 안타까울 정도로 느려요. libx264 생각하시면 안되요.
'Development' 카테고리의 다른 글
[Tool] 유용한 MP4 Reader 툴 소개 (0) | 2014.05.20 |
---|---|
[Media] FFMPEG에 x265 encoding 활성화 방법 (0) | 2014.05.19 |
[GIT-SVN] svn dcommit 시 하나의 commit 으로 반영하기 (0) | 2014.05.15 |
[C++] C++ RTTI (Run Time Type Information) (0) | 2008.06.17 |
[MFC] MFC 리본 프로그래밍 (2) | 2008.05.19 |
[Win32API] 에디트플러스 에서 API 프로그래밍 환경 구축하기 (2) | 2008.05.16 |
댓글을 달아 주세요