Tech/Android 개발2015.04.13 10:31

알려진 안드로이드 HLS 스트리밍 이슈들

안드로이드에서 HTML video 태그를 이용하여 HLS를 서비스할 경우 정상적인 시청 환경을 제공할 수 없을 정도로 이슈가 많다는 것은 널리 알려진 사실입니다. 아래는 대표적인 HTML5 동영상 플레이어 중 하나인 JWPlayer에서 정리한 이슈 입니다.


Android 2.3 (Gingerbread)
  · 지원 안함
Android 3.0 (Honeycomb)
  · HLS 스트림이 장치와 충돌을 일으킨다.
Android 4.0 (ICS)
  · VOD에서 seek 불가능
  · 영상 가로세로 비율이 감지되지 않아 이미지 변형을 일으킨다.
  · 전체화면 진입시 영상이 처음부터 다시 시작된다.
Android 4.1+ (Jelly Bean)
  · 영상 가로세로 비율 이슈는 수정되었지만 여전히 seek이 불가능하다.
  · 크롬에서 HLS를 인식하지 못해 mimetype 을 감지하지 못한다.
  · 전체화면 진입 시 오류가 발생하고 장치가 멈춘다.


Seek 불가, 화면 비율 깨짐, 전체화면 진입시 오류 발생 등 굵직한 이슈들이 많이 보입니다. 


2015년 4월, 국내 주요 기기들에서의 안드로이드 HLS 이슈

위 JWPlayer 포스트는 약 2년전인 2013년 2월 27에 작성되었습니다. 모바일 세상에서의 변화의 속도를 감안하면 결코 짧지 않은 약 2년여의 시간이 지난 지금은 이슈들이 많이 없어졌을까요? 자이닉스에서 현재 사용되고 있는 국내 주요 기기들에서도 이슈들이 발생하는지 테스트를 진행해 보았습니다. 

테스트 환경

1) 서버 환경
 Wowza 3.6.2

2) 테스트 기기 목록

 번호

기기명 

 운영체제

제조사

발매일 

 Galaxy S3

 4.1 (Jelly Bean)

 삼성 

 2012.09

 Galaxy Note2

 4.4 (KitKat) 

 삼성

 2012.09

 Galaxy Note3

 4.4 (KitKat)

 삼성

 2013.09

 Galaxy S5

 5.0 (Lollipop) 

 삼성

 2014.03

 VEGA Racer

 4.1 (Jelly Bean) 

 팬텍

 2011.06

 VEGA IRON2

 4.4 (KitKat)

 팬텍

 2014.05

 Optimus LTE2

 4.1 (Jelly Bean) 

 LG

 2012.05

 LG G Pro2

 4.4 (KitKat)

 LG

 2014.02

 Nexus5

 5.1 (Lollipop)

 LG

 2013.10

* 위 테스트 기기들에 대해 기본 브라우저 및 Chrome 에서 진행
* 단 Nexus5는 Chrome이 기본 브라우저여서 Chrome만 진행함.
* Chrome 버전은 41로 테스트를 진행

테스트 결과

이슈 내용 

 발생한 환경

 영상이 가로세로 비율이 무시되고 화면에 꽉찬다.

 ① Galaxy S3-기본 브라우저
 
② Galaxy Note2-기본 브라우저

 전체화면[각주:1] 진입 시 영상의 끝으로 간다.

 ① Galaxy S3-기본 브라우저

 현재 시간이 계속 0초로 남아있다.

 ① Galaxy S3-Chrome
 
⑤ VEGA Racer-Chrome

 Seek이 불가능하다.

 ① Galaxy S3-Chrome
 ② Galaxy Note2-Chrome
 
⑤ VEGA Racer-Chrome

 영상 전체 길이가 짧아진다. ( 예: 59분 59초 영상 -> 56분 45초 )

 ② Galaxy Note2-기본 브라우저
 
③ Galaxy Note3-기본 브라우저, Chrome
 
⑤ VEGA Racer-Chrome
 
⑥ VEGA IRON2-기본,브라우저, Chrome

비교적 최신 기기들과 OS에서는 이슈가 없는 경향을 보이지만 테스트 표본이 작고 명시적으로 보장한다는 명세가 없어 확신은 할 수가 없습니다. 또한 나온지는 조금 지났어도 아직 제법 높은 점유율을 가지고 있는 Galaxy S3나 Note2등의 기기에서는 확실히 정상적인 시청이 불가능할 정도의 많은 이슈가 있습니다. 따라서 아직까지는 안드로이드 HTML5에서 HLS 스트리밍을 제공하기에는 많은 어려움이 따른다는 결론을 낼 수 있을 것 같습니다.


안드로이드 네이티브 App으로 HLS 스트리밍을 할 때의 이슈

안드로이드 HTML HLS 스트리밍의 대안으로써 네이티브 앱을 제작하는 방법이 종종 제안되고는 합니다. 간단히 시청만 가능한 프로토타입 앱[각주:2]을 제작하여 위와 같은 테스트 환경에서 확인해 보았습니다. 다수의 기기에서 어느정도 시청은 가능한 수준이라고 볼 수 있으나, 아래와 같은 공통적인 이슈가 발생하였습니다. 또한 아래 이슈들은 내장 플레이어에서도 동일하게 발생함을 확인하였습니다.

이슈내용
 * 영상 전체 길이가 짧게 나타난다. (59분 59초 영상 -> 56분 45초)
 * Seek시 Seek한 시간보다 뒤로 이동한다. ( 25:00 Seek -> 26:30으로 이동 )
 * 작게 측정된 전체 시간 이후의 시간을 재생하고 있는 동안은 Seek이 안 되는 현상 발생

발생 기기
 
