AD

방송하기 단일 컴퓨터에서 하드웨어 인코더에 대해서 조금 더.

베리머취래빗e6748
2016-12-14 22:37:08 15833 0 5

단일 컴퓨터에서 CPU 자원부족을 막는 방법으로 하드웨어 인코더를 방법이 있지만 아직 불확실한 면이 있는 부분에 대한 보완이 필요한 것 같아 또 다시 글을.


일단 엔비디어의 NVenc나 AMD의 AMF, 그리고 인텔의 QuickSync가 대표적인 하드웨어 인코더입니다.

x264는 CPU를 이용한 방법으로 어려가지 편리성으로 널리 사용되고 있는 방법입니다.


그런데 x264를 대체하는 하드웨어 인코더는 제약이 있는데, 1개의 그래픽 카드당 1개의 작업만 붙여야 합니다.

(여러개의 그래픽카드를 꽂아서 그래픽카드마다 하드웨어 인코딩을 쓸 수도 있다고 설명이 있지만 실험을 해볼 수 없었습니다.

쿼드로는 이런 제약이 없는 것으로 알고 있습니다.)


예를 든다면, 방송과 녹화을 병행한다면,

방송용 인코더로는 QuickSync로 설정하고, 녹화용 인코더로는 NvEnc나 AMF를 설정합니다.

만약 이 둘을 같이 사용할 수 없는 경우에는 하나에는 x264 인코딩을 사용해야 합니다.


결론적으로 일반적인 환경에서 완전하게 하드웨어 인코더로 방송과 녹화를 모두 하려면

인텔의 퀵싱크와 외장 그래픽카드의 인코딩 기능을 각각 모두 사용해야 합니다.

방송 = QuickSync, 녹화 = NVenc 혹은 AMF

만약 퀵싱크나 외장 그래픽카드의 하드웨어 인코딩 중 하나가 불가능하다면 방송과 녹화중에 하나에는 x264 인코딩을 사용할 수 밖에 없습니다.

(QuickSync가 불가능한 경우 -> "방송 = NVenc 혹은 AMF, 녹화 = x264" 혹은 "방송 = x264, 녹화 = NVenc 혹은 AMF")


다르게 여러 rtmp서버(유툽+트위치)로 송출한다는 가정을 잡는다면,

방송1 = QuickSync, 방송2 = x264, 녹화 =NVenc 또는 AMF // (각각 사용하는 방법은 달리해도 문제는 없습니다)

이런 식으로 각각의 인코더로 하면 됩니다.

x264는 겹치게 사용할 수 있어 단일 사용의 제약이 없으므로 또 하나가 더 늘어나게 되면 그쪽에 x264를 붙이면 됩니다.


다중 송출의 경우에는 송출형식이 달라서 문제가 되지 않는다면,

다른 방법으로 nginx웹서버에 rtmp플러그인이 들어간 것으로 할 수 있는데 이 방법으로 인코딩된 데이터를 그대로 복사(설정에 push구문을 추가)해서

추가적인 인코딩이 필요없이 각각의 다른 rtmp서버로 전송할 수 있습니다.


조금 난해한 글이지만 참고가 되셨기를~


댓글 5개  
이전 댓글 더 보기
AD
▼아랫글 Clip 제목 수정 기능 추가 트게더
방송하기프로그램채팅/봇업데이트
2
업데이트
Clip 제목 수정 기능 추가 [3]
Global Moderator 트게더
12-13
1
12-09
2
방송하기
퀵싱크 사용하기 [4]
베리머취래빗
11-29
2
11-23
21
11-10
0
11-04
0
10-31
1
10-28
12
프로그램
움직이는 이모티콘 사용법. [6]
기영이영
10-21
2
08-30
1
08-24
인기글 글 쓰기