HTTP Live Потоковая передача статического файла на устройство iOS - PullRequest
0 голосов
/ 09 февраля 2012

Я пытаюсь понять «кусочный» аспект HTTP Live Streaming статического видеофайла на устройстве iOS. Где происходит фрагментация видеофайла?

Редактировать : из чтения Поток HTTP LIve и немного больше http://tools.ietf.org/html/draft-pantos-http-live-streaming-07 Похоже, видеофайл на сервере разбит на сегменты .ts.Или списки воспроизведения m3u8 могут указывать смещения байтов в файле (очевидно, используя EXT-X-BYTERANGE).

Вот что я понимаю об этом процессе после прочтения описания Apple HLS и http://tools.ietf.org/html/draft-pantos-http-live-streaming-07:

  • Статический файл живет на моем сервере.У него правильная кодировка аудио / видео (H.264 и AAC).
  • Я передам плейлист m3u8 на медиаплеер (MPMoviePlayer или аналогичный) в моем приложении.
  • Приложение «перезагрузит указатель» во время воспроизведения мультимедиа.Другими словами, приложение будет запрашивать дополнительные сегменты для воспроизведения.
  • каждый 10-секундный сегмент находится в MPEG Transport Stream контейнере.

Мое понимание этого процессаявляется неполным (и, возможно, неверным).Любая дополнительная информация очень ценится.

1 Ответ

1 голос
/ 16 апреля 2012

Что ты просишь ?? Информация??? -Приложение не перезагружает индекс, а воспроизводит его ... используя файл M3U8, который переключает правильный закодированный файл. Таким образом, вам нужно только установить соединение между медиаплеером и «файлом манифеста», например ...

NSURL    *fileURL    =   [NSURL URLWithString:@"http://techxvweb.fr/html5/AppleOutput/2012-03-10-j23-dax-smr-mt1-m3u8-aapl.ism/manifest(format=m3u8-aapl)"];
moviePlayerController = [[MPMoviePlayerController alloc] initWithContentURL:fileURL];
/* Inset the movie frame in the parent view frame. */
CGRect viewInsetRect = CGRectInset ([self.view bounds],0.0, 0.0 );
[[moviePlayerController view] setFrame: viewInsetRect ];
[self.view addSubview:moviePlayerController.view];
[moviePlayerController play];

где NSUrl - это URL вашего файла manifestFile ... обратите внимание, что я добавляю:

/ манифеста (формат = m3u8-AAPL)

к исходному файлу манифеста, что сопоставляет файл "ISM" с правильным синтаксисом M3U8

   NSURL    *fileURL    =   [NSURL URLWithString:@"http://techxvweb.fr/html5/AppleOutput/2012-03-10-j23-dax-smr-mt1-m3u8-aapl.ism/manifest(format=m3u8-aapl)"]; 
...