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






Причина этого, возможно, в том, что 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.)