민프
[AWS] S3 + Lambda + CloudFront + MediaConvert를 이용하여 Vod Streaming Server를 구축해보자 2. S3 + CloudFront + MediaConvert 연동 본문
[AWS] S3 + Lambda + CloudFront + MediaConvert를 이용하여 Vod Streaming Server를 구축해보자 2. S3 + CloudFront + MediaConvert 연동
민프야 2024. 1. 26. 15:19
이전 포스팅에서는 S3와 CloudFront를 연동하여서 동영상을 재생시키는 것을 해보았고,
이번 포스팅에서는 S3 + CloudFront + MediaConvert를 연동하여서 .MP4 -> HLS 형식으로 변환하고, 해상도(SD, HD, FHD) 파일들, Thumbnail까지 저장하고 재생까지 시키는 것을 해보겠습니다.
1. 변환 전(Input) S3 폴더 만들고 영상 올리기
- vod/mp4 폴더를 만들어줍니다.
- 영상 올리기
2. Output S3에 출력 폴더만들기
- vod/hls 폴더 만들기
3. MediaConvert를 이용하여 MP4를 HLS로 변환하기
-Jop template 생성
- Ouput Group 설정
출력 그룹에서 추가를 누르고 HLS 형식을 누릅니다.
HLS형식을 사용하면 Youtube를 보는 것 과 같이 네트워크 환경에 따른 화질 변화를 줄 수 있으므로 HLS를 선택하였습니다.
아래와 같이 대상을 설정해주고
출력을 3개(SD, HD, FHD)을 추가합니다. 이름은 파일명에 붙을 이름이기 때문에 동작하고는 관계가 없습니다.
- 출력 세부 설정
각 Output SD, HD, FHD에 맞는 값들을 입력하여 세부 설정을 해줍니다.
bitrate 옵션은 전문가들이 만들어놓은 가이드를 기반으로 사용하고, HLS 파일을 플레이 해 보았을 때 화질이 안 좋아 보인다면 그때 옵션 값을 조절하면 될 것 같습니다.
모든 입력이 끝났으면 생성 버튼을 눌러서 완료합니다.
3-1. Templete을 이용한 JOP 생성
- Apple HLS 그룹 설정
- Input 설정
- MediaConvert 권한 생성
아래 AWS공식 도움말을 참고하여 권한을 줘보겠습니다.
아래와 같이 입, 출력 위치만 추가해서 권한을 생성하였습니다.
이 작업까지 완료했다면 제일 아래 생성 버튼을 누르면 됩니다.
4. 진행과정
생성을 누르면 상태값이 제출됨 -> 완료로 바뀌는 것을 확인할 수 있습니다.
5. HSL 파일 확인
Output S3 버킷에 가서 파일이 잘 생성 된 것을 확인하실 수 있습니다.
6. 영상 Thumbnail(썸네일) 생성
- Thumbnail을 위한 S3 Bucket 만들기
min-test-output-thumbnail이라는 이름으로 버킷을 만들었습니다.
- (선택) 이전 포스팅에서 했던 CloudFront와 연동합니다.
- AWS 통합설정에 Thumbnail S3 Bucket을 추가합니다.
- 출력 그룹에서 파일 그룹을 생성
1. 컨테이너 - 컨테이너 없음
2. 오디오 제거
3. 비디오 JPEG 프레임 캡쳐 설정
하시고 생성을 누르면 됩니다.
4. 프레임 속도 같은 경우 도움말을 보시면 아시겠지만
만약 1 / 4 로 설정해놓으면 들어왔을 때 바로 한장 찍고 난 후 4초 후에 한장 더 찍힌다는 의미입니다.
- 파일 생성 확인 및 사진 확인
잘 적용된 것을 확인하실 수 있습니다.
7. 동영상 플레이 확인
https://players.akamai.com/players/hlsjs
영상 확인을 위해 위 링크에 들어가서 Play를 해보았습니다.
마찬가지로 아래 처럼 URL을 입력하고 Play Stream을 누르면 아래 사진과 같이 잘 동작하는 것을 확인하실 수 있습니다.
http://[cloudfront-domain-name]/vod/hls/[파일명]