인터넷 방송툴 하면 가장 먼저 떠오르는게 OBS STUDIO이다. 물론 VMIX라는 유료 툴과 개인방송에서 사용하는 Xspilit라는 툴도 있지만 우리나라 인터넷방송 툴하면 단연 OBS이다.
인터넷방송시장에서 대부분 OBS를 사용하는 주된 이유는 다음과 같다.
1. 무료 Linux 처럼 향후 유료로 바뀔 가능성이 거의 없다
2. 오픈 소스로 인한 많은 플러그인과 라이브러리를 지원 중이고 계속 발표 중
3. 무료 버전 치고 높은 안정도(장치=가상파일/마운트 개념 이해 시)
4. 지원해 주는 많은 하드웨어 레퍼런스(Blackmagic도 지원)
5. RTMP RTSP NDI 등 다른 통신 프로토콜 포팅이 원할함
6. Zoom(회의툴)과 연동이 가능해 Zoom의 부족한 화질, 음질, 기능 등을 보완
7. 윈도 기본 장치를 거의 모두 지원
8. 방송, 녹화, 송출, 자막연동, 키작업까지 확장 유연성
9. 이해, 사용하기 쉬운 인터페이스
10. 범용 Nvidia HW 코덱과 범용 SW 코덱 모두 지원
이러한 이유로 OBS는 인터넷방송에서 가장 막강한 툴이 돼가고 있는 중이다. 그러나 처음 접하는 사용자들은 방송인을 막론하고 OBS에 대해 발생하는 오류가 왜 일어나는지 모르고 사용하는 경우가 대다수다. 특히 방송전문가들은 HW만을 이용해 방송해왔기 때문에 이러한 인터넷방송 툴에 대한 이해가 더욱 쉽지 않다. 때문에 OBS에 대해 살펴 보면서 인터넷에서 찾기 어려운 OBS의 운영 개념과 TIP만 추려 언급해 보도록 하겠다(인터넷에서 쉽게 찾아볼 수 있는 기능들은 설명하지 않는다).
OBS 구조 이해 하기
OBS 스튜디오를 열면 생기는 창에 아래 두번째 소스목록이 있다 여기에 오른쪽 마우스를 누르면 다음의 창이 열린다.

그럼 이러한 하드웨어 장치를 연결하는 것이다. 쉽게 말해 가진 장치들을 전부 연결하면 모든 연결이 끝난다.
외부 장치 뿐 아니라 컴퓨터 내부에 있는 모니터, PC에 뜬 유튜브 창까지 하나의 장치로 인식한다.
동영상 소스마다 다른 입력장치로 인식하기 때문에 편리하다. 그게 바로 VLC 비디오 소스이다.
각각의 하드웨어 장치들과 소스 장치들은 모두 하드웨어가 받쳐주는 이상 계속적으로 중복 등록할 수 있다.
즉 같은 장치를 두번 세번 등록 가능하고 가상장치처럼 등록돼 사용할 수 있다는 것이다.
인터넷에 있는 설명서는 따라하기에 불과하므로 다음 구조도를 보고 이해 해보자.

방송하는 사람들은 하드웨어와 소프트웨어만 일단 연결하기만 하면 그 다음은 무엇이든 쉽다. 화면만 뜨면 그 다음은 테스트를 하면서 알아볼 수 있는 것이다.
이처럼 하드웨어가 연결되면 화면에서 보여주는 해당 화면 녹화를 누르면 사전 설정대로 녹화되고 방송하면 설정대로 방송하는 것이다. 방송 옵션은 인터넷이나 유튜브를 보면 잘 나와 있어 처음 시작하시는 사용자들은 이를 알면 일단 시작할 수 있다. 소스화면이 안 나오고 오디오 연결되는 방식을 알지 못하니까 혼동이 일어나 자신이 없었던 것 뿐이다. 소스선택에 대한 모든 옵션은 소스창 내에서 오른쪽 마우스를 누르면 나오는 옵션이 전부다. 이 옵션을 통해 하드웨어나 인터넷창, PC내 화일과 장치들을 인식시키지 못하면 연결이 안 된거다.
그럼 OBS를 이용하기 위한 중요 개념과 팁을 살펴 보자.

