0. 계기
얼마 전(사실 거의 한달 전) AWS Partner Summit Online 2021이 진행되었다
작년 말 리인벤트 때는 SageMaker가 대세구나! 를 느꼈다면, 이번엔 IVS가 대세라는게 느껴져서 실습을 한 번은 해봐야겠다고 생각을 했다
1. IVS란?
라이브 방송을 위한 AWS 서비스는 많다(사실 내 분야 아니라서 몰랐음 ㅎㅅㅎ)
그러나 양방향 라이브 방송은 IVS(Interactive Video Service, 20년 7월 출시)밖에 없다고 한다
"간편하게 라이브 동영상을 스트리밍"할 수 있고, "짧은 지연시간을 제공"하며, "웹 사이트 및 웹에 간편하게 통합"할 수 있다고 하는데, 과연 이쪽 분야에 대해 아무것도 모르는 나도 쉽게 할 수 있는지 알아보도록 하겠다
2. 실습 시작!
※ 실습 진행 : IVS 워크샵 보고 따라함
※ 워크샵의 모든 내용을 따라하진 않고, 라이브 스트리밍을 구현하는 것 까지만 함
목차
2-1. IVS 채널 생성 (콘솔)
2-2. 라이브 스트리밍 시작
2-3. 브라우저(크롬)에서 재생
2-1) IVS 채널 생성 (콘솔)
채널을 생성하는 방법은 콘솔과 API를 사용하는 방법이 있는데, 여기선 콘솔만 사용해보겠다 (API 사용은 워크샵 참조)
AWS 콘솔 > Interactive Video Service
IVS는 아직 오레곤, 버지니아, 아일랜드에서밖에 지원이 안되므로 버지니아로 옮겨서 지원해보겠다
버지니아로 옮기니까 바로 보이는 채널 생성 버튼을 눌러주자
채널 이름만 원하는 이름으로 써주고 채널 생성을 눌러주면 놀랍게도 끝이다
수집 서버(Ingest server)와 스트림 키, 그리고 재생 URL은 이따가 사용할 애들이니 기억해두자
2-2) 라이브 스트리밍 시작
여기선 서드파티 스트리밍 소프트웨어가 필요하다
워크샵에서 OBS를 사용하길래 깔아봤는데, 화면 녹화도 되는게 오캠보다 좋아보여서 계속 쓸 듯 하다
처음 OBS를 깔게 되면 구성 마법사가 뜨는데, 여기서 나처럼 바로 설정해도 되고 파일 > 설정으로 들어가서 설정해도 된다
서비스를 사용자 지정으로 설정한 다음, 수집 서버와 스트림 키를 입력해주자
(파일 > 설정 > 방송(stream) 에서도 설정 가능)
(트위치나 유튜브 등으로의 연동은 서비스에서 선택 가능함)
구성 마법사가 끝나면, 파일 > 설정 > 비디오 를 들어가서 해상도를 설정할 수 있다
참고로 IVS 최대 성능은 아래와 같다
- 비디오 해상도 FHD까지
- 비디오/오디오 코덱 H.264/AAC만 지원
- 오디오 2채널만 지원
- HLS 출력만 지원
- DRM 지원 x
- 광고 x
- 지연시간 6초 미만
파일 > 설정 > 출력 > 고급에서 아래 설정들도 해주자
- 인코더 : x264
- 데이터 속도 제어 : CBR
- 비트레이트 : 2000(이하)
- 키프레임 간격 : 2
- CPU 사용량 : veryfast
- 조정 : zerolatency
나도 이게 무슨 설정들인지는 모른다. 걍 시키는 대로 해보는 중
암튼 이렇게 하면 설정들은 끝났다 스트리밍할 화면을 골라보자
OBS 화면 하단 왼쪽에 보면 소스 목록이 있다
위와 같이 우클릭 > 추가 또는 + 버튼을 누르면 추가할 소스들을 넣을 수 있다
캠을 켜서 출력할거면 비디오 캡쳐 장치를 눌러주자
참고로 디스플레이 캡쳐는 디스플레이별 화면을, 윈도우 캡쳐는 떠 있는 창이나 앱 별 화면을 출력한다
또한 오디오 입력, 출력도 필요하면 따로 추가해줘야 한다
그리고 브라우저 소스를 넣어주면 입력한 URL의 화면 또한 출력할 수 있다
지연시간 측정용인 URL(https://www.clocktab.com/
)과 홍랩 URL을 띄워봤다
스트리밍 방송을 시작하려면 OBS 화면 하단의 "방송 시작"을 눌러주면 된다
그럼 AWS 콘솔의 내 채널에서 실시간 방송을 확인할 수 있다
2-3) 브라우저(크롬)에서 재생
웹 플레이어 SDK를 사용하여 라이브 스트림을 재생하는 방법이라고 한다
https://codepen.io/amazon-ivs/pen/XWmjEKN
위의 주소에 접속해보면, 아래와 같은 창이 뜬다
오른쪽의 JS 탭에서 const playbackUrl=
옆에 콘솔에서 봤던 재생 URL을 넣어주자
결과는 아래와 같다
3. 결론
버지니아 리전이라서 그런건지는 모르겠는데, 생각보다는 지연시간이 좀 있다 (아닌가? 이정도면 없는 편인가..? 사실 잘 모름)
그래도 라이브 스트리밍 자체를 처음 해보는거라 너무 신기했고, 광고한대로 진짜 쉬워서 놀라기도 했다
방송 서비스 설정에서 트위치, 아프리카, 유튜브 등이 있는걸 보니 연동하는 것도 그렇게 어려울 것 같진 않다
가장 중요한 요금을 얘기해보자면,
방송 입력 요금과 출력 요금이 별개이며, 출력 요금은 출력을 받는 최종 사용자의 리전과 해상도별로 다르다
자세한 설명은 https://aws.amazon.com/ko/ivs/pricing/ 여기를 참조하자
워크샵을 마저 보면 시간 지정된 메타 데이터를 삽입한다든가 재생 승인을 통해 비공개 채널을 만드는 파트도 있으니, 관심 있으면 따라해보자
끝!
'공부 > AWS' 카테고리의 다른 글
[AWS] Private NAT Gateway Test (+ TGW, VPC Flow Log) (0) | 2021.06.16 |
---|---|
[AWS] Transit Gateway Multi Region 구축하기 (2) | 2021.06.15 |
[AWS] AWS Transfer 사용해보기 (Serverless SFTP 구현) (0) | 2021.06.01 |
[AWS] NACL vs Security Group (Stateless와 Stateful 차이) (4) | 2021.05.31 |
[AWS EC2] Marketplace AMI id 알아내는 법 (2) | 2021.05.25 |
댓글