2015-04-22 6 views
0

Я пытаюсь передать видео с ковша AWS S3. Я загрузил несколько файлов с разрешениями «сделать для всех».Потоки AVPlayer и AWS Потоки

Я также создал дистрибутив CloudFront (я просто выбрал свой ковш и по умолчанию все остальные варианты выбора). В веб-браузере я могу скачать файл/прочитать с помощью адреса http://distribution.cloudfront.net/movie1.mov

В моем проекте я инициировал AVPlayer, который берет путь из таблицы (например, itune, но для фильма). файл для каждой строки такой же, как испытано в моем веб-браузере: http://distribution.cloudfront.net/movie1.mov для Row1 distribution.cloudfront.net/movie2.mov для row2 ...

Игрок берет хорошо путь и начать играть, но это всегда замораживать в одно и то же время. Я должен сделать паузу или вперед/назад, чтобы продолжить видео.

SO, похоже, проблема с буфером.

Я хотел бы знать, пользуюсь ли я хорошо облачным фронтом AWS и как я могу решить проблему с буфером.

Я не нашел хороших учебников или ответов об этом.

Благодарим за помощь.

С уважением

+1

CloudFront имеет параметр распределения, если файл для «загрузки» или «потокового» по умолчанию загружается. Можете ли вы проверить, что вы переключились на потоковое вещание? Также вы установили ограничения Geographic для облачного облака, чтобы использовать серверы в ближайшей к вам зоне? –

+0

Благодарим вас за ответ. Для вашего первого вопроса: у меня не было выбора между загрузкой или потоковой передачей при создании дистрибутива. Или, может быть, это выбор между Web и RMTP. Если я выбираю Web. -> Я должен перейти на RMTP? Я не ограничивался географическими ограничениями. Где я могу найти его ? – Jojo

+0

Я нашел географические ограничения и настроил их только для Франции (на данный момент).Поэтому, если я хочу расширить свое приложение в ЕС или США, я должен добавить больше стран. Это оно ? – Jojo

ответ

0

вы установите Географические ограничения на CloudFront так, что он использует серверы в районе ближайшего к вам?

Я имел в виду между веб-и RMTP в своем первом комментарии. Вы хотите, чтобы сеть была правильной.

Теперь, когда он ограничен во Франции, проверьте свои видео снова и посмотрите, лучше ли их производительность.

Вы хотите разрешить использование других регионов по мере расширения вашего использования. Помните, что в разных регионах есть РАЗЛИЧНЫЕ ЦЕНЫ для облачной. ЕС и США такие же, но другие регионы могут быть в два раза дороже или больше.

http://aws.amazon.com/cloudfront/pricing/

+0

Благодарим вас за подробности. я испытал с ограничениями, но видео все еще заморожены через несколько секунд :( Выбор RMTP не поможет – Jojo

+0

я также пытался открыть ссылку: http://distribution.cloudfront.net/movie1.mov в vlc, но он все еще медленный и замороженный в одно и то же время. Любая идея? – Jojo

+0

Не удается выполнить также VLC на вашем локальном компьютере? Вы уверены, что файл не поврежден? Попробуйте поместить файл на свой обычный веб-сервер (не s3) и смотреть фильм таким образом, чтобы проверить. –

0

AVPlayer может тормозить при потоковой передаче длинных видео.

Вы должны зарегистрироваться наблюдателей для ключей playbackBufferEmpty и playbackLikelyToKeepUp

[playerItem addObserver:self forKeyPath:@"playbackBufferEmpty" options:NSKeyValueObservingOptionNew context:nil]; 
[playerItem addObserver:self forKeyPath:@"playbackLikelyToKeepUp" options:NSKeyValueObservingOptionNew context:nil]; 

Тогда на,

- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object 
         change:(NSDictionary *)change context:(void *)context { 
    if (!player) { 
     return; 
    } 

    else if (object == playerItem && [keyPath isEqualToString:@"playbackBufferEmpty"]) { 
     if (playerItem.playbackBufferEmpty) { 
      //Other relevant code here, like adding spinner 
     } 
    } 

    else if (object == playerItem && [keyPath isEqualToString:@"playbackLikelyToKeepUp"]) { 
     if (playerItem.playbackLikelyToKeepUp) { 
      [player play]; 
      //Other relevant code here, like removing spinner 
     } 
    } 
} 
+0

это уже реализовано, как я использовал плеер здесь: https://github.com/piemonte/Player Но всегда замерзает в то же время Любые другие идеи – Jojo

+0

Тогда я не думаю, что это.? что-то связанное с частью приложения. – Xcoder