첫번째, NDI로 ZOOM과 OBS를 연결할 수 있다.
이렇게 하면 ZOOM 같은 회의 프로그램은 카메라와 관련해 옵션이 거의 없고 오디오 옵션도 마찬가지다. 때문에 우선 마이크와 카메라를 OBS에 연결한 후 OBS에서 ZOOM으로 보내면 ZOOM이 인코딩 과정을 거치지 않으므로 프로세스가 가벼워져 화질 보상도 되고 대역폭상 전송화질이 좋아지는 장점이 있다.

NDI로 연결하지 않고 쓰는 방법도 있다. 프로세스 자체가 가벼워지는게 목적이어서 이 때는 NDI로 하는게 좀 더 화질 보상에 유리하다.
NDI 카메라를 연결하기 위해서는 NDI 소스가 옵션에 있어야 하는데 기본적으로 없다.
OBS 사이트에 가면 NDI 플러그 인이 있다. 이를 설치하하고 OBS를 다시 실행하면 소스목록에 뜬다.
비슷하게 오디오에서 유명한 ASIO 관련 장치들이 대부분이다. 이것도 마찬가지로 OBS 사이트에서 ASIO 플러그 인을 다운받아 설치하면 소스목록에 뜬다.

두번째, 갑자기 장치가 작동하지 않을 경우 가상화 개념을 이해하고 대처한다.
사실 모든 OBS 장치는 갑자기 장치가 작동하지 않는 경우가 생길 수 있다. 모든 장치를 가상화해서 컨트롤하기 때문이다.
예컨데 LINUX와 UNIX 계열은 모든 하드웨어 장치를 화일로 인식한다. 장치를 연결할 때마다 마운트해야 하며 마운트가 해제되면 다시 마운트 해야한다. 윈도는 편리하게도 자동으로 마우스를 꼽으면 마우스를 인식하고 USB 드라이브를 꼽으면 화일을 자동으로 보여주지만 유닉스 계열 시스템은 그렇지 않다. 유닉스 개열에서는 장치는 모두 화일로 인식해 처리한다. 대신 화일을 바로가기 처럼 사용하거나 복제하는 것처럼 하드웨어 장치 마저도 가상으로 인식해 복제한듯 사용이 가능하다. 즉 컴퓨터 리소스가 허락하는 한 같은 장치가 멀티 인식될 수 있다는 것이다. 이것이 OBS에서의 장치 인식 개념이다.

이런 이유로 실제 장치를 마운트 하는 과정이 꼭 필요하다.
같은 장치를 계속 추가하면 같은 화면, 음성 등이 계속 화면에 생긴다.
하지만 가상으로 장치를 인식하면 인터페이스상 조작성이 빠르고 프로그램 운영이 안정되지만 장치 정보가 갑자기 변경되면 상황이 달라진다.
가상으로 복제해 파일을 사용하고 있는데 이 파일이 사실은 장치이어서 백앤드에서 장치와 링크가 유지돼 있다.
그런데 파일의 위치가 갑자기 변경되면 애플리케이션 레이어와 통신이 안 돼 버퍼에 남게 된다.
예컨데 작업 중에 화일 위치가 옮겨졌거나 사라졌다고 상상해 보자. 파일 편집 중에는 모르다가 작업이 진행되면서 계속 파일에 오류가 났다며 파일을 찾는다. 파일의 문제가 해결 될때까지 장치인식에 버그가 생기는 것이다. 장치 인식이 안 된다고 이것저것 시도하게 되면 해댕 작업이 전부 프로그램 버퍼에 쌓이게 되고 결국 다시는 이미 만들어진 가상 장치에 연결하지 못할 경우도 있다. 즉 복구할 수 없다는 것이다. 이런 현상이 바로 사람들이 OBS를 운영하며 자주 만나게 되는 현상이다. 이는 사실 오류가 아니라 본인이 만든 에러이다.
예를 들어 한번 OBS를 안정적으로 사용하려면 장치를 갑자기 자주 뺐다가 꼽거나 다른 USB 포트에 꼽으면 장치를 다시 추가해 가상장치를 생성해 줘야 한다. 즉 기존 만들어진 소스를 지우고 새로운 가상 소스를 만들어 줘야 한다는 것이다. 처음 OBS를 사용하는 사람들은 이 개념을 모르고 계속 소스 설정을 하고 재부팅하는 작업을 계속 하려한다.

