Задать вопрос
@DWZ

Какими ключами задать ffmpeg повтор и ожидание при закачке ts из m3u8 (HLS)?

Закачиваю себе HLS-поток при помощи ffmpeg (Windows 7 Pro 64 bit Rus) командой
ffmpeg.exe" -i "URL m3u8" -c copy "имя.mp4"

и внезапно замечаю, что часть сегментов не качается или качается не до конца из-за нестабильного Интернета. В результате итоговый mp4-файл выходит битым.

Нет ли каких ключей командной строки, чтобы ffmpeg не выбрасывал сбойный сегмент, а выкачивал его "до победного"? Или же скачивал отдельно маленькие ts-ики и где-то для себя помечал, какие из них не скачались, чтобы при следующем перезапуске скачивал бы только их?

Предложенные в Интернете решения перезакачивают весь фильм целиком, мне так не надо, потому что файл большой и по теории вероятности на нём всегда возникают сбои, каждый раз на новом месте, и скачать фильм никак не удаётся. Вот если бы сохранялись успешные закачки ts-сегментов с предыдущих попыток, можно было бы выкачать за несколько раз, а так - Сизифов труд и Танталовы муки.

Или опять всё руками - самому парсить m3u8 и выкачивать ts-ики, как раньше?
  • Вопрос задан
  • 122 просмотра
Подписаться 2 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 2
Alex-rsk
@Alex-rsk
Бэкендер
Попробуйте перед -i добавить
-timeout 10000000 -reconnect 1 -reconnect_at_eof 1 -reconnect_streamed 1 -reconnect_delay_max 2

Чтобы сохранялись промежуточные закачки, предлагаю сохранять выкачанное фрагментами по 2-10сек (зависит от длины сегмента стрима). Потом сделаете 1 конкат для файлов и получите большой фильм. Фильтр -f segment в помощь.
Ответ написан
@DWZ Автор вопроса
Выкачиваю ts-ики из m3u8 сам.
Ответ написан
Ваш ответ на вопрос

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

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