Как создать манифест MPEG-DASH с несколькими резервными URL-адресами?

У меня есть URL-адрес вроде этого http://.../test/index.mpd. Я хочу создать еще один манифест, который будет содержать несколько резервных URL-адресов, указывающих на исходный файл манифеста.

Например, для URL-адреса http://example.com/test/index.mpd (исходный манифест ), новый файл манифеста должен содержать несколько URL-адресов CDN, например:

http://cdn1.com/example/test/index.mpd
http://cdn2.com/example/test/index.mpd
http://cdn3.com/example/test/index.mpd

Я нашел нечто подобное в следующем URL-адресе https://bitmovin.com/docs/player/faqs/how-can-i-utilize-the-cdn-fallback-feature-of-the-player. Однако в этом примере к исходному файлу манифеста добавляются базовые URL-адреса, и он не работает для динамического манифеста (живого потока). Есть ли способ сделать это. Я не могу найти хорошую документацию или примеры по манипулированию манифестом тире.


person C.Aglar    schedule 11.07.2019    source источник


Ответы (1)


Правильный способ сделать это - через BaseURL. Что вы имеете в виду, говоря «Это не работает для динамического манифеста»? BaseURL работают независимо от типа манифеста и определенно работают в динамических манифестах. Возможно, ваш игрок виноват?

Другой вариант - указать альтернативные URL-адреса MPD в тегах <Location>, что позволяет указать несколько мест, в которых доступен MPD, но IMO BaseURL лучше указать для аварийного переключения CDN.

person Anonymous Coward    schedule 15.07.2019
comment
Привет. Есть манифест прямой трансляции, созданный flussonic. Вместо того, чтобы манипулировать исходным файлом, я скопировал файл и добавил baseURL. Теоретически, где бы я ни поместил этот файл, так как baseURL указывает на правильное местоположение сегмента, который проигрыватель должен воспроизводить поток. Это работает с манифестом DVR. Манифест DVR статичен, и все сегменты видны в файле манифеста. Однако в манифесте живого потока (который является динамическим) всего 4 сегмента, и поскольку файл постоянно меняется, сегменты также меняются. - person C.Aglar; 16.07.2019
comment
В настоящий момент копия и исходный файл не имеют одинаковых сегментов, и когда вы пытаетесь воспроизвести файл манифеста копии, он выдает ошибку, связанную с сегментами. Есть ли способ создать отдельный файл mpd без сегментов, а всего лишь пару базовых URL-адресов, указывающих на исходный файл манифеста. - person C.Aglar; 16.07.2019
comment
Нет, это невозможно в рамках спецификации DASH. Как правило, то, что вы описываете, решается с использованием логики приложения более высокого уровня для обнаружения ошибок, выдаваемых игроком, затем перезагружает альтернативный манифест с другого URL-адреса, предоставленного другими средствами, и ищет нужное место. - person Anonymous Coward; 16.07.2019