특히 USB 장치는 UUID로 제어되지 않고 장치 포트와 순서 정보도 등록돼 컨트롤되는 경우가 있다. 장치종류가 단일 종류가 아닐 때 UUID형식이 다양해지기 때문에 고유의 USB 아이디로 컨트롤 하지 않는것이다. OBS가 그런 경우에 속한다. 당연히 캡처카드/오디오 인터페이스/사운드 카드/카메라 등 많은 종류의 장치를 인식하기 때문에 고유의 ID를 이용하지는 않게 된다.
때문에 장치를 뽑거나 USB 포트를 앞에서 뒤로 옮기거나 노트북의 좌측과 우측 USB포트를 바꿔 장치를 꼽을 때 컴퓨터 USB 포트 칩 배열과 장치 인식 OS 내부 절차에 따라 장치의 연결정보가 바뀌어 장치를 갑자기 인식하지 않을 수 있는것이다. 내 컴퓨터에서 폴더 위치가 옮겨진 것과 같은 것이다.
하드웨어를 만지지 않았는데 갑자기 그런 경우는 없고 컴퓨터에 마우스, 키보드, 프린터, 오디오 인터페이스 같은 USB포트를 건드리다가 캡처보드 포트 순서가 바뀌어 갑자기 화면이 안 보이는 경우가 생기는 것이다.
아무런 장치도 꼽거나 빼지 않았다면 1년이 지나도 장치를 잃어버리는 경우는 없다. 필자가 직접 1년간 테스트 해보았다. 유명 교회 소강당에서 이동식 노트북으로 방송장비를 만들었다. 노트북을 OBS 전용으로 해두고 USB 마우스와 캡처카드 위치를 항상 같은 포트를 사용하도록 했더니 5년이 지난 지금까지도 에러 한 번 없었다.
OBS가 환경을 저장하는 기능이 없는 건 이러한 가상장치 개념 때문이다. 당연하겠지만 환경을 전부 저장해 놓았는데 환경을 리콜하면 모두 제자리로 돌아와 오지 않나? 하지만 환경 복구 시점에서 사용자가 장치연결 포트와 장치 개수가 조금이라도 변경, 추가됐다면 오류가 발생할 것이다. 이를 엄청난 버그라고 인식할 것이다. 즉 환경 저장기능이 없는 것은 어떻게 보면 일반인들을 위한 배려라고 볼 수 있다.
이런 이유로 OBS는 모든 장치, 필터, 방송설정 등을 가장 최근의 설정만 저장하고 지난 설정 히스토리 저장을 하지 않는다.
OBS내의 프로파일이라는 것은 방송하는 사람들이 생각하는 환경설정 화일이 아니다. 여기서 또 다른 팁을 방출한다.



세번째, OBS에는 하드웨어 소프트웨어 환경설정 기능이 없고 백업을 해주는 플러그 인도 없다. 단 대책은 있다
OBS가 없는 건 앞에서 언급한 것처럼 모든 하드웨어를 화일화해 연동하기 때문이다. 기본적으로 이같은 기능에 대한 이해 없이 사용할 수 없다는 의미로도 해석할 수 있다. 환경설정화일을 만들어 주면 아마도 오히려 많은 에러를 발생시킬 개연성이 높다.
OBS 프로그램 차체가 동영상 파일플레이를 자동으로 하도록 등록을 해놓으면 동영상 파일 자체가 하나의 CD플레이어처럼 가상장치로 등록된다. 그런데 파일을 옮기면 당연히 장치 등록 정보를 잃어 버려 오류가 나는 것이다. 이 때 파일 위치를 찾아주면 되는 경우가 있지만 대다수 가상 장치 개념에 의해 다시 VLC비디오 장치를 만들어 동영상파일을 연결해 가상장치를 만들어주는 게 에러를 없애는 방법이다.
이러한 모든 OBS 환경 설정을 자동으로 백업하고 클라우드에서 관리해 주는 시스템을 개발한 유일한 업체가 자랑스럽게도 한국에 있다. 그런데 이를 밝히지 못하는 건 무슨 이유에서인지 모르지만 해당 업체가 시스템 출시를 하지 않고 있어 의문이다.

