HTTP Live Потоковая передача статического файла на устройство iOS

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

Редактировать: из чтения HTTP LIve Streaming и немного больше 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.

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

1 ответ

Решение

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

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)"];