Как программно проверить, не поврежден ли файл .mp4 и не пропущены ли кадры фильма или звуковые сегменты

С помощью youtube-dl мне удалось загрузить довольно много файлов .mp4. Однако я только что обнаружил, проиграв некоторые из них вручную, что в некоторых частях отсутствуют кадры фильма при воспроизведении звука (поэтому отображается пустой экран) или отсутствует звук при воспроизведении кадров фильма.

Следовательно, (1) Почему youtube-dl не обнаруживает такой сценарий и не предупреждает об этом? Похоже, что фрагменты фильма и звуковая дорожка были объединены и созданы без предупреждения. Есть ли способ настроить youtube-dl для обнаружения таких случаев и повторной загрузки фильма? (2) В противном случае, есть ли другие способы программного обнаружения таких случаев? (учитывая, что у одного могут быть тысячи таких файлов .mp4 и невозможно вручную просмотреть их все?) Решение с FFmpeg или php будет оценено.

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
0
634
1

Ответы 1

Причина этого, возможно, в том, что youtube-dl пропустил (некоторые) фрагменты, когда он загружал файл, есть вещи, которые вы можете сделать, чтобы предотвратить это, если вы используете терминал / командную строку, некоторые из них:

  • Чтобы использовать параметры --fragment-retries RETRIES, будьте осторожны при использовании 'бесконечности', если фрагмент потерян на стороне сервера, ваш код в конечном итоге выполнит бесконечный цикл

    --fragment-retries infinite

  • Или включите флаг --abort-on-unavailable-fragment, чтобы прервать работу, когда youtube-dl обнаружит проблемные фрагменты.

    --abort-on-unavailable-fragment

Это должно предотвратить повреждение фрагмента любых будущих видео / аудио, подробнее здесь

NOTE: I'm currently looking for a way to detect downloaded videos whether it's broken or not (i.e. fragment lost, etc.)

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