KxCoding 1년 삽질기 #3. 스트리밍, DRM 서비스 구축

이 글은 1년 조금 넘게 KxCoding이라는 동영상 강의 사이트를 운영하면서 겪은 삽질기 & 지금도 계속 되고 있는 삽질기 입니다. 동영상 강의 제작과 스트리밍 서비스를 시작하려는 분들께 조금이나마 도움이 되기를 바랍니다. 다만, 개인의 경험에 의존한 내용이어서 최선의 제작 방법은 아니며 잘못된 내용이 포함되어 있을 수 있습니다. 

이 글은 세 개의 주제로 나누어서 작성할 예정입니다.

1. 원고 작성과 보이스 레코딩
2. 스크린 레코딩, 편집, 인코딩
3. 스트리밍, DRM 서비스 구축 [이 글]

— 이제 판매를 해 볼까?

동영상 강의를 완성했으니 이제 판매할 방법을 찾아야 했습니다.

한국에는 프로그래머스, 인프런, Udemy Korea 처럼 좋은 강의 사이트가 있습니다. 강의 제작을 지원하고 마케팅을 담당해 주는 점, 직접 서버를 구축할 필요가 없다는 장점이 있습니다. 일반적으로 제작자(70) : 중계자(30) 의 비율로 수익을 배분하는 구조입니다. 더 상세한 정보는 해당 사이트를 참고해 주시기 바랍니다.

https://programmers.co.kr

https://www.inflearn.com

https://www.udemy.com

양질의 컨텐츠를 제작하셨다면 위에 있는 서비스를 이용하시는 것을 추천합니다. 무료 강의라면 요즘 대세 Youtube!

— 사서 고생하는 타입

저처럼 직접 판매하신다면 지옥의 문이 열립니다. 많은 준비와 시간이 필요합니다. 통장 잔고는 지속적으로 줄어들고 마케팅 효과는 현미경으로 봐야 겨우 보입니다.

하지만! 성취감이 큰 것도 사실입니다. 첫 결제를 확인했을 때의 감동은 잊을 수 없습니다ㅠㅠ

각설하고..

우선 어떤 작업이 필요한지 생각해 봤습니다.

  • 스트리밍 서버
  • DRM
  • 스트리밍 웹사이트
  • 결제
  • 관리용 웹사이트
  • iOS 앱
  • 안드로이드 앱

— 스트리밍 서버부터 만들자

먼저 스트리밍 서버 구축부터 시작했습니다. 서버를 직접 구입하는 것은 무리였고 클라우드 서비스를 사용하기로 했습니다. 평소 MS Azure를 사용하고 있어서 큰 고민없이 Azure가 제공하는 미디어 서비스(Azure Media Services, 이하 AMS)를 사용하기로 결정했습니다. (AWS도 유사한 미디어 서비스를 제공합니다. 두 클라우드의 성능을 비교하는 건 큰 의미가 없을것 같고 평소 익숙한 서비스를 사용하시면 문제 없다고 생각됩니다.)

https://azure.microsoft.com/ko-kr/services/media-services

AMS는 미디어 저장소, 인코딩, 스트리밍, DRM, CDN, Player 등 VOD 서비스에 필요한 모든 서비스를 제공합니다. 그리고 Media Explorer라는 프로그램을 통해서 모든 작업을 쉽게 처리할 수 있습니다. 필요하다면 API를 활용해서 모든 과정을 자동화 할 수도 있습니다.

인코딩 한 파일을 업로드하고 스트리밍용으로 인코딩하면 다양한 해상도와 대역폭에 대응하는 스트리밍 에셋이 생성됩니다. 이 작업은 보통 1시간 정도 소요됩니다. 더 높은 비용을 지불하면 더 빠르게 처리할 수 있지만 권장하지는 않습니다.

– 유료 강의는 DRM이 필수!

그 다음 고려해야 할 부분은 DRM. 유료 강의여서 스트리밍 에셋을 암호화 해야 했습니다.

AMS에서 사용할 수 있는 방법은 크게 두 가지입니다. 첫 번째는 AES-128 암호화입니다. 구현이 단순하지만 보안 수준이 상대적으로 낮아서 불특정 다수를 대상으로 하는 서비스에는 적합하지 않습니다. 두 번째는 Multi-DRM 동적 암호화 입니다. 모든 클라이언트를 지원하려면 구현이 복잡하지만 가장 높은 보안을 제공하기 때문에 유료 VOD 서비스에 적합합니다.

자세한 정보는 아래의 링크에서 보실 수 있습니다.

https://docs.microsoft.com/ko-kr/azure/media-services/previous/media-services-content-protection-overview

PlayReady와 Widevine은 별도의 허가 절차 없이 바로 사용할 수 있었지만 FairPlay가 문제였습니다.

애플 플랫품에서 암호화 된 스트리밍 서비스를 제공하려면 FairPlay Streaming Deployment 패키지(이하 FPS)를 발급받아야 합니다. 저는 사전에 아무런 정보가 없어서 너무 고생했고 최초 신청부터 발급까지 6개월이 소요되었습니다.

FPS를 발급 받으려면 아래의 정보를 정확히 제공해야 합니다.

  • 제작 완료된 VOD, 그리고 상세한 설명
  • VOD가 서비스 되고 있는 웹사이트
  • 서버 구현 방식
  • 회사 정보
  • VOD에 대한 소유권을 명확히 하는 자료

특히, 스트리밍으로 제공할 VOD가 완성된 상태여야 합니다. 저는 20% 정도 완성된 상태에서 신청 했었는데..

