issues
search
team-mic
/
HearAndThere_Server
0
stars
1
forks
source link
[Infra] 오디오 스트리밍 방식 개선 : Adaptive HTTP Streaming
#76
Open
kwonsye
opened
2 years ago
kwonsye
commented
2 years ago
기존 Progressive Download 방식의 스트리밍을 Adaptive HTTP Streaming 으로 변경하기 위해 조사 및 테스트한다.
완료 조건
[x] mp3 오디오파일 hls 인코딩 및 S3 에 저장
[x] 테스트를 위해 기존 오디오 상세 API 수정
[ ] 클라이언트 성능 테스트
[ ] 성능 테스트 이후 모든가이드 트랙의 mp3 오디오파일 hls 인코딩 및 S3 에 저장
[ ] 기존 DB 테이블 audio_track_url 메니페스트 파일경로로 변경
Related issue
없습니다.
Reference
스트리밍 서비스의 종류와 프로토콜 - FFMPEG - 티스토리
Adaptive bitrate streaming
HTTP 라이브 스트리밍이란 무엇입니까? | HLS 스트리밍
웹 기술로 구현하는 Adaptive HTTP Streaming
Check List
[ ] 관련 issue가 있다면 추가했나요?
[x] 유의미한 label을 추가했나요?
kwonsye
commented
2 years ago
Progressive Download 방식
contents 를 가지고 있는 서버가 전체 파일을 전송
클라이언트에 contents의 url 만 넘겨주면 쉽게 구현 가능
보안 약함/불필요한 traffic 발생/스트리밍 도중 contents quality 변경 불가
Adaptive HTTP Streaming 방식
서버
contents 파일을 몇 초 단위의 세그먼트로 파편화시킴
세그먼트들을 서비스에 필요에 따라 구분한 대역폭에 대응된 해상도로 인코딩 (ex
.ts
파일)
해상도별 미디어 세그먼트의 정보등을 담은 Manifest 파일(HLS 의 경우
.m3u8
)을 클라이언트에 제공
클라이언트
각 해상도별 세그먼트 정보를 담은 Manifest 파일을 서버에서 다운로드
가장 최적의 대역폭과 퀄리티를 선택한 뒤 필요한 세그먼트를 다운로드(계속 반복)
다운로드한 세그먼트의 데이터를 MSE 버퍼에 넣고 play
HTTP 기반
네트워크의 현재 상태를 기반으로 다운로드할 비트 전송률 세그먼트를 결정
구현 프로토콜
Apple 의 HSL, MPEG-DASH, Adobe Dynamic Streaming 등
완료 조건
Related issue
Reference
Check List