HTTP Live Streaming статического файла на устройство 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 Transport Stream.

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


person SundayMonday    schedule 08.02.2012    source источник


Ответы (1)


Что вы просите?? Информация??? - Приложение не перезагружает индекс, а воспроизводит его... используя файл 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... обратите внимание, что я добавляю:

/manifest(format=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)"]; 
person Calleth 'Zion'    schedule 16.04.2012
comment
Сталкивались ли вы с проблемой медленной сети? Я делаю то же самое, но видео не воспроизводится в плохой сети (2G), но звук продолжается. Пожалуйста помоги... - person Pooja M. Bohora; 17.06.2015
comment
Я думаю, что Edge недостаточно для воспроизведения ваших видео, возможно, вам следует создать вывод с очень низким качеством, чтобы поддерживать его. - person Calleth 'Zion'; 20.08.2015