모든 정보를 제공하고 소유권을 인정받은 다음 또 다른 난관이 기다리고 있었습니다.

제가 FPS를 신청할 때 개인 개발자 계정으로 신청했는데 이 부분도 회사 계정으로 바꾸라고 하는 것이었습니다. 최종적으로는 제 이름으로 된 회사이고 소유권이 저에게 있다는 점을 어필해서 개인 개발자 계정으로 발급을 받았지만, 중간 과정은 저도 그렇고 애플 담당자도 힘들었을 것 같습니다. 가급적 회사 계정으로 신청하시는 것을 권장합니다.

— 마지막, 스트리밍 웹사이트

웹 사이트 제작에서 해결해야 할 부분은 세 가지였습니다. 먼저 DRM 영상을 재생할 수 있는 플레이어가 필요했습니다. JW Player 같은 유료 플레이어도 있지만 기본으로 제공되는 플레이어도 충분한 성능을 제공하는 것 같아서 현재까지 사용하고 있습니다.

https://azure.microsoft.com/ko-kr/services/media-services/media-player

https://www.jwplayer.com/video-solutions/html5-video-player

두 번째는 도메인 구입과 SSL 적용이었습니다. 그리고 세 번째는 결제였습니다. 여기에 관련된 내용은 쉽게 찾을 수 있어서 생략하겠습니다. (나머지 앱 제작에 대한 부분도 쓸데없이 길어져서 생략했습니다.)

막간 PR 🙂
KxCoding iOS 앱을 설치하시면 새로운 강의 소식을 확인하고 무료 강의를 보실 수 있습니다. 

https://itunes.apple.com/us/app/kxcoding-ios-%EC%95%B1-%EA%B0%9C%EB%B0%9C%EC%97%90-%ED%95%84%EC%9A%94%ED%95%9C-%EB%AA%A8%EB%93%A0-%EA%B0%95%EC%9D%98/id1343183265?mt=8

— 그래서 직접 운영하는 비용이 얼만데 ?

글이 더 길어지기 전에 가장 궁금하실 운영 비용에 대해 이야기 해 보겠습니다.

AMS와 관련된 비용은 아래의 링크에서 직접 계산해 볼 수 있습니다.

https://azure.microsoft.com/ko-kr/pricing/details/media-services

AMS에서 주요한 비용은 인코딩 비용스트리밍 비용입니다.

표준 인코터를 사용해서 1분 길이의 SD 영상을 인코딩하면 최종 비용은 16.87원 입니다. 비용은 “출력 시간 승수”로 계산되는데 SD 영상은 출력 승수가 1입니다. 저는 현재 1080p, 1440p로 인코딩 하고 있고 출력 승수는 각각 2, 4입니다. 1440p를 인코딩 하려면 SD 영상에 비해 4배의 비용이 발생합니다.

10분 길이의 영상을 인코딩 하는 최종 비용을 계산해 보면,

10분 X (1080p(HD) 출력 승수 2 + 1440p(UHD) 출력 승수 4 + 오디오 출력 승수 0.25) X 16.87원

1,054원의 비용이 발생합니다.

KxCoding에서는 매월 5시간 정도의 영상을 제작하고 있고 인코딩 비용은 대략 30,000 ~ 50,000 원 사이입니다.

스트리밍 에셋에 해상도를 추가할수록 출력 승수가 증가하고 비용이 크게 늘어납니다. 동영상 강의가 슬라이드만으로 구성되어 있다면 출력 승수를 낮추어서 비용을 절약할 수 있습니다. 하지만 실습이 포함되어 있다면 1080p 이상으로 인코딩 하는 것이 좋습니다.

AMS에서 제공하는 H.264 기본 프리셋의 출력 승수는 11.25입니다. 여기에는 320×150 해상도도 포함되어 있는데 동영상 강의에서는 무의미한 해상도입니다. 무심코 기본 프리셋을 사용하면 불필요한 비용이 발생합니다. 그래서 1080p 미만은 삭제하고 1080p 이상 중에서 필요한 해상도만 사용하는 것이 좋습니다.

스트리밍 비용은 매월 7만원의 고정비용이 발생합니다.

앞에서 설명한 비용은 모두 표준 단위 비용이고 프리미엄 단위로 업그레이드 하면 비용은 두 배 정도 증가합니다.

이 외에도 아래의 서비스에 대한 비용이 사용량만큼 발생합니다.

  • DRM 라이센스 발급
  • 데이터 송수신
  • 앱 서비스(웹 사이트 + API 서버)
  • 데이터베이스
  • 파일 저장소

— 급 마무리

1년간 모든 서비스를 혼자서 개발하고 관리하다보니 성취감의 크기만큼 힘든 점도 많았습니다. 지금까지 예기했던 것처럼 직접 강의를 판매하는 것은 고생의 연속입니다.

저처럼 고생하지 마시고 프로그래머스, 인프런, Youtube를 활용하세요!

1년 조금 넘는 기간동안 KxCoding을 운영하면서 별거 아닐 수 있지만 기록을 남기고 싶었습니다. 그리고 동영상 강의를 제작하고 싶은 분들께 “이런 방법도 있다”는 것을 공유하고 작으나마 시행착오를 줄이는데 도움이 되고 싶었습니다. 많은 분들이 자신의 지식을 공유하고 더 많은 분들이 양질의 강의를 통해 프로그래밍을 즐기게 되었으면 좋겠습니다 🙂