SETTING OBS Linux
- Linux 에서 OBS 를 통해 방송하기
개요
이 문서는 Linux 에서 OBS 프로그램을 통해 인터넷 방송을 하려는 경우를 위해. 장비의 세팅 및 OBS 프로그램의 기초세팅을 위해 만들어진 문서이다. OBS 의 모든 기능을 설명하지도 않으며, 소개하는 소프트웨어의 모든 기능을 소개하는 문서가 아님을 유의하자.
youtube 를 통해 스트리밍하는 경우를 대상으로 하고 있다.
도입
이 문서에서는 다음과 같은 시스템이 사용되었다
- ubuntu 18.04
- OBS 가 설치되는 메인 방송용 머신
- gentoo linux
- nginx 가 작동되는 rtmp 스트리밍 머신
- windows 10 64bit
- 캡춰보드를 통해 영상을 nginx 로 송출하기 위한 캡춰머신
OBS 가 설치된 linux 머신에서 wayland 를 사용하면 OBS 에서의 스크린캡처를 제대로 사용할 수 없기 때문에, 가능하다면 x-windows 를 사용하는 것을 권장한다.
기본구조
위 다이어그램에서 표시되는 요소는 다음과 같다.
- 하늘색 : nginx web server
- 청록색 : streaming source
- playstation 4
- 그외 기타 게임기
- 초록색 : software element
- mame 등의 game emulator 포함
- 노란색 : hardware element
- HD60 s : HDMI 캡춰보드(USB방식)
- 마이크
- 핸드폰 얼굴용 캠 장치
- Logitec c920 : web cam
- XRGB3 : s-video 또는 composite 를 DVI 등으로 변환해주는 upscan 컨버터
필요한 기본 소프트웨어의 설치
다음의 소프트웨어를 설치한다.
- mplayer
- vlc : 경우에 따라 유용하게 쓰일 수 있다.
그 외에 필요한 소프트웨어는 그때그때 설치하는 것으로 한다
OBS 의 설치
ubuntu 에서 OBS 를 설치하는 방법은 간단하다.
sudo add-apt-repository ppa:obsproject/obs-studio
sudo apt-get update && sudo apt-get install obs-studio
물론 별도의 repository 를 등록하지 않아도, ubuntu 기본 ppa 에 OBS 가 있지만... 매우 예전버전이다. 반드시 repository 를 새로 등록해서 설치해 주도록 하자.
설치가 다 끝나면 obs 라는 프로그램을 실행하면 다음과 같은 화면을 확인할 수 있다. 이 문서를 작성하는 시점에서는 21.1.0 이 최신버전이다.
물론 처음 설치하면 소스목록 또는 장면목록 에는 아무것도 나오지 않음을 참고한다.
OBS 와 youtube 방송의 세팅
다음의 주소를 참고해서 방송 기본 세팅 테스트를 한다.
qtwebkit 의 설치
일반적인 인터넷 방송을 본적이 있다면 채팅창이 화면에 알파채널을 먹여서 배경이 비치게 보이는 모습을 본 적이 있을것이다. 이건 몇몇 서비스에서 제공하는 채팅 bot 서비스덕에 가능한 일인데, 채팅 bot 을 제공하는 web 서비스를 불러서 해당되는 창만 widget 형식으로 띄우는것이 바로 그 방법이다. 본인의 경우는 이 bot 서비스로 streamlabs 라는 서비스를 사용한다.
그런데, ms-windows 의 경우는 해당되는 플러그인을 바로 OBS 에서 제공하지만 linux 의 경우는 이렇게 web 만을 잡아서 부르는 plugin 이 별도로 없기 때문에 다음의 plugin 을 받아서 설치해야 한다.
plugin 을 설치하면 다음의 디렉토리에 들어가야 한다. root 계정을 사용하는 것이 아니기 때문에, 사용자의 OBS 디렉토리 안쪽에 plugin 파일이 들어가 있는것이 좋다. 물론 이 파일 하나만이 아니라 다른 데이터 파일도 해당되는 경로에 들어가 있어야 함을 주의하자.
- ~/.config/obs-studio/plugins/qtwebkit-browser/bin/64bit/qtwebkit-browser.so
위의 플러그인을 설치하고 streamlabs 의 설정법을 인터넷에서 찾아본 이후에 OBS 의 소스목록 에서 QtWebkit 브라우저 를 선택해서 streamlabs 에서 받은 URL 을 입력하면 plugin 의 설정은 끝나고, 당신이 원하는 채팅창을 OBS 를 통해 송출할 수 있다.
Linux 에서 HD60 s 를 통해서 playstation 4 화면을 OBS 에 띄우기
linux 에서는 HD60 s 캡처장비가 동작할 driver 가 없기때문에, 다음과 같은 과정을 통해서 화면을 linux 의 Obs 로 전송해야 한다.
- GameCapture HD 프로그램을 통해 ps4 화면을 HDMI 로 받는다
- 받은 화면을 rtmp 로 미리 준비해둔 nginx 서버로 송출한다
- OBS 가 설치된 linux desktop 에서 mplayer 를 통해 rtmp 방송을 받는다.
- mplayer 를 OBS 에서 윈도우캡처 (Xcomposite) 로 불러들여 방송을 송출한다.
지금 이 섹션에서는 3번까지의 과정을 설명한다.
일단 위의 도입 부분에서 설명한 것처럼 별도의 gentoo 머신(또는 다른 linux 여도 상관은 없다. nginx rtmp module 만 설치되어 있으면 된다.)에서 nginx 를 설치한다. 물론 본인이 필요하다는 판단 하에 다른 nginx module 을 잔뜩 설치해도 상관없다.
USE="rtmp" emerge nginx
아래의 내용을 참고해서 nginx 의 설정파일을 설정해 준다.
- /etc/nginx/nginx.conf
- include 가 반드시 nginx.conf 에서 http 설정내용의 바깥쪽에 들어가야 함을 주의한다. rtmp 는 http 가 아니기 때문에 별도의 protocol section 으로 취급되어야 한다.
include /etc/nginx/rtmp_stream.conf;
- /etc/nginx/rtmp_stream.conf
rtmp {
server {
listen 1935;
chunk_size 8192;
application raw {
live on;
meta copy;
}
}
}
설정파일을 설정한 이후에 nginx 를 시작해준다.
OBS 홈페이지에서 Game Capture HD 프로그램을 다운로드 받아서 설치한다. 장비를 연결하고, 아래와 같은 아이콘을 더블클릭해서 프로그램을 실행한다.
프로그램을 실행하면 아래와 같은 화면을 확인할 수 있다. 이 화면에서 오른쪽의 영역을 살펴보자. Live Streaming 이라는 항목이 있다.
해당되는 항목에서 옆의 + 버튼을 누른다. 그러면 위쪽으로 스트리밍 할 수 있는 목록이 뜨는데, 이중에서 rtmp 를 선택한다.
rtmp 를 선택하면 다음과 같은 팝업창을 확인할 수 있다. 위의 gentoo linux 에 nginx 를 세팅한 서버의 IP 를 참고해서 알맞은 값을 넣도록 한다.
송출되는 스트리밍의 전송량을 설정한다. 아래와 같은 부분에서 마우스로 해당부분을 클릭하고 움직이면 전송량을 설정할 수 있다.
기본적인 설정이 끝나면 nginx 를 이용해서 rtmp 스트리밍을 시작한다. GameCapture HD 프로그램의 아래부분을 보면 다음과 같은 지구본 모양의 아이콘을 확인할 수 있다. 여기를 마우스로 클릭해야 nginx 를 대상으로 하는 스트리밍이 시작된다.
이제 송출은 시작되었으니 OBS 가 설치된 linux desktop 에서 미리 설치된 mplayer 를 통해 다음과 같은 명령어로 방송 송출을 확인한다. 물론 rtmp 가 들어가는 URL 은 앞에서 nginx 를 세팅한 서버의 주소가 포함되어 있아야 한다.
mplayer -vo gl -ao pulse rtmp://192.168.1.7/raw
화면에 영상이 뜨면 OBS 에서 해당되는 화면을 plugin 을 통해 불러들여 사용한다.
Android 폰을 사용한 web cam 의 사용
어차피 스트리밍에서 얼굴을 팔아서 방송할게 아니라면, 그다지 좋은 화질은 필요가 없다. Android 6.0 이상의 폰을 준비하고 google playstore 에서 Droid Cam 을 받아서 설치한다. 아래의 아이콘을 이용해서 프로그램을 실행한다.
물론 안드폰은 wifi 에 OBS 가 설치된 컴퓨터에서 접근할 수 있는 대역으로 연결되어 있어야 한다. 실행된 DroidCam 프로그램에서 안드폰의 IP 및 port 를 확인한다.
화면 구석의 설정을 이용해서 마이크에 대한 설정을 해보자.
어차피 마이크는 OBS 를 통한 별도의 방송용(?) 마이크를 연결할 것이기 때문에 굳이 cam 에서 음성데이터를 받을 필요가 없다. 체크해서 안드폰의 마이크를 비활성화 시킨다.
OBS 가 설치된 linux desktop 에서 ffmpeg 이 설치되어 있는지 확인하고, 다음의 명령어로 Droidcam 에 접속한다. 물론 두번째 스크린샷에서 확인한 IP 및 port 로 접근해야 한다.
ffplay -f mjpeg -probesize 32 -i http://10.0.0.16:5151/video
제대로 접속된다면 Droidcam app 의 화면이 다음처럼 바뀐다. 기본적으로 전면 셀카용 카메라를 사용한다는것을 기억하자.
linux 에서 Logitec c920 Web cam 사용하기
linux (특히 ubuntu) 에서는 별도로 driver 를 설치할 필요는 없다. 다만 실제로 영상을 화면으로 출력하기 위해 다음의 프로그램을 사용한다.
ubuntu 에서는 아주 간단한 방법으로 설치할 수 있다.
sudo apt install guvcview -y
설치가 끝난 다음에 반드시 web cam 을 linux desktop 에 연결하고 나서 guvcview 를 실행하면 다음과 같은 화면을 볼 수 있다.
이 중에서 영상이 나오는 화면을 OBS 의 plugin 으로 불러서 사용하면 된다.
참고문서
- obs install howto for ubuntu
- 유튜브에 실시간 방송 하는법 (OBS 프로그램 기준)
- qtwebkit for linux OBS
- STREAMING WITH OBS AND ELGATO HD60 S FROM MACOS WITHOUT WINDOW CAPTURING
- streamlabs
- GTK+ UVC Viewer