이하 중략 .. 8월호 본지 참조
인터넷 방송툴 하면 가장 먼저 떠오르는게 OBS STUDIO이다. 물론 VMIX라는 유료 툴과 개인방송에서 사용하는 Xspilit라는 툴도 있지만 우리나라 인터넷방송 툴하면 단연 OBS이다.
인터넷방송시장에서 대부분 OBS를 사용하는 주된 이유는 다음과 같다.
1. 무료 Linux 처럼 향후 유료로 바뀔 가능성이 거의 없다
2. 오픈 소스로 인한 많은 플러그인과 라이브러리를 지원 중이고 계속 발표 중
3. 무료 버전 치고 높은 안정도(장치=가상파일/마운트 개념 이해 시)
4. 지원해 주는 많은 하드웨어 레퍼런스(Blackmagic도 지원)
5. RTMP RTSP NDI 등 다른 통신 프로토콜 포팅이 원할함
6. Zoom(회의툴)과 연동이 가능해 Zoom의 부족한 화질, 음질, 기능 등을 보완
7. 윈도 기본 장치를 거의 모두 지원
8. 방송, 녹화, 송출, 자막연동, 키작업까지 확장 유연성
9. 이해, 사용하기 쉬운 인터페이스
10. 범용 Nvidia HW 코덱과 범용 SW 코덱 모두 지원
이러한 이유로 OBS는 인터넷방송에서 가장 막강한 툴이 돼가고 있는 중이다. 그러나 처음 접하는 사용자들은 방송인을 막론하고 OBS에 대해 발생하는 오류가 왜 일어나는지 모르고 사용하는 경우가 대다수다. 특히 방송전문가들은 HW만을 이용해 방송해왔기 때문에 이러한 인터넷방송 툴에 대한 이해가 더욱 쉽지 않다. 때문에 OBS에 대해 살펴 보면서 인터넷에서 찾기 어려운 OBS의 운영 개념과 TIP만 추려 언급해 보도록 하겠다(인터넷에서 쉽게 찾아볼 수 있는 기능들은 설명하지 않는다).
OBS 구조 이해 하기
OBS 스튜디오를 열면 생기는 창에 아래 두번째 소스목록이 있다 여기에 오른쪽 마우스를 누르면 다음의 창이 열린다.
그럼 이러한 하드웨어 장치를 연결하는 것이다. 쉽게 말해 가진 장치들을 전부 연결하면 모든 연결이 끝난다.
외부 장치 뿐 아니라 컴퓨터 내부에 있는 모니터, PC에 뜬 유튜브 창까지 하나의 장치로 인식한다.
동영상 소스마다 다른 입력장치로 인식하기 때문에 편리하다. 그게 바로 VLC 비디오 소스이다.
각각의 하드웨어 장치들과 소스 장치들은 모두 하드웨어가 받쳐주는 이상 계속적으로 중복 등록할 수 있다.
즉 같은 장치를 두번 세번 등록 가능하고 가상장치처럼 등록돼 사용할 수 있다는 것이다.
인터넷에 있는 설명서는 따라하기에 불과하므로 다음 구조도를 보고 이해 해보자.
방송하는 사람들은 하드웨어와 소프트웨어만 일단 연결하기만 하면 그 다음은 무엇이든 쉽다. 화면만 뜨면 그 다음은 테스트를 하면서 알아볼 수 있는 것이다.
이처럼 하드웨어가 연결되면 화면에서 보여주는 해당 화면 녹화를 누르면 사전 설정대로 녹화되고 방송하면 설정대로 방송하는 것이다. 방송 옵션은 인터넷이나 유튜브를 보면 잘 나와 있어 처음 시작하시는 사용자들은 이를 알면 일단 시작할 수 있다. 소스화면이 안 나오고 오디오 연결되는 방식을 알지 못하니까 혼동이 일어나 자신이 없었던 것 뿐이다. 소스선택에 대한 모든 옵션은 소스창 내에서 오른쪽 마우스를 누르면 나오는 옵션이 전부다. 이 옵션을 통해 하드웨어나 인터넷창, PC내 화일과 장치들을 인식시키지 못하면 연결이 안 된거다.
그럼 OBS를 이용하기 위한 중요 개념과 팁을 살펴 보자.
첫번째, NDI로 ZOOM과 OBS를 연결할 수 있다.
이렇게 하면 ZOOM 같은 회의 프로그램은 카메라와 관련해 옵션이 거의 없고 오디오 옵션도 마찬가지다. 때문에 우선 마이크와 카메라를 OBS에 연결한 후 OBS에서 ZOOM으로 보내면 ZOOM이 인코딩 과정을 거치지 않으므로 프로세스가 가벼워져 화질 보상도 되고 대역폭상 전송화질이 좋아지는 장점이 있다.
NDI로 연결하지 않고 쓰는 방법도 있다. 프로세스 자체가 가벼워지는게 목적이어서 이 때는 NDI로 하는게 좀 더 화질 보상에 유리하다.
NDI 카메라를 연결하기 위해서는 NDI 소스가 옵션에 있어야 하는데 기본적으로 없다.
OBS 사이트에 가면 NDI 플러그 인이 있다. 이를 설치하하고 OBS를 다시 실행하면 소스목록에 뜬다.
비슷하게 오디오에서 유명한 ASIO 관련 장치들이 대부분이다. 이것도 마찬가지로 OBS 사이트에서 ASIO 플러그 인을 다운받아 설치하면 소스목록에 뜬다.
두번째, 갑자기 장치가 작동하지 않을 경우 가상화 개념을 이해하고 대처한다.
사실 모든 OBS 장치는 갑자기 장치가 작동하지 않는 경우가 생길 수 있다. 모든 장치를 가상화해서 컨트롤하기 때문이다.
예컨데 LINUX와 UNIX 계열은 모든 하드웨어 장치를 화일로 인식한다. 장치를 연결할 때마다 마운트해야 하며 마운트가 해제되면 다시 마운트 해야한다. 윈도는 편리하게도 자동으로 마우스를 꼽으면 마우스를 인식하고 USB 드라이브를 꼽으면 화일을 자동으로 보여주지만 유닉스 계열 시스템은 그렇지 않다. 유닉스 개열에서는 장치는 모두 화일로 인식해 처리한다. 대신 화일을 바로가기 처럼 사용하거나 복제하는 것처럼 하드웨어 장치 마저도 가상으로 인식해 복제한듯 사용이 가능하다. 즉 컴퓨터 리소스가 허락하는 한 같은 장치가 멀티 인식될 수 있다는 것이다. 이것이 OBS에서의 장치 인식 개념이다.
이런 이유로 실제 장치를 마운트 하는 과정이 꼭 필요하다.
같은 장치를 계속 추가하면 같은 화면, 음성 등이 계속 화면에 생긴다.
하지만 가상으로 장치를 인식하면 인터페이스상 조작성이 빠르고 프로그램 운영이 안정되지만 장치 정보가 갑자기 변경되면 상황이 달라진다.
가상으로 복제해 파일을 사용하고 있는데 이 파일이 사실은 장치이어서 백앤드에서 장치와 링크가 유지돼 있다.
그런데 파일의 위치가 갑자기 변경되면 애플리케이션 레이어와 통신이 안 돼 버퍼에 남게 된다.
예컨데 작업 중에 화일 위치가 옮겨졌거나 사라졌다고 상상해 보자. 파일 편집 중에는 모르다가 작업이 진행되면서 계속 파일에 오류가 났다며 파일을 찾는다. 파일의 문제가 해결 될때까지 장치인식에 버그가 생기는 것이다. 장치 인식이 안 된다고 이것저것 시도하게 되면 해댕 작업이 전부 프로그램 버퍼에 쌓이게 되고 결국 다시는 이미 만들어진 가상 장치에 연결하지 못할 경우도 있다. 즉 복구할 수 없다는 것이다. 이런 현상이 바로 사람들이 OBS를 운영하며 자주 만나게 되는 현상이다. 이는 사실 오류가 아니라 본인이 만든 에러이다.
예를 들어 한번 OBS를 안정적으로 사용하려면 장치를 갑자기 자주 뺐다가 꼽거나 다른 USB 포트에 꼽으면 장치를 다시 추가해 가상장치를 생성해 줘야 한다. 즉 기존 만들어진 소스를 지우고 새로운 가상 소스를 만들어 줘야 한다는 것이다. 처음 OBS를 사용하는 사람들은 이 개념을 모르고 계속 소스 설정을 하고 재부팅하는 작업을 계속 하려한다.
특히 USB 장치는 UUID로 제어되지 않고 장치 포트와 순서 정보도 등록돼 컨트롤되는 경우가 있다. 장치종류가 단일 종류가 아닐 때 UUID형식이 다양해지기 때문에 고유의 USB 아이디로 컨트롤 하지 않는것이다. OBS가 그런 경우에 속한다. 당연히 캡처카드/오디오 인터페이스/사운드 카드/카메라 등 많은 종류의 장치를 인식하기 때문에 고유의 ID를 이용하지는 않게 된다.
때문에 장치를 뽑거나 USB 포트를 앞에서 뒤로 옮기거나 노트북의 좌측과 우측 USB포트를 바꿔 장치를 꼽을 때 컴퓨터 USB 포트 칩 배열과 장치 인식 OS 내부 절차에 따라 장치의 연결정보가 바뀌어 장치를 갑자기 인식하지 않을 수 있는것이다. 내 컴퓨터에서 폴더 위치가 옮겨진 것과 같은 것이다.
하드웨어를 만지지 않았는데 갑자기 그런 경우는 없고 컴퓨터에 마우스, 키보드, 프린터, 오디오 인터페이스 같은 USB포트를 건드리다가 캡처보드 포트 순서가 바뀌어 갑자기 화면이 안 보이는 경우가 생기는 것이다.
아무런 장치도 꼽거나 빼지 않았다면 1년이 지나도 장치를 잃어버리는 경우는 없다. 필자가 직접 1년간 테스트 해보았다. 유명 교회 소강당에서 이동식 노트북으로 방송장비를 만들었다. 노트북을 OBS 전용으로 해두고 USB 마우스와 캡처카드 위치를 항상 같은 포트를 사용하도록 했더니 5년이 지난 지금까지도 에러 한 번 없었다.
OBS가 환경을 저장하는 기능이 없는 건 이러한 가상장치 개념 때문이다. 당연하겠지만 환경을 전부 저장해 놓았는데 환경을 리콜하면 모두 제자리로 돌아와 오지 않나? 하지만 환경 복구 시점에서 사용자가 장치연결 포트와 장치 개수가 조금이라도 변경, 추가됐다면 오류가 발생할 것이다. 이를 엄청난 버그라고 인식할 것이다. 즉 환경 저장기능이 없는 것은 어떻게 보면 일반인들을 위한 배려라고 볼 수 있다.
이런 이유로 OBS는 모든 장치, 필터, 방송설정 등을 가장 최근의 설정만 저장하고 지난 설정 히스토리 저장을 하지 않는다.
OBS내의 프로파일이라는 것은 방송하는 사람들이 생각하는 환경설정 화일이 아니다. 여기서 또 다른 팁을 방출한다.
OBS가 없는 건 앞에서 언급한 것처럼 모든 하드웨어를 화일화해 연동하기 때문이다. 기본적으로 이같은 기능에 대한 이해 없이 사용할 수 없다는 의미로도 해석할 수 있다. 환경설정화일을 만들어 주면 아마도 오히려 많은 에러를 발생시킬 개연성이 높다.
OBS 프로그램 차체가 동영상 파일플레이를 자동으로 하도록 등록을 해놓으면 동영상 파일 자체가 하나의 CD플레이어처럼 가상장치로 등록된다. 그런데 파일을 옮기면 당연히 장치 등록 정보를 잃어 버려 오류가 나는 것이다. 이 때 파일 위치를 찾아주면 되는 경우가 있지만 대다수 가상 장치 개념에 의해 다시 VLC비디오 장치를 만들어 동영상파일을 연결해 가상장치를 만들어주는 게 에러를 없애는 방법이다.
이러한 모든 OBS 환경 설정을 자동으로 백업하고 클라우드에서 관리해 주는 시스템을 개발한 유일한 업체가 자랑스럽게도 한국에 있다. 그런데 이를 밝히지 못하는 건 무슨 이유에서인지 모르지만 해당 업체가 시스템 출시를 하지 않고 있어 의문이다.
이하 중략 .. 8월호 본지 참조