① GalaxyS3② Galaxy Note2, ③ Galaxy Note3, ⑤ VEGA Racer


  1. 전체화면은 video 엘리먼트의 webkitEnterfullscreen 메소드를 의미합니다. [본문으로]
  2. 안드로이드 SDK의 VideoView를 사용 [본문으로]
신고
Posted by 비둘기야



Ash Maruya 지음

오늘날 기업들은 상상할 수 있는 그 어떤 것이든 만들 수 있다. 그러므로 우리가 대답해야 할 질문은 "이것을 만들 수 있을까?"가 아니라 "이것을 만들 필요가 있을까?"다. 그 어느 때보다 이런 실험이 필요하다.

팀에서 새로운 비즈니스를 찾아나가는 과정에서 아는 것이 없는 현재 상황을 돌파하고자 참고한 책이다.
책에서 말하는 A 부터 Z까지 곧바로 적용할 수는 없을 테지만 조금씩이라도 현재 프로세스에 잘 녹여서 의미를 부여할 계획이다 :)

그런 측면에서 Lean Canvas 도구는 초기 아이디어를 정리하는데 꽤 쓸만하다고 생각한다.
우선 생각한대로 시도하고, 실험을 통해 학습하여 개선해보자!


아래는 책에서 인상깊게 읽은 구절들

--

린 경영의 중요한 세 가지
1. 고객 개발 - 사무실 밖으로 나가라
2. 린 스타트업 - 낭비를 없애거나 자원을 효율적으로 사용한다.
3. 부트스트래핑 - 매출을 통한 자금 충당

p37.
고객은 여러분의 솔루션에는 관심이 없다. 자신의 문제에만 관심이 있다. - 데이브 맥클루어, 500 스타트업스

p38.
대부분의 스타트업에서 가장 큰 위험은 아무도 원하지 않는 것을 만드는 것이다.

p39.
어떤 문제가 해결할 가치가 있는지 판단하려면 다음 세가지 질문에 답을 해본다.
  • 고객이 원하는 것인가? (필수성)
  • 고객이 돈을 내고 구입할 것인가? 그렇지 않다면 누가 구입할 것인가? (실용성)
  • 문제를 해결할 수 있을 것인가? (실현 가능성)
p72.
MVP는 미완성 제품이나 결함이 많은 제품과 동의어가 아니라는 사실을 기억하자. MVP는 고객이 '가장 중요'하다고 생각하는 문제뿐만 아니라 해결할 가치가 있는 문제를 해결할 수 있어야 한다. 즉, 가격에 합당한 가치를 제공하게 MVP를 설계해야 한다.

p83.
우리는 스타트업이 매우 불확실하다는 것을 알지만 불확실성과 위험은 다르다. 위험하지 않은 것들도 불확실할 수 있다.
  • 불확실성: 완전히 확실하지 않은 것, 즉 두 가지 이상의 가능성이 존재하는 상태
  • 위험: 손실, 재난 또는 다른 바람직하지 못한 결과가 생길 수 있는 불확실한 상태
p90.
조언자 의견을 '심사 결과'나 '입증된 내용'으로 받아들이지 말고 위험을 식별하고 우선순위를 정하는 수단으로 받아들여야 한다. 사업 모델을 장악하는 것은 여전히 여러분의 몫이다.

p91.
전형적인 부서는 잊어버려라
문제팀: 문제 팀은 고객 인터뷰, 사용성 테스트 시행 등 '외부' 활동을 '주로' 담당한다.
솔루션팀: 솔루션 팀은 소스 코드 개발, 테스트 시행, 제품 설치 등 '내부' 활동을 '주로' 담당한다.

p93~95.
효과적으로 실험하기
  • 속도, 학습, 초점을 극대화하라
  • 한 가지 핵심 지표나 목표를 파악하라
  • 가능한 최소한의 일을 통해 학습하라
p107.
학습을 위한 가장 빠른 방법은 소스 코드를 발표하는 것도, 분석 결과를 모으는 것도 아닌 고객과 이야기 하는 것이다.

p119.
문제 인터뷰는 '문제-고객군'에 대한 여러분의 가설을 검증하는 일이다. 문제 인터뷰에서 여러분은 다음 위험을 구체적으로 다루어야 한다.
  • 제품 위험: 무슨 문제를 해결하려고 하는가? (문제)
    • 고객에게 가장 중요한 문제 세 가지는 무엇인가?
  • 시장 위험: 경쟁 제품은 무엇인가? (기존 대안)
    • 고객은 현재 이 문제를 어떻게 해결하는가?
  • 고객 위험: 불편을 겪는 사람은 누구인가? (고객군)
    • 사업성 있는 고객군인가?
p135.
솔루션 인터뷰 - 실제 제품을 만들기 전에 '데모'를 이용해 솔루션을 테스트하라.
  • 고객 위험: 불편을 겪는 사람들은 누구인가? (얼리아답터)
    • 얼리아답터를 판단하는 기준은 무엇인가?
  • 제품 위험: 이 문제들을 어떻게 해결하려고 하는가? (솔루션)
    • 제품 출시에 필요한 최소 기능들은 무엇인가?
  • 시장 위험: 가격 모델은 무엇인가? (수익원)
    • 고객들이 솔루션을 유료로 구입할 것인가?
    • 고객들이 감당할만한 가격대는?
p156.
최우선적으로 할 일은 가능한 한 최소 제품을 구축할 수 있게 MVP의 범위를 핵심 기능으로 축소하는 것이다.

p167.

실행에 옮길 수 있는 지표란 관찰된 결과에 구체적이고 반복 가능한 행동을 연관시킬 수 있는 지표다.



저작자 표시 비영리 변경 금지
신고
Posted by 자이닉스 일이
TAG book

티스토리 툴바