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