Задать вопрос
Alex-rsk
@Alex-rsk
Бэкендер

Стриминг MPD, используя GPAC. Динамический плейлист, как заставить заработать?

Приветствую.

У меня есть кусочки видео в mp4 фиксированной длины, поступающие ко мне с неравномерной частотой.
Я хочу составлять из этих кусочков MPD стрим, добавляя их к плейлисту по мере появления.

Использую GPAC version 2.3-DEV-rev832-g799d9e547-master. ОС Убунту 22
Делаю по инструкции:
gpac -i playlist.m3u:ka -o live.mpd:dmode=dynamic
Для начала просто хочу запустить стрим.
Плейлист очень простой
##begin playlist
segment_0000.mp4
segment_0001.mp4
##end playlist


Запускаю, генерятся m4s файлы, и live.mpd
Пытаюсь проиграть mpd:
ffplay live.mpd
Ничего не играет, куча ошибок:
[dash @ 0x7f2228000cc0] Failed to open fragment of playlist f=0/0   
    Last message repeated 2188 times
[dash @ 0x7f2228000cc0] Failed to open fragment of playlist f=0/0


или через mpv
mpv live.mpd
Ничего не играет, сотни сообщений:
[ffmpeg/demuxer] dash: Failed to open fragment of playlist
[ffmpeg/demuxer] dash: Failed to open fragment of playlist


Сам MPD файл:
<?xml version="1.0"?>
<!-- MPD file Generated with GPAC version 2.3-DEV-rev832-g799d9e547-master at 2024-01-29T19:47:00.512Z -->
<MPD xmlns="urn:mpeg:dash:schema:mpd:2011" minBufferTime="PT1.000S" type="dynamic" availabilityStartTime="2024-01-29T19:47:00.510Z" publishTime="2024-01-29T19:47:00.512Z" minimumUpdatePeriod="PT0H0M1.000S" timeShiftBufferDepth="PT0H0M30.000S" profiles="urn:mpeg:dash:profile:full:2011">
 <ProgramInformation moreInformationURL="https://gpac.io">
  <Title>live.mpd generated by GPAC</Title>
 </ProgramInformation>

 <Period id="DID1" start="PT0H0M0.000S">
  <AdaptationSet segmentAlignment="true" maxWidth="1280" maxHeight="720" maxFrameRate="25" par="16:9" startWithSAP="1">
   <SegmentTemplate media="segment_0000_dash_track1_$Number$.m4s" initialization="segment_0000_dash_track1_init.mp4" timescale="12800" startNumber="1" duration="12800"/>
   <Representation id="1" mimeType="video/mp4" codecs="avc1.64001F" width="1280" height="720" frameRate="25" sar="1:1" bandwidth="1812813">
   </Representation>
  </AdaptationSet>
  <AdaptationSet segmentAlignment="true" startWithSAP="1">
   <SegmentTemplate media="segment_0000_dash_track2_$Number$.m4s" initialization="segment_0000_dash_track2_init.mp4" timescale="44100" startNumber="1" duration="44100"/>
   <Representation id="2" mimeType="audio/mp4" codecs="mp4a.40.2" audioSamplingRate="44100" bandwidth="1407">
    <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
   </Representation>
  </AdaptationSet>
 </Period>
</MPD>

Вопрос, что я делаю не так? Как заставить работать?
  • Вопрос задан
  • 95 просмотров
Подписаться 1 Средний Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы