AVInfo — описание
AVInfo извлекает из файлов (AVI/MPEG/OGG/OGM/MKV/IFO) информацию о аудио/видео, формирует по заданному шаблону отчёт. Выводит его.
В чём отличие от большей части софта, позволяющего "посмотреть разрешение файла"?
- Возможность использовать в автоматическом режиме, в пакетных файлах. Можно настроить AVInfo на ежедневное (еженедельное) сканирование определённых каталогов. Так как управление идёт при помощи ключей командной строки, AVInfo прекрасно сочетается с любым шедулером (планировщиком заданий).
- Автоматическое откидывание "излишних" параметров в отчёте. Так, например, если в файле fps=29,97 кадров в секунду, это вовсе не нужно знать. Зато если оказывается 10-15 кадров/сек - очень даже надо. AVInfo учитывает подобные моменты (не только в отношении fps) и выводит информацию только в том случае, если она "нестандартна".
- Режим с фиксированной длиной строки. Предназначен для создания отчётов (списков), используемых в консольных программах (например, Golded). Автоматически выкидываются параметры в порядке убывания их важности. Разумеется, длина строки настраиваемая.
- Режим нормализации имени. В связи с повсеместным использованием P-t-P (peer-to-peer) сетей,
всякого рода торрентов, winmx'ов, осликов и прочих напстеров, полученные имена
файлов иногда перегружены лишней информацией. AVInfo такие моменты отслеживает,
приводя имя к куда более читаемому виду. Пример:
было: [SD]Mama_is_a_4th_Grader_-_episode_01__[5BA11278][XviD].avi
стало [SD]Mama is a 4th Grader episode 01 [XviD].avi
(Убирается CRC, убирается глупая комбинация _-_, знаки подчёркивания заменяются пробелами, удаляются повторяющиеся пробелы). - Генерация статистики по всем отсканированным файлам в конце отчёта, с указанием "наихудших" встретившихся параметров. Это позволяет без особых временных затрат заметить "паршивую овцу в стаде" — среди качественных файлов затесавшийся низкокачественный, маленькие разрешения, битрейты, «поганый» звук.
Информация, извлекаемая из *.avi:
- Количество аудио/видео потоков, разрешение/фпс/битрейт/кодек/длительность для каждого видео-, частоту/каналы/кодек/битрейт/длительность для каждого аудио- потока.
- Содержимое LIST-INFO (некое подобие тегов) - автор/название/копирайты/etc.
Информация, извлекаемая из *.mpg (MPEG 1/2):
- Разрешение, aspect ratio (соотношение сторон), fps, битрейт видео, параметры звука (частота/кол-во каналов/битрейт), приблизительную длительность (оценивается по первым 64к файла, сделано для ускорения процесса сканирования).
- Тип (MPEG 1, MPEG 2).
- Количество аудио/видео потоков.
Информация, извлекаемая из файлов субтитров (*.srt, *.smi, *.sub, *,ssa, *.s2k, *.js):
- Английский/не-английский язык (сделано для быстрого отсеивания русских субтитров к аниме)
- Бинарность/не бинарность файлов (для отлова *.sub у рипов с DVD)
Информация, извлекаемая из OGM
- Количество и типы потоков
- Разрешение, fps, битрейт, тип кодека для видео
- Частота, кодек, битрейт язык для аудио
- Поддерживаются встроенные субтитры
Поддерживаемые режимы вывода:
- default - несколько строк с информацией. Используется, если не указано никаких других режимов.
- description - режим создания описаний в descript.ion
- short - короткий режим для descript.ion
- list - режим генерации списка файлов (plain-text). Предназначен для создания отчёта с фиксированным размером строки (по умолчанию - 78 символов на строку).
- html-list - как следует из названия, создаёт список в html.
Дополнительные опции:
- -l - задаёт файл списка файлов для сканирования. Если вместо имени использовать дефис, список будет читаться с stdin, что даёт возможность организовывать такие забавные конструкции: dir /s /b |avinfo -l- --html-list >report.html
- -i=NUM - задержка после сканирования каждого файла. Обычно операционные системы позволяют установить прироритет приложения при использовании процессора. AVInfo же большую часть времени проводит в файловых операциях чтения. Так что этот ключ используется для "кооперативной многозадачности" с другими приложениями. После -i задаётся время в милисекундах. Например: avinfo -i300 -l=filelist --list. Лучше использовать при вызове из шедулера.
- -f:ext - принудительно пытаться разобрать файл тем модулем, который ассоциирован с расширением ext (например, avinfo -f:mpg test.avi
- -m:size - размер строки для режимов с фиксированным размером строки. Например, avinfo -m120 file.avi --list
Прочие фичи:
- Разумеется, avinfo собирается практически под любую платформу (тестировалось - dos4gw, win32, linux, freeBSD), требует для своей сборки только что BISON'а и GCC.
- Написан на чистом ANSI C (за исключением бизоновской части)
- Идёт под лицензией GNU GPL
- Маленький. (меньше 60к)