2019. 4. 23. 18:41ㆍAWS/Media Services
시작하기 앞서
블로그 이전 작업을 시작도 못했는데, 신규 글부터 작성하는 것이 맞는지 모르겠지만
이렇게 라도 차근차근 다시 글을 써가는 것에 의의를 두고 시작해보려고 합니다.
또한 동영상 처리에 관련한 내용을 잘 알지 못하여 배워가는 입장입니다. 틀린 내용도 존재할 수 있습니다.
1일 차
파일 기반 비디오 처리를 해야 할 일이 생겨 AWS의 MediaConvert로 동영상 파일을 암호화하고 DASH ISO, Apple HLS 형태로 변환해보려고 합니다.
파일 기반 비디오 처리란 무엇일까?
비디오 콘텐츠 파일을 처리하는 워크플로에서 파일 기반 비디오 트랜스코딩은 콘텐츠를 압축하여 크기를 줄이거나 형식을 변경, 재생 디바이스 호환성을 개선하는 작업을 의미합니다.
AWS에서는 Elastic Transcoder라는 제품도 존재하는데, 왜 MediaConvert를 사용해야 할까?
새롭게 소개된 MediaConvert는 포괄적인 트랜스코딩 기능 세트를 제공하고 Transcoder에 비하여 소요 시간 및 확장성을 개선하도록 최적화되었다고 합니다. 병렬 처리로 인하여 더 많은 파일을 처리할 수 있는 것도 장점입니다.
그럼 Elastic Transcoder는 사용 안 해야 되는 걸까?
WebM 비디오, MP3 오디오, 애니메이션 GIF 파일 등을 만드는 경우에는 아직까지 Elastic Transcoder를 사용하는 것이 바람직하다고 합니다.
하지만 새로운 기능들이 MediaConvert에도 추가될 것이라고 AWS에서 공지하였으니 앞으로 Elastic Transcoder에서 지원하던 기능들이 나중에는 추가되겠지요.
MediaConvert는 어느 리전에서 사용 가능할까?
- 미국 동부(버지니아 북부, 오하이오)
- 미국 서부(캘리포니아 북부, 오리건)
- 캐나다(중부)
- 아시아 태평양(뭄바이, 서울, 싱가포르, 시드니, 도쿄)
- EU(프랑크푸르트, 아일랜드, 런던, 파리)
- 남아메리카(상파울루)
- GovCloud(미국 서부)
그래서 요금은?
MediaConvert는 베이직 티어와 프로페셔널 티어로 나뉘어 있습니다. 그리고 AWS는.. 잘 아시다시피 사용한 만큼 과금 형태이지요.
이 부분은 MediaConvert 요금 페이지로 가시면 예제에 잘 설명되어있습니다.
MediaConvert로 콘텐츠 보호를 위해 DRM을 설정 할 수 있다는데?
DRM은 프로페셔널 티어에서 가능하며, MediaConvert 작업 > 출력 그룹에서 설정하실 수 있습니다.
간단 테스트를 해보자
1. S3 생성하기
- 우선은 AWS S3에 Bucket을 생성하기 위해 https://console.aws.amazon.com/s3/ 에서 Amazon S3 Console을 실행합니다.
- "버킷 만들기"를 클릭하고 사용자 입장에서 S3 Bucket에 대한 개별 설정이 필요하다면 설정 후 Bucket 생성을 완료합니다.
2. IAM 권한 설정
- https://console.aws.amazon.com/iam/에 접속하여 Amazon IAM Console을 실행합니다.
- IAM Console 좌측에 [Roles]를 선택하여 역할 화면으로 들어와 [Create role]을 클릭합니다.
- MediaConvert를 클릭하면 이미 정의된 "Full access to your Amazon S3 resources"와 "API Gateway invoke full access"에 대한 권한이 자동으로 선택됩니다.
- "다음:검토"를 클릭하여 역할 이름을 지정 후 역할을 생성 완료합니다.
3. (선택사항)DRM 암호화 사용하기
디지털 권한 관리 시스템인 DRM은 콘텐츠 암호화를 위해서 MediaConvert에 키를 제공하고 복호화를 위해 지원 사업자에게 라이선스를 제공합니다. 암호화를 하려면 DRM 솔루션 공급자가 있어야 하므로 이 부분에서의 설명은 생략하겠습니다.
설정 방법은 https://docs.aws.amazon.com/speke/latest/documentation/customer-onboarding.html 를 통해 조금 더 확인해보실 수 있습니다
4. S3에 콘텐츠 파일(동영상 파일) 업로드 하기
1번 단계에서 생성한 S3 Bucket에 동영상 파일을 업로드 합니다.
5. MediaConvert에 작업 생성하기
- https://console.aws.amazon.com/mediaconvert 에 접속하여 "시작하기"를 클릭합니다.
- "작업 생성"을 클릭하여 작업을 생성합니다.
- 입력 그룹에 "추가"를 클릭하면 "입력 1"이 생성되고 다시 추가를 클릭하면 "입력 2"가 생성됩니다. 이 부분은 위에서 Transcoder와 MediaConvert를 비교 설명할때 얘기하였던 병렬처리를 할 수 있도록 설계된 부분입니다. 여기서는 1개의 파일을 가지고 테스트 할 것이기 때문에 "입력 1"만 생성하여 내버려둡니다.
- 입력 1에서 제일 상단의 "찾아보기"를 클릭하여 S3 Bucket에 업로드 하였던 파일을 선택합니다.
- 입력 1에서 설정해야 하는 부분이 있다면 설정합니다.
- 좌측에 출력 그룹에서 "추가"를 클릭 후 원하는 형태의 변환 포맷을 선택합니다. 여기서는 DASH ISO를 선택하였습니다.
- 출력그룹에 DASH ISO가 선택된 모습을 확인할 수 있습니다. DASH ISO에서는 MediaConvert를 통해 변환된 영상과 관련 정보 파일이 어디로 출력될 것인지 또 어떤 형태로 변환시킬 것인지에 대한 내용을 설정할 수 있습니다. 입력에서와 동일하게 "찾아보기"를 클릭하여 출력을 원하는 S3 Bucket을 선택합니다.
- 좌측에 출력그룹에서 Output 1을 선택합니다.
- Output 에서는 비디오 형태, 오디오 형태를 조작할 수 있습니다. 원하는 형태에 맞게 수정하거나 상단의 Preset을 통하여 미리 설정된 Preset을 적용할 수도 있습니다.
- 좌측의 작업 설정 그룹안에 "설정"을 클릭합니다.
- IAM 역할 부분을 선택하는 부분을 클릭하고 2번 단계에서 만들었던 MediaConvert IAM 역할을 선택합니다.
- 우측 하단의 생성을 클릭하여 MediaConvert를 마무리합니다.
※ 개인적으로 변환 테스트 시 샘플 파일과 출력 방식을 크게 다르지 않게 설정하면 파일 용량의 변화는 있지만 영상을 실행하였을때 큰 차이를 느낄 수 없어 "출력 그룹 > Output > 비디오 영역의 이미지 삽입기"를 통해 영상 자체에 이미지를 삽입하여 영상 실행 시 이미지가 영상 위에 떠 있는 것을 확인할 수 있습니다.
※ 동영상 샘플 파일은 아래의 사이트를 통해 얻으실 수 있습니다.
https://sample-videos.com
Download Sample Videos / Dummy Videos For Demo Use
--> Download Sample Videos Are you a mobile app developer? Are you looking for videos of different resolution and sizes to test while designing or developing a mobile app? Sample-Videos.com is a 100% FREE service that allows programmers, testers, designers
sample-videos.com
2일차
2일차에는 DRM에 관련한 얘기를 해보려고 합니다.
콘텐츠를 암호화하여 원하는 사용자에게만 보여준다면 어떨까?
콘텐츠 제작자는 "내가 만든 영상, 음원 등의 콘텐츠를 원하는 사용자에게만 보여줄 수 없을까?", "불법적으로 내 콘텐츠를 가져다가 사용하는 사람들을 어떻게 억제하지?" 라는 생각을 한 번쯤 하죠.
내가 만든 콘텐츠를 A라는 사람은 합법적으로 쓰고 싶어서 돈을 지불했다고 가정합시다. 그러면 나는 A에게 내 콘텐츠의 사본을 주고 A는 내 콘텐츠를 사용합니다. 그리고 그걸 누군가 악용하여 복제, 해킹 등 다양한 경로로 유통했다고 하면 불법적으로 내 컨텐츠를 쓰는 사람들은 많아질겁니다. 물론 이 과정에서 저작권 위반 혐의로 고소를 진행할 수도 있겠죠.
그래서 콘텐츠를 어떻게 관리할 수 있는데?
우리가 생활하면서 DRM 이라는 문구를 들어본 적이 있었을 겁니다. 멜론이라는 음원 서비스를 하는 업체에서도 봤을 수 있고 대학 논문을 보다가도 본 적이 있을 수 있죠. 그러면 DRM이 무엇이냐? DRM은 Digital rights management의 약자로 콘텐츠 소유자 즉 저작권의 소유자의 의도에 따라 승인된 사용자에게만 콘텐츠 사용을 승인하고 불법적인 사용을 제한하는 라이선스 관리 기술입니다. 한마디로 무단 복제 방지 기술이죠.
영상을 예로 들자면 아래의 그림과 같습니다.
그림대로 설명을 하자면
1. 나의 원본 콘텐츠를 인코더를 통해 인코딩 시킵니다.
2. 인코딩된 콘텐츠를 패키지 서버에서 패키징 처리 합니다. 즉 DRM 암호화를 의미합니다. 이 과정에서는 Content의 ID 값, 사용할 DRM의 고유 System ID, Content에 Key를 제공할 Server 주소가 필요합니다.(포스트 주제에 맞게 AWS MediaConvert를 예로 들었습니다.)
3. 패키징이 완료되고 패키징 서버는 라이선스 서버에게 패키징 정보를 보내고 CDN에는 DRM 암호화 시 생성된 Stream 파일들을 저장합니다.
그럼 사용자는 어떻게 내 콘텐츠를 볼 수 있는데?
위 그림처럼 콘텐츠를 DRM 암호화 했다고 가정합시다. 그럼 콘텐츠 제작자인 나에게 다른 사용자들은 어떻게 내 콘텐츠를 허락 받아야 할까요?
이 부분에선 정답을 표현할 수는 없습니다. DRM 라이선스가 여러개이고 어떻게 DRM 솔루션을 이용할건지 또 어떤 방식의 DRM 솔루션인지 모르기 때문이죠.
위 그림에 맞게 한가지 예시를 들어보겠습니다.
그림을 설명하자면 아래와 같습니다.
1. DRM 콘텐츠를 볼 수 있는 즉 권한을 가진 사람이 DRM 콘텐츠를 재생할 수 있는 웹사이트에 접속합니다.
2. 웹 사이트에서 자격증명을 위해 라이선스 서버에 확인을 하게되고 라이선스 서버는 자격 확인 후 라이선스를 발급합니다.
3. 발급된 라이선스를 가지고 CDN에 해당 콘텐츠를 요청합니다.
4. CDN은 콘텐츠를 내려주고 사용자는 웹사이트를 통해 콘텐츠를 시청합니다.
만약 DRM 서비스를 개인 대 개인 형태로 사용할 수 있게 출시한다면?
저 역시 DRM 개념을 조금은 알고있었지만 일반인들이 이러한 개념을 완벽히 이해하기 쉽지는 않을 것 같습니다. 무엇보다 고객은 사용에서의 편리함이 중요하지 기업처럼 보안도 중요하고 편리성도 갖춰야하고 여러모로 많은 것을 따지지는 않죠.(그렇다고 보안이 안중요하다는 것은 아닙니다..) 그래서 개념에 대한 이해를 시키는 것 보다는 간략한 설명의 동영상과 함께 이러한 서비스고 "사용자인 너는 이렇게 편하게 쓰기만 하면 돼! 나머지는 우리가 해줄게!" 이게 포인트가 될 것 같습니다. 개인 대 개인으로 안전하게 콘텐츠를 공유하는 날이 올까요?