Проверьте видеофайлы на целостность - PullRequest
0 голосов
/ 12 февраля 2019

У меня есть библиотека видеофайлов.Они перемещаются, архивируются, распаковываются и все такое.

Случилось так, что некоторые файлы, например, были переданы / извлечены только частично.Эта проблема обычно проявляется только при фактическом просмотре этого видео (т. Е. Видео останавливается преждевременно, что действительно раздражает).

Существует ли способ пакетной проверки целостности библиотеки видео?

Я придумал следующий, вдохновленный этим вопросом:

find . -regex ".*\.\(avi\|mkv\)" -exec ffmpeg -v error -i {} -f null - \;

Проблема в том, что ffmpeg не включаетимя файла при печати сообщений об ошибках , что означает, что я не знаю, какой файл в пакете является ошибочным.

Короче говоря:

Есть ли способвключить имя файла в сообщения об ошибках ffmpeg?

1 Ответ

0 голосов
/ 12 февраля 2019

Просто захватите вывод ffmpeg и распечатайте его с правильным заголовком, если он не пустой:

find . -regex ".*\.\(avi\|mkv\)" | while read f; do
  ffmpeg_out=$(ffmpeg -hide_banner -nostdin -v error -i "$f" -f null - 2>&1)
  [[ $ffmpeg_out ]] && echo -e "==> ERROR in $f\n${ffmpeg_out}"
done

Я добавил пару ffmpeg опций для обеспечения правильных операций:

  • -hide_banner отключает обычную преамбулу FFmpeg, которая является просто ненужным шумом
  • -nostdin говорит FFmpeg игнорировать любое (случайное) взаимодействие с клавиатурой
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...