둘다 같은 기반에 같은 기술이 적용되는데 DASH가 HLS보다 약간 더 빠른 이유가 뭘까요?
=> 그때 그 때 다릅니다. 일반적으로 DASH는 ISO BMFF 기반의 컨테이너를 사용하면서,
initSegment라는 코덱 정보가 들어간 초기화 파일 부터 로드 한 후 재생을 하게 하나,
HLS는 MPEGTS를 사용하면서 PMT 테이블 같이 코덱 정보가 일정 주기로 계속 내려오다보니, 코덱 정보가 내려오는 이전의 데이터를 사용 못 해서 , 코덱 초기화 시간만큼 늦게 시작될 수 있습니다.
단지 DASH의 경우 특허가 복잡해서 ISO BMFF 기반의 컨테이너 대신 MPEGTS 컨테이너를 사용하여 재생하는 빈도가 늘어나고 있습니다.
RTSP, RTMP, RTP(?) 보다 Dash, HLS가 많이 사용되는 이유는 뭐죠?
tcp interleave 방식이 있긴하지만, 일반적인 경우 모두 Udp 방식 전송으로 전송 딜레이가 DASH, HLS보다 빠른 장점이있습니다. 하지만 udp 특성상 drop 이 되면서 화면이 깨지는 문제가 존재합니다. 또한 특정 포트를 열어 전송을 해야하다보니, 방화벽 이슈가 있을 가능성도 높습니다. 마지막으로 RTSTP, RTMP, RTP의 경우 소켓을 직접 open하여 send하는 구조라 서버에서 session을 계속 관리 해 줘야해서, 서버에서 할일이 많습니다.
Dash, HLS는 http 기반이라 HTTP 서버에 파일만 올려두면, 세션관리를 별도로 할 필요도 없고, 방화벽 이슈나 드랍이슈도 해결 됩니다. 또한 playlist를 계속 업데이트 받아 해당 시간에 필요한 파일만 받기 때문에, 서버측 부하도 줄어듭니다.
DASH, HLS대신 WebRTC를 사용하는건 별로일까요?
용도에 따라 다릅니다. DASH, HLS 서버의 경우 구축이 간단하지 않고 공개 소드도 별로 없다보니, 원하시는 기능이 된다면 WebRTC를 사용하셔도 상관없습니다.