2011-12-21 4 views
6

AVPlayer로 HTTP 라이브 스트리밍 비디오를 재생하고 있습니다.HTTP 라이브 스트리밍에서 비디오를 재생할 때 AVPlayer의 데이터에 액세스합니다.

플레이어가 캐시 된 데이터에 액세스하여 로컬에 저장하는 방법이 있습니까?

+1

내가 아는 한, 당신은 라이브 스트리밍에서 그렇게 할 수 없습니다. – Vlad

+0

그게 내 경험이야 – V1ru8

+0

혹시 알고 계신가요? 데이터를 저장하고 AVPlayer로 전달할 사용자 지정 구성 요소의 흐름을 먼저 읽는 방법이 있습니까? 나는 데이터를 저장하는 방법을 찾기 위해 정말로 찾고 있습니다 ... – MartinMoizard

답변

7

TLDR; 그것은 불가능하지 않지만 결과는 그다지 크지 않을 것입니다.

HTTP 비디오 스트림은 실제로 여러 대역폭 스트림으로 구성됩니다. 이들 각각은 더 작은 MPEG 전송 스트림 청크로 분할됩니다.

이러한 스트림을 재생할 때 AVPlayer는 일반적으로 사용 가능한 대역폭 스트림 중 하나를 선택하고 사전로드를 시작하며 곧 재생됩니다. 이제 AVPlayer는 막대를 높이기 시작하여 더 높은 대역폭 스트림에서 청크를 다운로드하기 시작합니다. AVPlayer는 사용 가능한 가장 높은 대역폭에 도달 할 때까지 막대를 다시 올립니다. AVPlayer가 대기열에 미리로드 된 특정 재생 가능 길이를 유지하는 데 문제가 있으면이 과정이 반대로 진행됩니다. 따라서 네트워크 처리량이 감소되는 경우 더 낮은 대역폭 스트림이 선택됩니다. 정확한 구현 세부 사항은 지정되지 않았지만 이것이 대략 어떻게 작동 하는지를 설명합니다.

이제 로컬로 데이터를 저장/캐시한다고 가정 해보십시오. 다양한 대역폭 TS 청크를 혼합하여 얻을 수 있습니다. 상자 밖에서 재생할 수있는 것은 아닙니다. 또한 모바일 장치에서 파일 시스템 액세스가 비싸고 인 경우이 프로세스에 추가로드가 발생합니다.

전체적으로 전적으로 불가능한 것은 아니지만 전혀 사소하지 않다고 생각합니다. 필자는이 문제에 대해 파일 시스템 파이핑을 실험하는 사람들에 대해 읽었지만 결코 작동시키지 못했습니다.

+1

머리를 가져 주셔서 감사합니다, 내가 생각한 것을 확인했습니다. 업데이트가 있으면이 스레드를 업데이트하겠습니다. – MartinMoizard

관련 문제