안녕하세요, XETOWN에서 되게 오랜만에 질문글 남겨봅니다 :)

 

동영상 배포를 할때 어떤 포멧이 제일 좋을지 고수님들의 의견을 여쭙고 싶습니다. 동영상 플레이어는 videojs 로 구현 할 계획인데, 영상 파일의 경우 어떤 방식으로 배포하는것이 제일 좋을지 궁금합니다 (videojs 자체는 3개포멧 모두 호환되는거 같더라구요).

 

인터넷 검색 해보니 HLS 와 MPEG-DASH 자체는 크게 차이가 안난다고 하는 것 같은데, 유튜브의 경우 그냥 단일 MP4/WebM 파일을 던져주는것 같고, 일부 동영상 전문 전송 업체의 경우 HLS Stream 을 만들어 배포하는 것 같아서 실제로 어떤 방법이 제일 효율적인지 (용량/트래픽/속도 등), 실제로 업계(?) 에서는 어떤 방식을 제일 선호하는지 궁금합니다.

  • ?

    fragmented mp4를 사용하여 hls랑 mpeg-dash 둘 다 호환이 가능하게끔 할 수 있습니다.
    다만, mpeg-dash와 HLS같은 경우엔 자바스크립트의 MediaSource API를 지원과 동시에 코덱이 지원을 해야 사용이 가능합니다.
    즉, hls, mpeg-dash 미지원 환경(iOS 사파리)을 위해서 순수 MP4파일을 남겨놔야 합니다. (저장공간 정말 무지막지하게 먹어댑니다.. 특히 적응형 VOD같은거 하면 화질별로 저장하랴..순수 MP4도 저장하랴...하드디스크가 ㅠㅠ)
    아니면 그냥 지원하지 않는 브라우저에선 재생 할 수 없다고 알림을 띠우던가..

    이런저런 말이 많았는데 요약하자면..
    가장 진보된 기술을 쓰고싶다: MPEG-DASH (경우에 따라 HLS호환되게도 가능.)
    젤 많이 보편화된 스트리밍 기술을 쓰고싶다: HLS
    브라우저에서 재생이 꼭 되어야 한다: 순수 MP4

     

    개인적으로 적응형 VOD나 라이브 DVR같은걸 쓰시지 않는다면 그냥 순수 MP4로 하시는걸 추천드립니다.

    기능 구현에 비해 물리적, 논리적 비용이 어마무시합니다..

  • ? profile
    답변 감사합니다!

    그런데 HLS 가 iOS 사파리에서 지원이 안되나요? HLS 프로토콜 자체를 애플에서 만든걸로 알고있는데...;;

    요약하면 HLS나 MPEG-DASH 로 적응형 영상을 재생하고 싶으면 HLS/MPD 로 화질별로 저장 + fallback 용 풀사이즈 동영상까지 저장해야 하는군요..

    혹시 순수 MP4 대비 HLS가 갖는 장점이 있는지요 (유튜브를 보니 순수 MP4 만으로도 적응형 영상 만드는게 가능해 보여서요)?
  • profile ?

    지원이 되기는 하는걸로 알고있는데 브라우저 버전마다 조금식 다르게 재생이 되는걸로 알고있습니다. 특히 코덱이나 컨테이너너 종류에 따라 이상하게 동작하는 경우를 많이 봐서..
    특히 fMP4같은경우 나온지 몇년 안된걸로 알고 있어서, 구 브라우저에선 재생이 안될거에요.

    순수 MP4대비 HLS가 갖는 장점이라면.. 적응형 재생이 가능하고 동영상 추출이 비교적으로 어려워지는 정도?

    순수 mp4파일 만으로 적응형 영상을 만들 수 없습니다. 순수 mp4파일은 화질이 한 개밖에 없는데 적응형이 가능할지요..

    다만 mux작업을 하여 hls로 재생 변환은 가능합니다.

  • ? profile
    아 적응형 재생을 위해서는 HLS/MPD가 필수군요. 감사합니다!
    코덱이나 이런건 결국 여러 기기에서 테스트하는 것 말고는 답이 없군요..ㅠㅠ