MPEG-DASH(MPD@type='dynamic)/availabilityStartTime

146 views
Skip to first unread message

Alex Pokotilo

unread,
Nov 26, 2014, 11:01:16 PM11/26/14
to stream...@googlegroups.com
По стандарту MPD@availabilityStartTime это время в UTC которое используется, чтобы определить тогда станет доступен сегмент.

5.3.9.5.3
Media Segment information
For services with MPD@type='dynamic', the Segment availability start time of a Media Segment is the sum
of
 the value of the MPD@availabilityStartTime,
 the PeriodStart time of the containing Period as defined in 5.3.2.1,
 the MPD start time of the Media Segment, and
 the MPD duration of the Media Segment.


при этом две доступные серверные реализации(wowza и nginx-rtmp) которые протестировал обновляют MPD@availabilityStartTime так :
когда сегмент выходит за границы SegmentTimeline, тоесть когда сегмент удаляется из SegmentTimeline сервер апдейтит availabilityStartTime на величину duration это сегмента

при этом

8.4.2
Media Presentation Description constraints
- When the MPD is updated, the value of MPD@availabilityStartTime shall be the same in the
original and the updated MPD

тоесть апдейтиться он не должен


Max Lapshin

unread,
Nov 27, 2014, 3:54:53 AM11/27/14
to stream...@googlegroups.com
Думаю, тут нет никакого точного ответа, потому что эталонных реализаций нет.

Посмотри в сырцах dash.js, может чего полезного найдешь.

Мы ещё dash не приделали =(

gja...@gmail.com

unread,
Nov 27, 2014, 4:19:58 AM11/27/14
to stream...@googlegroups.com
По идее ответ в стандарте, но две доступные реализации работаю как две капли воды похоже и сдается мне, что я или неверно понимаю стандарт или есть что-то чего я не знаю

27 ноября 2014 г., 18:54 пользователь Max Lapshin <max.l...@gmail.com> написал:
Думаю, тут нет никакого точного ответа, потому что эталонных реализаций нет.

Посмотри в сырцах dash.js, может чего полезного найдешь.

Мы ещё dash не приделали =(

--
Вы получили это сообщение, поскольку подписаны на одну из тем в группе "streaming-ru".
Чтобы отменить подписку на эту тему, перейдите по ссылке https://groups.google.com/d/topic/streaming-ru/GKBMfqgB1gI/unsubscribe.
Чтобы отменить подписку на эту группу и все ее темы, отправьте письмо на электронный адрес streaming-ru...@googlegroups.com.
Чтобы настроить другие параметры, перейдите по ссылке https://groups.google.com/d/optout.

Max Lapshin

unread,
Nov 27, 2014, 7:02:55 AM11/27/14
to stream...@googlegroups.com
Обычно это сигнал того, что одна реализация копировалась с другой.

gja...@gmail.com

unread,
Nov 27, 2014, 7:05:12 AM11/27/14
to stream...@googlegroups.com
я надеюсь все-такие на то, что я что-то неправильно понял

27 ноября 2014 г., 22:02 пользователь Max Lapshin <max.l...@gmail.com> написал:
Обычно это сигнал того, что одна реализация копировалась с другой.

--

Max Lapshin

unread,
Dec 5, 2014, 9:52:06 AM12/5/14
to stream...@googlegroups.com
Саша, а какой-нибудь валидатор для Dash есть?

Alex Pokotilo

unread,
Dec 5, 2014, 7:28:38 PM12/5/14
to stream...@googlegroups.com
ага. я вот этим валидировал http://dashif.org/conformance.html
но с валидацией есть проблемы в том смысле, что версии некоторых плееров для html5 и flash работают поразному. так что если столкнешься - не пугайся и всегда тестируй референс плеер от dashif и flash fallback. они повторю бывает работают по-разному


суббота, 6 декабря 2014 г., 0:52:06 UTC+10 пользователь Max Lapshin написал:

Alex Pokotilo

unread,
Dec 10, 2014, 5:55:47 PM12/10/14
to stream...@googlegroups.com
выяснилось, что оказывается значение этого параметра было описано иначе в первой версии стандарта, а во второй, по которой я делал поддержку dash его поменяли.
Так что и вовза и nginx-rtmp все сделали верно, просто поменялся стандарт.

четверг, 27 ноября 2014 г., 22:05:12 UTC+10 пользователь Alex Pokotilo написал:
я надеюсь все-такие на то, что я что-то неправильно понял
27 ноября 2014 г., 22:02 пользователь Max Lapshin <max.l...@gmail.com> написал:
Обычно это сигнал того, что одна реализация копировалась с другой.

--
Вы получили это сообщение, поскольку подписаны на одну из тем в группе "streaming-ru".
Чтобы отменить подписку на эту тему, перейдите по ссылке https://groups.google.com/d/topic/streaming-ru/GKBMfqgB1gI/unsubscribe.
Чтобы отменить подписку на эту группу и все ее темы, отправьте письмо на электронный адрес streaming-ru+unsubscribe@googlegroups.com.

Max Lapshin

unread,
Dec 10, 2014, 11:00:34 PM12/10/14
to stream...@googlegroups.com
А плееры не работают по какой версии стандарта?

gja...@gmail.com

unread,
Dec 10, 2014, 11:45:11 PM12/10/14
to stream...@googlegroups.com
в зависимости от версии плеера. чтобы не ломать совместимость серверная реализация пишется и тестируется на конкретной версии плеера.

11 декабря 2014 г., 14:00 пользователь Max Lapshin <max.l...@gmail.com> написал:
А плееры не работают по какой версии стандарта?

--
Вы получили это сообщение, поскольку подписаны на одну из тем в группе "streaming-ru".
Чтобы отменить подписку на эту тему, перейдите по ссылке https://groups.google.com/d/topic/streaming-ru/GKBMfqgB1gI/unsubscribe.
Чтобы отменить подписку на эту группу и все ее темы, отправьте письмо на электронный адрес streaming-ru...@googlegroups.com.

Max Lapshin

unread,
Jan 24, 2015, 5:46:55 AM1/24/15
to stream...@googlegroups.com
Как в итоге ты реализовал?

availabilityStartTime — это же вроде UTC первого сегмента в манифесте?



Alex Pokotilo

unread,
Jan 24, 2015, 7:23:54 AM1/24/15
to stream...@googlegroups.com
по текущей версии стандарта да. учти, что когда будешь тестировать только версия dashif с транка будет играть такой вариант.
все версии включая http://dashif.org/reference/players/javascript/1.2.0/index.html базируются на предидущей версии и играть не будут

суббота, 24 января 2015 г., 20:46:55 UTC+10 пользователь Max Lapshin написал:

Max Lapshin

unread,
Jan 24, 2015, 9:56:50 AM1/24/15
to stream...@googlegroups.com
Чудесно. Т.е. если делать правильно, то это никто не проиграет, а если делать что бы играло, то будешь таким же говнюком, как остальные? =)


Слушай, ещё вопрос: в каком же именно документе описание всяких sidx, trun и прочих traf?

Alex Pokotilo

unread,
Jan 24, 2015, 9:47:36 PM1/24/15
to stream...@googlegroups.com
ну почему никто. говорю же референсный плеер играет тот что на транке. что мешает клиенту ставить плеер с транка? bitmovin играет тоже отлично. все не так мрачно.
sidx, trun и все такое описывается в ISO 14496-14

воскресенье, 25 января 2015 г., 0:56:50 UTC+10 пользователь Max Lapshin написал:

Max Lapshin

unread,
Jan 25, 2015, 1:46:51 AM1/25/15
to stream...@googlegroups.com
Я взял из транка dash.js,  он играет с availabilityStartTime равным первому UTC первого плейлиста и с availabilityStartTime равным 0, т.е. 1970.


Меня что удивляет: очень многие формируют dash исходя из timescale=1000, т.е. везде время в миллисекундах. Как-то это всё неаккуратненько очень выглядит.

gja...@gmail.com

unread,
Jan 25, 2015, 3:47:23 AM1/25/15
to stream...@googlegroups.com
availabilitytime и ряд других флагов это самое мутное место в довольно несложном стандарте. я сделал вточности как написано и рад, что в текущей версии плеера поток играется.

Я использую тот timescale, который приходит отисточника в случае vod. но для rtmp оно по стандарту 1000. тут удивительного нет ничего

25 января 2015 г., 16:46 пользователь Max Lapshin <max.l...@gmail.com> написал:
Я взял из транка dash.js,  он играет с availabilityStartTime равным первому UTC первого плейлиста и с availabilityStartTime равным 0, т.е. 1970.


Меня что удивляет: очень многие формируют dash исходя из timescale=1000, т.е. везде время в миллисекундах. Как-то это всё неаккуратненько очень выглядит.

--
Reply all
Reply to author
Forward
0 new messages