AVPlayer отправляет AVPlayerItemFailedToPlayToEndTimeNotification примерно с 1 минутой воспроизведения до конца

Я пытаюсь HLS потоковое на Mac. Для некоторого содержимого воспроизведение не заканчивается до конца, и AVPlayer отправляет сигнал AVPlayerItemFailedToPlayToEndTimeNotification в течение 1 минуты воспроизведения. Это всегда происходит в одно и то же время.

AVPlayer получает плейлист с начальным сегментом =100. В 18-минутном видео он прекрасно воспроизводится в течение 16 минут. и затем это терпит неудачу с AVPlayerItemFailedToPlayToEndTimeNotification.

Вот журнал ошибок AVPlayerItem

error log: #Version: 1.0
Software: AppleCoreMedia/1.0.0.13E28 (Macintosh; U; Intel Mac OS X 10_9_4; en_us)
#Date: 2014/11/14 12:32:17.017
#Fields: date time uri cs-guid s-ip status domain comment
2014/11/14 12:32:15.015 http://localhost:12000/stream/content.ts?id=192.168.1.107-bd1ec9ddb674b1c67dd4&bps=1200000&segid=100 B4A5AB49-1647-4A3B-9768-61F3F99B133E 127.0.0.1 -12318 "CoreMediaErrorDomain" "Segment exceeds specified bandwidth for variant"

В журналах ошибок он жалуется на сегмент 100, который был воспроизведен 16 минут назад. Похоже, его старая информация об ошибке.

Вот информация журнала доступа при неудачном воспроизведении

Access log: #Version: 1.0
#Software: AppleCoreMedia/1.0.0.13E28 (Macintosh; U; Intel Mac OS X 10_9_4; en_us)
#Date: 2014/11/14 12:32:17.017
#Fields: date time uri cs-guid s-ip s-ip-changes sc-count c-duration-downloaded c-start-time c-duration-watched bytes c-observed-bitrate sc-indicated-bitrate c-stalls c-frames-dropped c-startup-time c-overdue c-reason c-observed-min-bitrate c-observed-max-bitrate c-observed-bitrate-sd s-playback-type sc-wwan-count c-switch-bitrate
2014/11/14 12:32:15.015 https://localhost:12100/stream/playlist.m3u8?id=192.168.1.107-bd1ec9ddb674b1c67dd4&bps=1200000 B4A5AB49-1647-4A3B-9768-61F3F99B133E 127.0.0.1 0 3 9.000 1.070 1.281 1831920 5991597.824 1369642 0 0 2.430 0 - 3063099.199 6966103.615 - VOD 0 -

Я сравнил журнал доступа для AVPlayerItem, когда воспроизведение не удается, и воспроизведение в порядке (я выкидываю состояние, когда воспроизведение приостановлено), и единственное заметное отличие - это поле c-reason, которое равно 1 в случае сбоя и - в случае успеха.

Что такое поле c-reason и где я могу получить больше информации об этом. AVPlayerItemAccessLogEvent ничего не говорит об этом.

Вот сравнение полей AVPlayerItemAccessLogEvent для случаев сбоя и успеха. Первое значение - это случай неудачи, а второе - случай успеха.

uri = https://localhost:12100/stream/playlist.m3u8?id=192.168.1.107-bd1ec9ddb674b1c67dd4&bps=1200000
      https://localhost:12100/stream/playlist.m3u8?id=192.168.1.107-bd1ec9ddb674b1c67dd4&bps=1200000
cs-guid = 9B6DFB28-0AB5-4729-9744-5DD1C80AA974
          B4A5AB49-1647-4A3B-9768-61F3F99B133E
s-ip = 127.0.0.1
     = 127.0.0.1         
s-ip-changes = 0
             = 0                 
sc-count = 4
         = 3             
c-duration-downloaded = 12.000
                      = 9.000                                           
c-start-time = 1.070
             = 1.070
c-duration-watched = 3.948
                   = 1.281
bytes = 2368360
      = 1831920
c-observed-bitrate = 4311328.532
                   = 5991597.824                
sc-indicated-bitrate = 1369642
                    =1369642                         
c-stalls =0
         = 0        
c-frames-dropped = 0
                    = 0
c-startup-time = 2.574
                = 2.430
c-overdue = 0
          = 0
c-reason = 1
         = - 
c-observed-min-bitrate = 2987149.809
                     = 3063099.199
c-observed-max-bitrate = 6577841.971
                       = 6966103.615
c-observed-bitrate-sd = - -
s-playback-type = VOD VOD
sc-wwan-count = 0 0 
c-switch-bitrate = - -

Я знаю его длинный вопрос, но если кто-то может проверить разницу выше, дайте мне знать, почему игрок терпит неудачу.

Спасибо за чтение этого длинного вопроса.

С уважением, D

0 ответов

Другие вопросы по тегам