
현재 내가 다니고 있는 회사는 음악 스트리밍 기반 서비스를 제공하고 있기 때문에 여러가지 다양한 문제에 직면하고 있는데 그 중 노래가 가끔가다 끊기는 현상들이 종종 발생되고 있어 이를 어떻게 해결할지 고민 중에 있다.
나도 모니터링을 계속 하는 도중 한 곡을 재생하는데 계속해서 끊기는 현상이 발생해 스트리밍 서버에 접속해 로그를 확인했는데 .ts 파일이 연달아 잘 찍히고 있어 결론은 별 문제는 없었다. 로그 확인을 하면서 새로운 것에 대해 알게 되어 이를 작성하고자 한다.
우선,
ts파일에는 2개의 종류가 있다.
하나는 동영상 파일의 종류이며, 다른 하나는 타입스크립트라는 마이크로소프트의 자바스크립트 컴파일용 언어이다.

그래서 아래와 같이 로그 확인을 했을 때, 몇 초 단위로 묶어서 전달되는 것을 볼 수 있다.

그러나, 단점으로는 잘게 잘게 나눠서 저장되기 때문에 시간 압축방식이 적용되기 어려워 용량이 큽니다.
이렇게 실시간으로 재생이 용이하기 때문에 실시간 라이브(유튜브, 트위치, 아프리카, 네이버 등등)에서 공통적으로 사용하는 형태의 파일이다.
m3u8 설명에도 있는데 m3u8이 바로가기라면 ts는 잘게 쪼개진 영상파일이라고 생각하면 쉽다.
플레이리스트의 경로들과 재생시간을 가진 영상 스트리밍용 파일이다.
영상파일 바로가기 같은 파일이라 해당 주소가 접근이 가능하다면 가능하다.
VLC 플레이어나 다음팟플레이어에도 m3u8 재생이 있다.
보통 다른사이트에서 m3u8이 재생되지않도록 제한을 걸어두기때문에 재생이 안될가능성이 높다.
크롬 확장프로그램에서 "m3u8 player" 등으로 검색하면 쓸만한 웹플레이어가 나올수 있다.
사이트 운영자, 개발자라면? hls.js를 이용해서 플레이어를 제작할 수 있다.
아래 구조에서 경로를 어떻게 나타내고
총 재생시간, 쪼개진 영상파일(.ts) 각각의 재생시간 정보들을 나타내는 파일이다.
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:35
#EXT-X-MEDIA-SEQUENCE:0
#EXTINF:10,
index0.ts
#EXTINF:10,
index1.ts
#EXTINF:10,
index2.ts
#EXTINF:5,
index3.ts
#EXT-X-ENDLIST
#EXTM3U
m3u8 파일임
#EXT-X-VERSION:3
m3u8 버전3
#EXT-X-TARGETDURATION:35
총 재생시간 35초
#EXT-X-MEDIA-SEQUENCE:0
파일이 많다면 이 재생목록의 순서
#EXTINF:10,
재생시간 10초
index0.ts
파일경로
#EXTINF:10,
index1.ts
#EXTINF:10,
index2.ts
#EXTINF:5,
index3.ts
반복
#EXT-X-ENDLIST
파일 종료
이런 형식으로 파일이 있는 것으로 볼 수가 있다.