2015-07-09 2 views
0

я уверен, реализация MPEG-тир видеосервера для живых потоков,Как реализовать плейлист mpeg-dash?

отрывов потока и добавляя куски в MPD - работа, см примера

<MPD xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:mpeg:dash:schema:mpd:2011" xsi:schemaLocation="urn:mpeg:dash:schema:mpd:2011 http://standards.iso.org/ittf/PubliclyAvailableStandards/MPEG-DASH_schema_files/DASH-MPD.xsd" type="Live" availabilityStartTime="2015-07-09T15:10:46.775640Z" minimumUpdatePeriod="PT10.0S" timeShiftBufferDepth="PT1.0M" maxSegmentDuration="PT20.0S" minBufferTime="PT1.0S" profiles="urn:mpeg:dash:profile:isoff-live:2011,urn:com:dashif:dash264,urn:hbbtv:dash:profile:isoff-live:2012"> 
<Period id="1" start="PT0S"> 
<AdaptationSet group="1" mimeType="video/mp4" segmentAlignment="true" maxWidth="640" maxHeight="480" startWithSAP="1"> 
<SegmentTemplate timescale="1000" media="$RepresentationID$/$Time$.m4v" initialization="$RepresentationID$/init.vmoov"> 
<SegmentTimeline> 
<S t="625" d="11000"/> 
<S t="11625" d="12000"/> 
<S t="23625" d="7200"/> 
<S t="30825" d="9800"/> 
<S t="40625" d="10760"/> 
<S t="51385" d="10520"/> 
<S t="61905" d="11640"/> 
<S t="73545" d="9160"/> 
</SegmentTimeline> 
</SegmentTemplate> 
<Representation id="ad/a" codecs="avc1.4D401E" width="640" height="480" frameRate="25" bandwidth="1000000"></Representation> 
</AdaptationSet> 
<AdaptationSet group="2" mimeType="audio/mp4" segmentAlignment="true"> 
<SegmentTemplate timescale="1000" media="$RepresentationID$/$Time$.m4a" initialization="$RepresentationID$/init.amoov"> 
<SegmentTimeline> 
<S t="721" d="10922"/> 
<S t="11643" d="11990"/> 
<S t="23633" d="7210"/> 
<S t="30843" d="9792"/> 
<S t="40635" d="10752"/> 
<S t="51387" d="10539"/> 
<S t="61926" d="11627"/> 
<S t="73553" d="9173"/> 
</SegmentTimeline> 
</SegmentTemplate> 
<Representation id="ad/a" codecs="mp4a.40.02" audioSamplingRate="48000" bandwidth="66750"></Representation> 
</AdaptationSet> 
</Period> 
</MPD> 

, но когда я пытаюсь реализовать скользящий PLAYLIST

(например, будет 5 кусков, новый кусок заменит старый. В настоящее время я просто распечатываю обновленный SegmentTimeline без изменения какого-либо другого значения.)

Игрок останавливает playin g после обновления .mpd.

сегменты раз - настоящая временная шкала потока. (т. е. то же, что и в файлах .m4 *)

Какие атрибуты/элементы мне нужно реализовать для видео в реальном времени с раздвижным списком воспроизведения?

ответ

3

Обновление временной шкалы в порядке, больше ничего не нужно.

Согласно стандарту MPEG-DASH, атрибут «тип» в элементе MPD может быть установлен только на «статический» (то есть контент VoD) или «динамический» (для живых потоков). Установка «Live» приводит к недействительному файлу манифеста, и игроки, такие как Bitmovin player или dash.js, будут либо использовать «статические» (как это значение по умолчанию), либо они вообще не узнают его.

Аудиокодек не должен иметь начальные нули, т. Е. Вместо «mp4a.40». 2 «вы должны использовать« mp4a.40.2 ».

Имеются уже доступные серверы потокового видео DASH, например. используя NGINX с nginx-rtmp-module, так что вы также можете проверить, что они делают.

Смежные вопросы