SETTING OBS Linux

From 흡혈양파의 인터넷工房
Jump to navigation Jump to search
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 를 사용하는 것을 권장한다.


기본구조

OBS Diagram 01

위 다이어그램에서 표시되는 요소는 다음과 같다.

  • 하늘색 : 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 Program Default

물론 처음 설치하면 소스목록 또는 장면목록 에는 아무것도 나오지 않음을 참고한다.


OBS 와 youtube 방송의 세팅

다음의 주소를 참고해서 방송 기본 세팅 테스트를 한다.


qtwebkit 의 설치

OBS Diagram 02

일반적인 인터넷 방송을 본적이 있다면 채팅창이 화면에 알파채널을 먹여서 배경이 비치게 보이는 모습을 본 적이 있을것이다. 이건 몇몇 서비스에서 제공하는 채팅 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 를 통해 송출할 수 있다.

OBS QtWebkit plugin


Linux 에서 HD60 s 를 통해서 playstation 4 화면을 OBS 에 띄우기

OBS Diagram 03

linux 에서는 HD60 s 캡처장비가 동작할 driver 가 없기때문에, 다음과 같은 과정을 통해서 화면을 linux 의 Obs 로 전송해야 한다.

  1. GameCapture HD 프로그램을 통해 ps4 화면을 HDMI 로 받는다
  2. 받은 화면을 rtmp 로 미리 준비해둔 nginx 서버로 송출한다
  3. OBS 가 설치된 linux desktop 에서 mplayer 를 통해 rtmp 방송을 받는다.
  4. 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 프로그램을 다운로드 받아서 설치한다. 장비를 연결하고, 아래와 같은 아이콘을 더블클릭해서 프로그램을 실행한다.

GameCaptureHD 01


프로그램을 실행하면 아래와 같은 화면을 확인할 수 있다. 이 화면에서 오른쪽의 영역을 살펴보자. Live Streaming 이라는 항목이 있다.

GameCaptureHD 02


해당되는 항목에서 옆의 + 버튼을 누른다. 그러면 위쪽으로 스트리밍 할 수 있는 목록이 뜨는데, 이중에서 rtmp 를 선택한다.

GameCaptureHD 03


rtmp 를 선택하면 다음과 같은 팝업창을 확인할 수 있다. 위의 gentoo linux 에 nginx 를 세팅한 서버의 IP 를 참고해서 알맞은 값을 넣도록 한다.

GameCaptureHD 04


송출되는 스트리밍의 전송량을 설정한다. 아래와 같은 부분에서 마우스로 해당부분을 클릭하고 움직이면 전송량을 설정할 수 있다.

GameCaptureHD 05


기본적인 설정이 끝나면 nginx 를 이용해서 rtmp 스트리밍을 시작한다. GameCapture HD 프로그램의 아래부분을 보면 다음과 같은 지구본 모양의 아이콘을 확인할 수 있다. 여기를 마우스로 클릭해야 nginx 를 대상으로 하는 스트리밍이 시작된다.

GameCaptureHD 06


이제 송출은 시작되었으니 OBS 가 설치된 linux desktop 에서 미리 설치된 mplayer 를 통해 다음과 같은 명령어로 방송 송출을 확인한다. 물론 rtmp 가 들어가는 URL 은 앞에서 nginx 를 세팅한 서버의 주소가 포함되어 있아야 한다.

mplayer -vo gl -ao pulse rtmp://192.168.1.7/raw


화면에 영상이 뜨면 OBS 에서 해당되는 화면을 plugin 을 통해 불러들여 사용한다.


Android 폰을 사용한 web cam 의 사용

OBS Diagram 04

어차피 스트리밍에서 얼굴을 팔아서 방송할게 아니라면, 그다지 좋은 화질은 필요가 없다. Android 6.0 이상의 폰을 준비하고 google playstore 에서 Droid Cam 을 받아서 설치한다. 아래의 아이콘을 이용해서 프로그램을 실행한다.

DroidCam 01


물론 안드폰은 wifi 에 OBS 가 설치된 컴퓨터에서 접근할 수 있는 대역으로 연결되어 있어야 한다. 실행된 DroidCam 프로그램에서 안드폰의 IP 및 port 를 확인한다.

DroidCam 02


화면 구석의 설정을 이용해서 마이크에 대한 설정을 해보자.

DroidCam 03


어차피 마이크는 OBS 를 통한 별도의 방송용(?) 마이크를 연결할 것이기 때문에 굳이 cam 에서 음성데이터를 받을 필요가 없다. 체크해서 안드폰의 마이크를 비활성화 시킨다.

DroidCam 04


OBS 가 설치된 linux desktop 에서 ffmpeg 이 설치되어 있는지 확인하고, 다음의 명령어로 Droidcam 에 접속한다. 물론 두번째 스크린샷에서 확인한 IP 및 port 로 접근해야 한다.

ffplay -f mjpeg -probesize 32 -i http://10.0.0.16:5151/video


제대로 접속된다면 Droidcam app 의 화면이 다음처럼 바뀐다. 기본적으로 전면 셀카용 카메라를 사용한다는것을 기억하자.

DroidCam 05


linux 에서 Logitec c920 Web cam 사용하기

linux (특히 ubuntu) 에서는 별도로 driver 를 설치할 필요는 없다. 다만 실제로 영상을 화면으로 출력하기 위해 다음의 프로그램을 사용한다.


ubuntu 에서는 아주 간단한 방법으로 설치할 수 있다.

sudo apt install guvcview -y


설치가 끝난 다음에 반드시 web cam 을 linux desktop 에 연결하고 나서 guvcview 를 실행하면 다음과 같은 화면을 볼 수 있다.

guvcview with logitec c920


이 중에서 영상이 나오는 화면을 OBS 의 plugin 으로 불러서 사용하면 된다.


참고문서