ffmpeg поток воспроизведения dash заканчивается слишком рано

Вопрос или проблема

Я пытаюсь воспроизвести манифест dash, используя ffmpeg, но постоянно сталкиваюсь с проблемой, когда ffmpeg завершается с ошибкой

[http @ 0x671e580] Поток завершается преждевременно на 2250, должно быть 18446744073709551615

Манифест dash предназначен для прямой трансляции.

Я протестировал прямую трансляцию в VLC на Windows и MX в Android, и она воспроизводится perfectly.
Проблема, похоже, только с ffmpeg.

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

Я пытался сказать ffmpeg, чтобы он переподключился, но он просто зацикливается на этой ошибке.
Я пробовал два разных живых потока MPD:

  • $Time$ и
  • $Number$

Проблема возникает только с живым потоком на основе номера.

Привет, ты нашел решение этой проблемы? У меня есть mpd, который прекрасно воспроизводится везде: vlc/mx/exo/shaka player и т.д., но он отказывается открываться в ffplay и ffmpeg. Я получаю такую же ошибку, как ты, за которой следует io/error не удается прочитать манифест.

Я протестировал манифест с помощью онлайн-инструментов проверки dash, и он проходит без проблем и работает со всеми, кроме ffmpeg.

Ответ или решение

Проблема с воспроизведением потоковой передачи DASH в FFmpeg, когда возникает ошибка «Stream ends prematurely», может быть связана с несколькими факторами. Давайте более подробно рассмотрим возможные причины и решения этой проблемы.

1. Понимание ошибки

Ошибка:

[http @ 0x671e580] Stream ends prematurely at 2250, should be 18446744073709551615

указывает на то, что FFmpeg ожидает больше данных, чем получено. В случае с потоковым видео это может быть связано с тем, что данные о потоке не соответствуют ожидаемым параметрам манифеста.

2. Проблемы с MPD манифестом

Если вы используете числовой (Number based) вариант потокового манифеста, важно убедиться, что значения сегментов корректны и соответствуют временным меткам. MCPD (Media Presentation Description) для DASH содержит ссылки на каждый сегмент, и если один из сегментов отсутствует или имеет неверную длину, это может вызывать подобные ошибки.

3. Проверка манифеста

Вы упомянули, что манифест проходит через валидаторы без ошибок. Однако необходимо дополнительно проверить:

  • Подписывайтесь ли вы на актуальную версию манифеста? Некоторые хостинги могут использовать устаревшие ссылки.
  • Изменяется ли структура потока в реальном времени? Например, если поток прерывается, это может вызывать проблемы при обработке.
  • Проблемы кэширования. Убедитесь, что нет активного кэша, который может сохранять старые данные.

4. Настройки подключения FFmpeg

Попробуйте использовать следующие параметры при вызове FFmpeg для улучшения управления потоком:

ffmpeg -re -i http://yourstream.com/manifest.mpd -c copy -f dash output.mpd
  • -re: Используется для отправки данных в реальном времени, что может помочь справиться с задержками.
  • -timeout: Можно установить значение таймаута для подключения.

5. Оптимизация сети

Если вы используете FFmpeg в нестабильной сети, это может влиять на поток. Убедитесь, что ваша сеть достаточно стабильна для обработки высокоскоростных медиапотоков.

6. Альтернативные инструменты

Поскольку вы упомянули, что поток работает с VLC и MX Player, возможно, стоит рассмотреть использование других инструментов для анализа. Например, Shaka Player можно использовать для тестирования DASH потоков. Это может дать дополнительные подсказки о том, где именно возникает проблема.

Заключение

Проблема с воспроизведением потоков DASH в FFmpeg часто связана с несовпадением данных манифеста и фактическими сегментами потока. Рекомендуется внимательно проверить настройки потока и манифеста, а также использовать более детальные параметры командной строки, чтобы добиться необходимого результата. Если проблемы сохраняются, имеет смысл обратиться к сообществу разработчиков FFmpeg или использовать другие инструменты для дальнейшего анализа.

Дополнительные ресурсы, такие как официальная документация FFmpeg и форумы, могут также предоставлять полезные решения для вашей ситуации.

Оцените материал
Добавить комментарий

Капча загружается...