HOME TIP & TECH

TIP & TECH

TIP & TECH More information
ubuntu 19.10 에서 Open Broadcaster Software 에 nvidia encoder 사용하기

onionmixer 2019-10-24 13:51:16 3050

LINUX 에서 Open Broadcaster Software(이하 OBS)는 동영상을 스트리밍 하기위해 인코더를 ffmpeg 으로 사용합니다.

ubuntu 에서 제공하는 기본 ffmpeg 은 nvidia encoder 를 지원하는 옵션으로 컴파일 되어 있지 않습니다. 이에 ffmpeg 관련 패키지를 다시 만들어서 직접 사용하는 것이 좋습니다. 과정을 간단하게 설명해 보도록 하겠습니다. opencl(cuda)를 지원하는건 목표가 아니기 때문에(사실은 coda 맞춰서 nvidia driver 를 다시 세팅하는게 귀찮아서) nvidia encoder 세팅만을 다루도록 하겠습니다. 물론 이 모든 내용은 Nvidia driver 를 사용하고 있다는 전제 하에서 하셔야 합니다.

1. ubuntu 에 다음의 패키지를 설치한다.

apt-get install build-essential git yasm unzip wget sysstat nasm libc6 libavcodec-dev libavformat-dev libavutil-dev pkgconf g++ freeglut3-dev libx11-dev libxmu-dev libxi-dev libglu1-mesa libglu1-mesa-dev


2. nvidia video codec SDK 를 받아서 설치

* 참고문서의 URL 을 참고해서 linux 용 codec SDK 를 받아옵니다.
* 압축을 풀어줘야겠죠.
* cp {코덱SDK디렉토리}/Samples/common.mk /usr/local/include/ 명령어를 통해 SDK 에서 추출한 파일을 복사합니다.


3. nvidia codec header 의 설치

* git clone https://git.videolan.org/git/ffmpeg/nv-codec-heade...
* cd nv-codec-headers
* make
* make install


4. x264 관련 패키지 설치하기

* apt install libx264-dev


5. ffmpeg 컴파일하기

* 디렉토리를 하나 만들어 줍니다.
* ubuntu 에서 source repo 를 활성화 합니다.
* 디렉토리 안에서 "apt-get source ffmpeg" 으로 소스코드를 받아옵니다.
* ffmpeg-4.1.4/debian/ruls 파일 안쪽에 "CONFIG := --prefix=/usr" 아래쪽에 다음의 내용을 추가합니다.(아래쪽의 마지막이 어디인지 정확하게 기억은 안납니다만...)
--enable-opengl \
--enable-sdl2 \
--enable-nonfree \
--enable-nvenc
* ffmpeg-4.1.4 의 상위 디렉토리에서 다음의 명령어를 실행해줍니다.
** apt-get build-dep ffmpeg
** cd ffmpeg-{version}
** dpkg-buildpackage

이렇게 생성된 deb 패키지를 dpkg 를 이용해서 설치하고, --fix 뭐시기 를 통해 깨진 의존성을 복구해 줍니다.


이후에 주의할 부분이 있는데, ubuntu repo 에서 제공되는 ffmpeg 을 update 하는 순간 지금 작업한 모든건 다 의미가 없어집니다. 그러니 매번 ffmpeg 을 받아서 해당되는 작업을 해줄게 아니라면 ffmpeg 관련된 패키지들은 update 하지 않는걸 추천합니다.


==참고문서==

* https://it.toolbox.com/blogs/jeffhoogland/howto-obs-with-nvenc-support-on-ubuntu-linux-071117
* https://www.reddit.com/r/linux_gaming/comments/9xyxxb/ubuntu_1810_obs_nvenc_compilation/
* https://arstech.net/compile-ffmpeg-with-nvenc-h264/
* https://developer.nvidia.com/nvidia-video-codec-sdk/download

댓글 0개

Previous / Next
Previous systemd 에 있어서 ulimit 을 대하는 우리의 자세
Next ubuntu 19.10 에서 lazarus 를 qt5 로 사용하기.