mpeg dash на сервере wowza не работает, ошибка состояния 404 Not Found

Адаптивные ссылки для mpeg dash на wowza сервере не работают со мной, ниже приведены шаги, которые я использовал для публикации видео на wowza:

  1. Я устанавливаю и настраиваю сервер Wowza, и я проверил его, и он работает нормально.
  2. Перекодируйте это видео, используя ffmepg (я привел эти команды из документации wowza)

  3. Я тестирую файлы и все они работают нормально, затем я переместил эти файлы в папку содержимого wowza и создал файл smil следующим образом:

<?xml version="1.0" encoding="UTF-8"?>
<smil title="sintel">
  <body>
    <switch>
      <video width="320"  height="180" src="sintel_320p.mp4" systemLanguage="eng" >
        <param name="videoBitrate" value="200000" valuetype="data"></param>
        <param name="audioBitrate" value="44100" valuetype="data"></param>
      </video>
      <video width="640"  height="360" src="sintel_640p.mp4" systemLanguage="eng" >
        <param name="videoBitrate" value="520000" valuetype="data"></param>
        <param name="audioBitrate" value="44100" valuetype="data"></param>
      </video>
      <video width="320"  height="180" src="sintel_400p.mp4" systemLanguage="eng" >
        <param name="videoBitrate" value="270000" valuetype="data"></param>
        <param name="audioBitrate" value="44100" valuetype="data"></param>
      </video>
      <video width="420"  height="270" src="sintel_700p.mp4" systemLanguage="eng" >
        <param name="videoBitrate" value="570000" valuetype="data"></param>
        <param name="audioBitrate" value="44100" valuetype="data"></param>
      </video>
      <video width="720" height="406" src="sintel_1100p.mp4" systemLanguage="eng" >
        <param name="videoBitrate" value="1000000" valuetype="data"></param>
        <param name="audioBitrate" value="44100" valuetype="data"></param>
      </video>
      <video width="1024" height="576" src="sintel_1300p.mp4" systemLanguage="eng" >
        <param name="videoBitrate" value="1200000" valuetype="data"></param>
        <param name="audioBitrate" value="44100" valuetype="data"></param>
      </video>
      <video width="1080" height="608" src="sintel_1500p.mp4" systemLanguage="eng" >
        <param name="videoBitrate" value="1400000" valuetype="data"></param>
        <param name="audioBitrate" value="44100" valuetype="data"></param>
      </video>
    </switch>
  </body>
</smil>
  1. Я использую файл mpd ( http://191.237.26.137:1935/vod/smil:sintel.smil/manifest.mpd) с http://www.jwplayer.com/innovation/roadmap/mpeg-dash/

Результат: видео работает за первые несколько секунд до остановки

1 ответ

Из вашего описания видно, что существует проблема с выравниванием ключевых кадров между файлами. Чтобы переключение происходило гладко, каждое воспроизведение должно быть выровнено по ключевому кадру, что означает, что ключевой кадр, который встречается с определенным временным кодом в одном файле, должен также встречаться с тем же временным кодом во всех других файлах. Опция по умолчанию с Dash - запросить сегменты видео, созданные и названные на основе временных кодов ключевых кадров. Если игрок переключается на воспроизведение, которое не имеет определенного сегмента, который запрашивается (потому что время его ключевого кадра выключено), то он потерпит неудачу с ответом 404.

Wowza-сервер строит HTTP-манифесты динамически из данных атомов moov в медиа-файлах. В случае с адаптивным манифестом битрейта он считывает данные только из первого файла и ожидает, что данные будут идентичны в других файлах. Файл по умолчанию воспроизводится нормально, потому что это тот, из которого поступили данные, и отдельные файлы воспроизводятся нормально, потому что свежие данные извлекаются из файла при запросе каждого файла.

Сегментация на основе идентификатора (где сегменты содержат несколько ключевых кадров и нумеруются последовательно, например, используется с HLS или HDS) менее подвержена проблемам с выравниванием, однако вы можете заметить, что поток переходит вперед или назад, если он переключается на другое представление и временные коды в новом чанке не совпадают со старым чанком. Mpeg Dash может быть настроен на использование сегментации на основе идентификаторов путем изменения URL-адреса манифеста. См. Форматы доставки для деталей.

Ffmpeg может лучше выполнять создание выровненных кодировок, отключив обнаружение сцены или выполнив двухпроходное кодирование и используя один и тот же журнал первого прохода для каждого второго прохода.

Другие вопросы по тегам