[TIL] *.ts 파일이란

Soo·2024년 1월 29일
post-thumbnail

현재 내가 다니고 있는 회사는 음악 스트리밍 기반 서비스를 제공하고 있기 때문에 여러가지 다양한 문제에 직면하고 있는데 그 중 노래가 가끔가다 끊기는 현상들이 종종 발생되고 있어 이를 어떻게 해결할지 고민 중에 있다.

나도 모니터링을 계속 하는 도중 한 곡을 재생하는데 계속해서 끊기는 현상이 발생해 스트리밍 서버에 접속해 로그를 확인했는데 .ts 파일이 연달아 잘 찍히고 있어 결론은 별 문제는 없었다. 로그 확인을 하면서 새로운 것에 대해 알게 되어 이를 작성하고자 한다.

우선,
ts파일에는 2개의 종류가 있다.

하나는 동영상 파일의 종류이며, 다른 하나는 타입스크립트라는 마이크로소프트의 자바스크립트 컴파일용 언어이다.

  1. 동영상 파일 MPEG-TS (Transport Stream)
  • 스트리밍 전용파일으로 작은 단위로 쪼개어 재생할 수 있다.
  • ts파일은 편집중(수정중)임에도 실행이 가능하다.
    이 때문에 오늘날 실시간(라이브)영상에서 사용된다.
  • mp4등 다른 확장자는 수정 중일때 아래와 같이 파일을 읽을수 없는데
    이를 비유하자면 완성된 책 하나를 만든다(완성전까지 재생불가)고 생각하면 편하다.

  • ts 동영상 파일은 종이 한장 한장 단위로 묶어서 전달하기 때문에 전달된 만큼 재생이 가능하다.

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

  • VLC플레이어 같은 TS파일 지원 프로그램으로 전송과 동시에 재생이 가능하다.

그러나, 단점으로는 잘게 잘게 나눠서 저장되기 때문에 시간 압축방식이 적용되기 어려워 용량이 큽니다.

이렇게 실시간으로 재생이 용이하기 때문에 실시간 라이브(유튜브, 트위치, 아프리카, 네이버 등등)에서 공통적으로 사용하는 형태의 파일이다.

m3u8 설명에도 있는데 m3u8이 바로가기라면 ts는 잘게 쪼개진 영상파일이라고 생각하면 쉽다.

❓ 그렇다면 m3u8은 무엇일까?

플레이리스트의 경로들과 재생시간을 가진 영상 스트리밍용 파일이다.

🤔 재생할수 있나?

  • 영상파일 바로가기 같은 파일이라 해당 주소가 접근이 가능하다면 가능하다.

  • 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
파일 종료

이런 형식으로 파일이 있는 것으로 볼 수가 있다.

profile
Soogineer's Devlog

0개의 댓글