Как сделать MPEG-DASH MPD, который начинает воспроизведение в середине первого сегмента?

89
8

Вот шаги воспроизведения:

Нормализовать видеопоток H.264

ffmpeg -i 2.h264 -c: v libx264 -i ntra -r 25 -vf scale = 640x360, setdar = 16: 9 2 @25fps @intra @640x360.h264

(*) После этого у меня есть поток H.264, где все снимки являются кадрами IDR H.264, а fps - 25, разрешение - 640x360, соотношение сторон - 16: 9.

Создайте файл MP4

MP4Box -add 2 @25fps @intra @640x360.h264: timescale = 1000 -fps 25 2 @25fps @intra @640x360.mp4

Сделайте фрагментированный контент Dash MP4, включая файлы init mp4,.m4s и один.mpd файл

MP4Box -dash 5000 -frag 5000 -dash -scale 1000 -frag -rap -segment-name 'seg_second $ Number $ -segment-timeline -profile live 2 @25fps @intra @640x360.mp4

Скопируйте и опубликуйте все эти файлы в папку под одним HTTPD-сервером

Я хочу играть с 4s первого сегмента и не показывать никаких кадров до 4s, поэтому я изменил файл.MPD, чтобы изменить поля "SegmentTemplate @presentationTimeOffset", "SegmentTimeline: S @d/t", например, как:
<?xml version="1.0"?> <MPD xmlns="urn:mpeg:dash:schema:mpd:2011" minBufferTime="PT1.500S" type="static" mediaPresentationDuration="PT0H0M26.000S" maxSegmentDuration="PT0H0M5.000S" profiles="urn:mpeg:dash:profile:isoff-live:2011"> <Period duration="PT0H0M26.000S"> <AdaptationSet segmentAlignment="true" maxWidth="640" maxHeight="360" maxFrameRate="25" par="16:9" lang="und"> <SegmentTemplate presentationTimeOffset="4000" media="seg_second$Number$.m4s" timescale="1000" startNumber="1" initialization="seg_secondinit.mp4"> <SegmentTimeline> <S d="1000" t="4000"/> <S d="5000" r="4"/> </SegmentTimeline> </SegmentTemplate> <Representation id="1" mimeType="video/mp4" codecs="avc3.64101E" width="640" height="360" frameRate="25" sar="1:1" startWithSAP="1" bandwidth="2261831"> </Representation> </AdaptationSet> </Period> </MPD>

Воспроизведите MPD-url от VLC-плеера или Edge-браузера, он всегда запускает первый кадр первого сегмента, и кадры между 0s ~ 4s также отображаются неожиданно.

Что не так с моими шагами? Или любые другие варианты?

спросил(а) 2021-01-19T18:53:10+03:00 6 месяцев назад
1
Решение
100

Уже выяснено! Он хорошо работает в Shakaplayer, но он не работает в Edge-браузере и VLC-проигрывателе.

ответил(а) 2021-01-19T18:53:10+03:00 6 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема