Bash скрипт для проверки валидности видео файлов с помощью ffmpeg. Поддерживает рекурсивный поиск в директориях и корректно обрабатывает имена файлов с пробелами, специальными символами и эмодзи.
- Быстрая проверка - проверяет только заголовки видео файлов (по умолчанию)
- Полная проверка - тщательная проверка всего файла
- Рекурсивный поиск - сканирует все подпапки
- Поддержка Unicode - корректно работает с эмодзи и специальными символами в именах файлов
- Автоматическое перемещение - перемещает поврежденные файлы в папку
broken - Цветной вывод - для лучшей читаемости результатов
- Логирование - сохранение результатов в файл
- Множественные форматы - поддержка популярных видео форматов
- ffmpeg - должен быть установлен и доступен в PATH
- bash - версия 4.0 или выше
- GNU утилиты - find, grep, mv
Ubuntu/Debian:
sudo apt update
sudo apt install ffmpegmacOS:
brew install ffmpegCentOS/RHEL:
sudo yum install epel-release
sudo yum install ffmpeg- Скачайте скрипт:
wget https://raw.githubusercontent.com/pixfid/video_validator/refs/heads/main/video_validator.sh
# или
curl -O https://raw.githubusercontent.com/pixfid/video_validator/refs/heads/main/video_validator.sh- Сделайте файл исполняемым:
chmod +x video_validator.sh- (Опционально) Переместите в PATH:
sudo mv video_validator.sh /usr/local/bin/video_validator# Простая проверка текущей директории
./video_validator.sh
# Проверка конкретной директории
./video_validator.sh /path/to/videos
# Быстрая справка
./video_validator.sh --help# Полная проверка файлов (медленнее, но тщательнее)
./video_validator.sh --full /path/to/videos
# Перемещение поврежденных файлов в папку broken
./video_validator.sh --move /path/to/videos
# Сохранение результатов в файл
./video_validator.sh -o results.log /path/to/videos
# Проверка только определенных форматов
./video_validator.sh -e "mp4,avi,mkv" /path/to/videos
# Комбинирование опций
./video_validator.sh --full --move -o full_check.log -e "mp4,avi" /path/to/videos| Параметр | Короткий | Описание |
|---|---|---|
--help |
-h |
Показать справку |
--ext |
-e |
Расширения файлов для проверки |
--output |
-o |
Файл для сохранения результатов |
--full |
-f |
Полная проверка файла |
--move |
-m |
Перемещать поврежденные файлы |
- mp4 - MPEG-4 Part 14
- avi - Audio Video Interleave
- mkv - Matroska Video
- mov - QuickTime Movie
- wmv - Windows Media Video
- flv - Flash Video
- webm - WebM
- m4v - iTunes Video
- 3gp - 3GPP
Скрипт выводит один из трех статусов для каждого файла:
- 🟢 ВАЛИДЕН - файл полностью корректен
- 🟡 ПРЕДУПРЕЖДЕНИЕ - файл проигрывается, но есть небольшие проблемы
- 🔴 ПОВРЕЖДЕН - файл не может быть обработан
Поиск видео файлов...
Создана папка для поврежденных файлов: /path/to/videos/broken
Найдено файлов: 150
Режим: быстрая проверка заголовков
Поврежденные файлы будут перемещены в: /path/to/videos/broken
ВАЛИДЕН: /path/to/videos/movie1.mp4
ВАЛИДЕН: /path/to/videos/vacation 🏖️ 2023.avi
ПОВРЕЖДЕН: /path/to/videos/corrupted_file.mkv
ПЕРЕМЕЩЕН: corrupted_file.mkv -> broken/
ПРЕДУПРЕЖДЕНИЕ: /path/to/videos/video_with_issues.mp4
Проверяет только заголовок и первые 0.1 секунды видео файла:
- ⚡ Быстро - обработка больших файлов за секунды
- 🎯 Эффективно - выявляет большинство проблем
- 💾 Экономно - минимальная нагрузка на диск
./video_validator.sh /path/to/videosПроверяет весь файл целиком:
- 🔍 Тщательно - максимальная точность
- ⏱️ Медленно - требует больше времени
- 💯 Надежно - выявляет все проблемы
./video_validator.sh --full /path/to/videosПри использовании опции --move:
- Автоматически создается папка
brokenв корне сканируемой директории - Поврежденные файлы перемещаются в эту папку
- Папка
brokenисключается из последующих проверок - Выводится статус перемещения каждого файла
./video_validator.sh --move /path/to/videosСтруктура после обработки:
/path/to/videos/
├── good_video1.mp4
├── good_video2.avi
└── broken/
├── corrupted1.mkv
└── damaged2.mp4
Результаты можно сохранить в файл без цветовых кодов:
# Сохранение в файл
./video_validator.sh -o check_results.log /path/to/videos
# Просмотр результатов
cat check_results.logПример содержимого лог-файла:
ВАЛИДЕН: /path/to/videos/movie1.mp4
ПОВРЕЖДЕН: /path/to/videos/broken.avi
ПРЕДУПРЕЖДЕНИЕ: /path/to/videos/issues.mkv
# Быстрая проверка с перемещением поврежденных
./video_validator.sh --move ~/Videos/
# Полная проверка с логированием
./video_validator.sh --full -o ~/video_check.log ~/Videos/# Только файлы mp4 и avi
./video_validator.sh -e "mp4,avi" /work/video_projects/
# Тщательная проверка перед архивированием
./video_validator.sh --full --move -o archive_check.log /archive/videos/# Проверка нескольких директорий
for dir in /media/disk1 /media/disk2 /media/disk3; do
./video_validator.sh --move -o "check_$(basename $dir).log" "$dir"
done✅ Поддерживается:
- Пробелы:
My Video File.mp4 - Специальные символы:
Video [1080p] (2023).mkv - Эмодзи:
Vacation 🏖️ Summer 2023.mp4 - Unicode:
Фильм о путешествии.avi
- Быстрая проверка: ~1-5 секунд на файл
- Полная проверка: время зависит от размера файла
- Рекомендация: используйте быструю проверку для первичного сканирования
- Требует установленный ffmpeg
- Не проверяет содержимое на предмет качества видео/аудио
- Не восстанавливает поврежденные файлы
# Проверьте установку
which ffmpeg
# Если не установлен
sudo apt install ffmpeg # Ubuntu/Debian
brew install ffmpeg # macOSСкрипт автоматически обрабатывает сложные имена файлов, но если возникают проблемы:
# Установите правильную локаль
export LC_ALL=C.UTF-8
export LANG=C.UTF-8# Дайте права на запись для перемещения файлов
chmod u+w /path/to/videos/Предложения по улучшению приветствуются! Создавайте issues или pull requests.
- Поддержка конфигурационных файлов
- Параллельная обработка файлов
- Автоматическое восстановление некоторых типов повреждений
MIT License - используйте свободно в личных и коммерческих проектах.
При возникновении вопросов:
- Проверьте документацию выше
- Убедитесь, что ffmpeg установлен корректно
- Создайте issue с описанием проблемы
Автор: 0xcffaedfe
Версия: 1.0
Последнее обновление: Август 2025