mpeg dash на сервере wowza не работает, ошибка состояния 404 Not Found
Адаптивные ссылки для mpeg dash на wowza сервере не работают со мной, ниже приведены шаги, которые я использовал для публикации видео на wowza:
- Я устанавливаю и настраиваю сервер Wowza, и я проверил его, и он работает нормально.
Перекодируйте это видео, используя ffmepg (я привел эти команды из документации wowza)
Я тестирую файлы и все они работают нормально, затем я переместил эти файлы в папку содержимого 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>
- Я использую файл 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 может лучше выполнять создание выровненных кодировок, отключив обнаружение сцены или выполнив двухпроходное кодирование и используя один и тот же журнал первого прохода для каждого второго прохода.