팁 OBS 의 "설정" 의 중요한 부분들 설명-1 , 방송, 출력
페이지 정보
작성자 관리자 조회 23,489회 댓글 0건 작성일 20-09-12 21:29본문
1. 방송
인터넷 방송은 RTMP 라는 프로토콜을 사용합니다.
RTMP 는 업로드 주소에 해당하는 RTMP URL 과, 암호에 해당하는 "스트림 키" 로 이루어져있으며, RTMP 와 스트림키는 방송을 하고자 하는 플랫폼(유튜브, 트위치)의 자신의 방송 대쉬보드에서 받아올수 있습니다.
RTMP 주소 : 업로드 주소
스트림키 : 암호
사용자 지정 RTMP 주소와 스트림 키 입력 화면
-OBS 기본적으로 유튜브나 , 트위치 등은 지원하지만, 지원하지 않는 방송 플랫폼의 경우는 RTMP 주소와 스트림 키를 직접 입력하면 , 어디든 방송이 가능합니다. 유튜브나 트위치도 RTMP 주소와 스트림키를 입력하는 사용자 지정방식으로도 전부 가능합니다.
2. 출력 탭
출력 탭에서는 위에서 설정한 RTMP 로 방송 플랫폼에 전송되거나 , 녹화 되는 영상/오디오 의 품질에 대한 설정을 할 수 있습니다.
출력방식
- 단순/고급 으로 설정을 변경할수 있습니다. 단순 설정은 고급 설정의 내용에 포함되므로 고급 설정에 대하여만 설명하도록 하겠습니다.
방송
- 방송 송출되는 영상의 화질에 대한 설정입니다. 실제로 영상의 오리지널 소스를 인코딩(압축) 하지 않으면 초당 데이터량(비트레이트)이 매우 크기 때문에, 업로드 서버의 데이터를 받아들이는 속도라던지 인터넷망의 속도의 제한때문에, 영상을 전부 전송하기가 힘듭니다. 영상을 제시간에 제대로 전송 하지 못하면 영상이 끊기거나 하겠죠? 따라서, 영상을 OBS 에서 방송 플랫폼으로 실시간 업로드(스트리밍) 할때 실시간으로 압축(인코딩) 하여 용량을 줄여서 내보내게 됩니다. 그것에 대한 설정을 하게 됩니다. 세세한 설정은 해당 인코딩(압축)에 대한 압축률이나 방식 등등 세부 옵션이라고 생각하시면 됩니다.
인코더
QSV - intel quick sync video 인텔CPU 의 내장 GPU가 연산하여 영상을 인코딩 합니다. 인텔 내장 GPU 가 있는 경우에만 사용가능합니다.
NVENC- Nvidia Video Encoder 엔비디아그래픽 카드의 GPU 가 연산하여 영상을 인코딩합니다. Nvidia 그래픽 카드가 있는 경우에만 사용가능합니다.
X264 - CPU 가 연산하여 영상을 인코딩합니다.
인코더에 대해서는 사실 가장 좋은 화질로 인코딩 할수 있는 인코더는 X264 입니다. 하지만 그렇게 하기 위해서는 CPU 점유율 100% 정도로 올라가게 되고 ,드롭 프레임이 많이 발생하는등의 폐해가 커서 , X264의 설정을 줄여서 화질을 낮추게 되면, CPU 는 좀 편안하게 동작하지만, 화질이 하드웨어 인코더보다 많이 떨어지게 됩니다. 실제로 X264 경우는 영상 편집 프로그램에서 결과물을 렌더링할때 (비실시간) 많이 사용하는 인코더라고 볼수 있습니다. 실시간 라이브 방송에는 적합하지 않다고 볼수있습니다.(물론 CPU 가 아주 좋으면 실시간 라이브 방송에도 어느정도 사용은 할 수 있습니다.)
NVENC 와 QSV 는 GPU 파워의 영향을 받게 되는데 소스 영상이 해상도가 높고 인코더의 설정을 높게 해야 할경우 고급형 엔비디아 그래픽 카드를 사용하여 NVENC 를 쓰면 많이 유리합니다. 하지만 인텔 내장 GPU 정도로도 충분한 해상도나 화질의 영상은 QSV 로도 비슷한 화질의 영상이 가능합니다. 화질및 속도는 NVENC 가 좀더 유리하다고 알려져 있으나 QSV 도 크게 차이가 나지는 않는다고 합니다. 인코더 설정을 최대로 높게 해서 GPU 의 사용량을 모니터링 해보고 결정하면 좋을듯합니다.
게임방송을 하는 경우에는 그래픽 카드로는 게임화면을 연산하기 때문에 남는 QSV 로 따로 독립적으로 방송 송출 인코딩을 하면 많이 도움이 됩니다.
출력 배율 재조정 : 방송플랫폼으로 송출되는 스트림의 해상도를 재조정합니다. 일반적인 상황에서는 크게 필요 없습니다. 출력 해상도를 재조정하는것도 GPU 나 CPU 점유를 하게 됩니다.
목표 사용수준 ,
quality : 품질 우선
balanced : 품질 및 속도 균형
Speed : 인코딩 속도
slow, fast : 인코딩 속도
퀄리티 로 놓으면 실시간 속도가 좀 느리더라도 화질 중심으로 인코딩작동하고, 밸런스드로 놓았을시 , 속도와 품질이 둘다 균형있게 맞춰집니다. 인코딩 속도가 빠르면 영상이 인코딩에 의해 딜레이 되는 정도가 줄어들지만 화질은 더더욱 안좋아지게 됩니다. balanced 를 기본으로 사용하고 조금 GPU 파워가 남는다 싶으면 quality 로 설정하면 화질에 좀더 이득을 볼수 있습니다.
만약 네이티브 CPU 인코더인 x264 사용시에 너무 느리게 인코딩이 되서 드롭되는 프레임이 생긴다면 속도위주로 재조정를 해야합니다. 하지만 하드웨어 인코더(NVECN, QSV) 의 사용시에는 거의 그럴일은 없습니다.
코덱을 QSV 나, NVENC , X264등으로 설정후에 아래와 같은 해당 코덱 세부 설정이 있습니다.
사실 QSV 나 NVENC, X264 등도 모두 H.264 라는 표준 코덱을 기반으로한 방식들이기 때문에 세부 설정은 전부 비슷비슷합니다.
Profile . - 코덱의 프로파일 설정
현재 H.264/AVC에서 제공되고 있는 프로파일은 다음과 같습니다.
baseline= 저화질, 빠른속도
Main = 가장 기본셋팅
High = 딜레이가 좀있으나 화질 가장 좋게
프로파일 번호 | 프로파일 이름 | 주요 특징 | |
66 | Baseline | 저전력, 저해상도, 낮은 딜레이를 가짐. CAVLC만 사용, B픽처 사용하지 않음 | |
66 | Constrained Baseline | Baseline과 Main프로파일의 교집합이 되는 기술만 사용 | |
77 | Main | 산술부호화 및 B픽처 사용으로 효율을 높임 | |
88 | Extended | 스트리밍을 위한 기술 및 오류 내성기술 사용 | |
FRExT | 100 | High | 8x8 DCT 사용,8x8 화면내 예측 사용 |
110 | High 10 | High 프로파일 + 10bit/pixel인 영상 지원 | |
110 | High 10 Intra | High10 프로파일에서 화면 내 예측 기술만 사용 | |
122 | High 4:2:2 | High10 프로파일 + 4:2:2 컬러 포맷 지원 | |
122 | High 4:2:2 Intra | High 4:2:2에서 화면 내 예측 기술만 사용 | |
244 | High 4:4:4 Predictive | 최대 14bit/pixel 지원, 4:4:4 컬러 포맷 지원 | |
244 | High 4:4:4 Intra | High 4:4:4 Predictive에서 화면 내 예측 기술만 지원 | |
44 | CAVLC 4:4:4 Intra | High 4:4:4 Intra에서 CAVLC로 사용(CABAC사용하지 않음) |
키프레임 간격
- 보통 영상 인코딩을 하는 방식이 , 프레임간의 변동되지 않은 부분을 삭제 해버리고 , 변동된 부분의 정보만 저장하는 방식이 이용되고 있습니다. 그중에서 키 프레임은, 그 키가 되는 프레임으로, 삭제되는 정보가 없이 화면 전체의 정보를 전부 가지고 있는 "키프레임"을 말합니다. 키프레임 간격이 2초 라면 2초마다 전체샷이 저장되고 그 사이의 프레임들은 키프레임 사이의 움직임이 있어 변동된 부분의 정보만 가지고 있습니다. 또한 영상을 멈췄을때 표시되는 간격이 바로 이 키프레임 간격입니다.
이 키프레임은?
영상 압축기술에서 가장 중요한 부분이라고 볼수 있겠죠.
영상이 기본적으로 1초에 24프레임의 사진을 나열하여 움직이는 영상을 재현하는 방식이라면, 키프레임 간격이 1초라고 했을때 1장의 사진만 온전한 전체 사진이고 나머지 23장은 앞뒤 사진을 비교하여 움직임이 있는 부분의 정보만 기록하는 방식인것입니다.
유튜브와 같은 플랫폼은 키프레임 간격을 3초나 2초를 권장하고 있습니다.
데이터율 제어
여러가지 방식이 있으나 VBR 과 CBR 은 각각, Variable bitrate, Contant bitrate 를 말하며, 보통 라이브 송출은 CBR 을 추천합니다.
Variable bitrate : 비트레이트가 실시간으로 변하면서 압축을함.
비트레이트
비트레이트는 라이브 플랫폼에서 해상도에 따라서 권장하는 비트레이트가 있으며, 해당 플랫폼에 문의하거나 , 제시하는 문서가 있기도 합니다.
유튜브의 경우는 디폴트 스트림키 말고 새로 스트림키를 만들때 지정할수 있는데 아래와 같습니다. OBS 에서 해당 스트림 키와 서로 맞춰주면됩니다.
B-frame
앞서 말한 키프레임은 화면 전체의 정보를 지닌 프레임인것에 비해, 나머지 프레임들은 변동된 움직임에 대한 정보만을 기록한다고 이야기 했습니다. 그러한 변동된 정보를 가진 프레임을 P-프레임이라고 하는데, 이 P-프레임은 앞의 키프레임에서 달라진 변동된 정보만 기록하는 프레임입니다. 그렇게 함으로써 영상의 용량을 많이 줄일 수 있습니다.
그런데 여기에 추가로 B-frame을 도입하게 됩니다.
B-frame 은 앞뒤로 프레임을 비교하여, 키프레임과 P-프레임, 또는 P-프레임들 끼리 비교하여 변동 된 정보를 기록하는 프레임입니다. 그래서 일반적인 P-frame 보다도 훨씬 용량이 적어지게 됩니다. 즉 B-frame 을 많이 넣을수록 영상의 용량을 더욱더 절약 할 수 있습니다. 하지만 당연히 이러한 B나 P 프레임이 많아지면 영상의 화질은 저하 됩니다. 특히 움직임이 많을수록 화질이 많이 저하게되 됩니다. 또한, B-frame을 많이 넣게 되면 더욱더 복잡한 연산이 필요하게 되어 CPU와 GPU의 사용량은 더욱더 늘어나게 됩니다.
P-frame 과 B-frame 이 다른 부분은, P-frame 은 앞의 키프레임에 비해서 바뀐 정보만을 기록하는 방식에 비하여, B-frame 은 앞과 뒤의 프레임을 서로 비교하여 변동된 정보를 찾아내서 기록하는 방식이라는 점입니다. 그래서 Bi-directional predicted 프레임이라고 합니다.
B-frame은 일반적으로 2나 3정도의 값을 권장합니다. (움직임이 많은 영상일 경우는 0으로 놓아도 좋습니다)
I-frame : Infra-frame
P-frame : Predicted-frame
B-frame : Bi-directional Predicted-frame
녹화
녹화에서는 방송 송출이 아닌 레코딩에 사용될 인코더의 스팩을 지정합니다.
대체적으로 방송탭의 인코더 옵션과 비슷합니다.
다만 녹화 인 만큼, 방송플랫폼이 원하는 비트레이트가 아닌, 더 높은 비트레이트를 설정함으로써, 녹화되는 영상의 화질을 좋게 만들수 있있습니다만 녹화되는 파일 용량이 커지게 됩니다.
대체적으로 1080P 영상의 경우에는 캠코더나 카메라에서 레코딩되는 원본 영상들의 경우
25Mbps, 50Mbps 등의 비트레이트로 레코딩 되는경우가 많습니다. 그래서 이와 비슷하게 옵션을 설정하여 사용하면, 캠코더나 카메라의 원본 영상의 화질과 비슷한 결과를 얻을수 있으리라 생각됩니다.
(4K 의 경우에는 100Mbps )
단위에 조심하세요. 25Mbps = 25000Kbps.
방송과 녹화를 동시에 하는 경우 높은 GPU 사용량이 요구 되므로 GPU 점유율을 확인하는것이 중요합니다.
왠만하면 I3나 I5 이상급의 CPU 에 내장된 QSV아래로는 방송과 녹화를 동시에 하는것은 쉽지 않습니다. 방송과 녹화를 동시에 해야하는 경우는 NVENC 사용을 권장합니다. 내장된 저장매체의 읽기 쓰기 속도도 중요하므로 SDXC 나 SDD 에 녹화하는것을 추천드립니다. (사전에 충분한 읽기 쓰기속도가 나오는지 속도 테스트를 꼭 해보시기 바랍니다.)