2013-04-05 2 views
1

https://developers.google.com/tv/android/articles/hls?hl=en을 읽고 어떤 의미가 "적응 형 스트리밍 - 자동으로 정체 또는 대역폭 가용성에 적응합니다." 플레이어가 시작할 때만 작동합니까, 아니면 너무 놀고 있을까요?원활한 스트리밍을 구현하는 방법은 무엇입니까?

내 연습 비디오는 현재 대역폭에 따라 품질로 시작됩니다. exmaple의 .m3u8를 들어 파일이 링크 대역폭의 목록이 포함되어

예를 들어
#EXTM3U 
#EXT-X-STREAM-INF:PROGRAM-ID=1, BANDWIDTH=1950000 
http://link1.M3U8 
#EXT-X-STREAM-INF:PROGRAM-ID=1, BANDWIDTH=1500000 
http://link2.M3U8 
#EXT-X-STREAM-INF:PROGRAM-ID=1, BANDWIDTH=1200000 
http://link3.M3U8 
#EXT-X-STREAM-INF:PROGRAM-ID=1, BANDWIDTH=950000 
http://link4.M3U8 
#EXT-X-STREAM-INF:PROGRAM-ID=1, BANDWIDTH=800000 
http://link5.M3U8 
#EXT-X-STREAM-INF:PROGRAM-ID=1, BANDWIDTH=700000 
http://link6.M3U8 

내 현재 대역폭 1600000을, 플레이어 (VideoView를 지켜 보면서)는, 재생하는 동안 링크 2에서 비디오 재생을 시작 나의 대역폭은 900,000되고 있지만, 플레이어는 여전히 계속 버퍼링 지연으로 링크 2의 비디오를 재생합니다.

플레이어가 제대로 작동합니까? 아니면 링크 5로 전환해야합니까?

맞으면 비디오를 다시 시작하지 않고도 어떻게 비디오 링크를 전환 할 수 있습니까?

고맙습니다!

업데이트 : 테스트 장치 Logitech Reveue, android 3.2. 비디오 플레이어 - VideoView.

답변

1

먼저 - 표시 내용이 Microsoft의 이 아닌 HTTP Live Streaming 인 HLS라고 표시됩니다.

HLS의 각 세그먼트는 일반적으로 10 초입니다.

당신은 당신의 선수가 무엇인지는 언급하지 않지만, 나는 그것이 당신이 질문 한 것과 관련이 있기 때문에 그것이 GoogleTV라고 추측 할 것입니다. 다른 플레이어는 다르게 행동하지만 기본 아이디어는 같습니다. 플레이어는 각 세그먼트를 가져 오는 데 걸리는 시간을 측정합니다. 시간에 맞으면 동일하게 유지하는 경향이 있습니다. 너무 오래 걸리면 필요 이상으로 세그먼트를 얻을 수있는 대역폭을 선택하려고 시도합니다 그것을 재생합니다. 버퍼링 지연이 발생하면 오류입니다. 로그 파일을보고 콘텐츠를 재생할 때 플레이어가 무엇을하는지, 다른 대역폭으로 전환하지 않는 이유를 확인할 수 있어야합니다.

+0

"HLS의 각 세그먼트는 일반적으로 10 초입니다." 내가 확인한 비디오는 각각 2 초 분량으로 나뉘어 정상입니까? – Sinigami

+0

VideoView를 플레이어로 사용하고 있습니다. 당신은 무엇을 의미합니까 "구글 TV 플레이어" – Sinigami

+0

대답 주셔서 감사합니다. – Sinigami

관련 문제