LINUX.ORG.RU

Как проверить битый ли файл?

 , ,


0

1

Есть архив видео и фоток. И некоторые из них битые - не воспроизводятся.
Можно ли каким-то образом проверить каждый файл (включая фотографии) и если он битый - удалить?
Пока нашел только «ffmpeg -v error -sseof -10 -i FILENAME.mp4 -f null», но он выдает всю инфу, а значит для использования в скрипте надо проверять есть ли ошибки. Как это сделать в баше я не представляю.
Есть ли альтернативы? Лучше чтобы они были cli-шные.

для использования в скрипте надо проверять есть ли ошибки. Как это сделать в баше я не представляю.

Попробуй проверять код ошибки сразу после выполнения команды echo $?, значение отличное от нуля это ошибка, в скрипте так:

ffmpeg -v error -sseof -10 -i FILENAME.mp4 -f null 1>/dev/null 2>&1
if [ $? -gt 0 ]; then
    echo "Ошибки есть"
else
    echo "Ошибок нет"
fi
Работоспособность не проверял.

Точно не помню, но мне кажется что для фоток exiftool тоже показывал ошибки.

Aber ★★★★★
()

А ты попробуй при каждой операции пополнения архива делать торрент на новую порцию. Как минимум, покажет битые файлы потом. Перехеширование делаешь...

targitaj ★★★★★
()

и если он битый - удалить?

Медиафайлы могут быть битыми но прекрасно читаться, а выпавшую информацию при просмотре даже не заметишь, ты уверен что хочешь удалять такие файлы? Я думаю нужно убедится что файл действительно не читаем прежде чем его удалить.

Aber ★★★★★
()
Ответ на: комментарий от Harald

Битые, это я вытаскиваю с файлы с дохлого харда.

Nightfall
() автор топика
Ответ на: комментарий от Aber

О, а оно работает. Спасибо, ща в цикл заверну и прикручу удаление...

Nightfall
() автор топика
Ответ на: комментарий от Aber

Я тоже об этом думал, но как отделять нечитаемы и битые но читаемы кроме как вручную - я не знаю, и не думаю что такой вариант есть. А сидеть открывать тысячи документов - такое себе удовольствие.

Nightfall
() автор топика
Ответ на: комментарий от Nightfall

Обычно с дисков с важной информацией делают полный дамп данных, а уже потом из этого дампа пытаются вытаскивать файлы

Вот тут статья которую создали из комментария под новостью про ddrescue: http://www.opennet.ru/tips/info/3054.shtml

Aber ★★★★★
()
Последнее исправление: Aber (всего исправлений: 2)
Ответ на: комментарий от Aber

А это и не особо важная, иначе был бы бэкап. Просто фильмы/сериалы, которые впринципе можно перекачать.

Nightfall
() автор топика

Самый надежный способ узнать битый ли файл, это декодировать его в ffmpeg в /dev/null и посмотреть есть ли ошибки в терминале.

anonymous
()
Ответ на: комментарий от Harald

Смотря какие ошибки. Если именно ошибки декодирования видео, то артефакты будут. Звук не мешало бы тоже задекодить в pcm_s16le, причем все дорожки -map 0

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.