shounen.ru
RUSSIAN: ОписаниеДокументацияИзменения 
ENGLISH: DescriptionDocumentationWhat's new
SamplesDownload

AVInfo documentation

(прошу прощения, документация в стадии написания, текст не полон)

КРАТКОЕ ОПИСАНИЕ

AVInfo - консольная утилита для извлечения информации из мультимедийных файлов о видео, аудио. Работает как с индивидуальными файлами, так в пакетном режиме.

УСТАНОВКА

Microsoft Windows 95,98,ME,NT,2k,XP,2003s (и будущие версии):

Поместите avinfo.exe из архива с программой в каталог, прописаный в path. Если лень разбираться с тем, что это такое и зачем - просто положите в каталог c:\windows (для windows 95,98,ME,XP) или c:\winnt (для NT/2k). Для того, чтобы проверить успешность установки, нажмите кнопку Пуск, выберете пункт "выполнить", наберите команду "avinfo -l-" (без кавычек). На экране должно появиться консольное окно. Выйдете из этого окна, нажав Ctrl-C. AVInfo готов к использованию. Примеры использования см. в пункте ПРИМЕРЫ.

Linux, FreeBSD, *nix:

Распакуйте архив, перейдите в каталог src, наберите команду make. Если компиляция будет успешной, поместите файл avinfo в каталог для исполняемых файлов. (например, /usr/bin, /usr/local/bin) Для успешной компиляции необходим bison и gcc.

N.B. Разумеется, GCC и Bison должны быть установлены.

N.B. К сожалению, в связи с отсутствием у меня под руками машины с сетевым порядком байт, проверить на ней работоспособность мне не представляется возможным.

Компиляция AVInfo под Windows (если вдруг приспичило):

make-файл предназначен для работы с GCC (GNU C Compiler) и GNU bison. В случае отсутствия gcc, собирать можно любым компилятором, руками указав компилировать все файлы C-файлы. Бизон можно найти тут: http://bison.gnu.org/

ПРИНЦИП РАБОТЫ

AVInfo читает указанный (указанные) имена файлов, передаёт файл модулю, ответственному за обработку файлов соответствующего типа (avi - riffparse, mp3 - mp3parse, mpeg 1,2 - mpegparse, etc). Модуль читает информацию о содержимом файла (разрешение, fps, длительность кодеки, etc), создаёт переменные с соответствующими значениями. После вызова модуля avinfo вызывает ПАРСЕР ШАБЛОНА. Шаблон - записанный при помощи встроенного языка (A.S.S. - AVInfo Simple Script) порядок вывода на экран информации, её оформление. Парсер обрабатывает шаблон, выводит информацию на экран (точнее, в stdout, так что он может быть перенаправлен в файл или на stdin другой программы). В зависимости от режима, avinfo может по мере вызова модулей обработки файлов собирать статистику, выводить т.н. шапку/хвост.

Шапка - шаблон, который выводится до вывода первого файла.

Хвост - шаблон, который выводится после вывода информации о каждом файле. Статистика обычно печатается в хвосте.

РЕЖИМЫ РАБОТЫ

AVInfo может работать в двух режимах - с обработкой единичного файла и с обработкой списка файлов. Режимы переключаются опцией -l (см ниже). При обработке списка файлов имя файла, указанного в командной строке, игнорируется.

ИЗВЛЕКАЕМАЯ ИНФОРМАЦИЯ

AVInfo умеет извлекать информацию из следующих файлов:

Некоторые типы файлов, не поддерживаемые AVInfo, но являющиеся видео, не обрабатываются, но указываются в списках.

Так же, в некоторых режимах (--list, --html-list), собирается статистика по обработанным файлам, а именно:

Основное предназначение статисткики - увидеть, есть ли в обработанных файлах "низкокачественные" (с низким fps/bitrate/resolution).

ИСПОЛЬЗОВАНИЕ

avinfo [keys] [filename] [--mode]

ОПЦИИ (keys):

все опции имеют формат -S[:|=]value, т.е. состоят из дефиса, буквы, указывающей на опцию, символа двоеточия или равно (не обязательно) и самого значения опции. Примеры: -m80, -m=150, -l=mylist, -i:40. Если опция требует числа, а следующий после буквы опции (или симола равно/двоеточие) символ не числовой, то опция игнорируется.

ИМЯ ФАЙЛА

стандартное имя файла (как с путём, так и без). В настоящий момент avinfo не понимает символы маски (*,?).

РЕЖИМЫ (modes)

Cуществует несколько режимов, в которых показывается информация о файле. Каждый режим указывается при помощи двойного дефиса (--) и имени шаблона, который следует использовать. (avinfo a.avi --short)

ПРИМЕРЫ ИСПОЛЬЗОВАНИЯ

ИНДИВИДУАЛЬНЫЙ РЕЖИМ (режим одного файла)

avinfo somefile.avi

Самый простой пример. Будет выведена информация про файл.

avinfo -f:mpeg somefile.avi

Попытаться обработать указанный файл как mpeg-файл.

avinfo test.avi --raw

Вывести информацию о файле test.avi, используя шаблон raw (вывести всю информацию в формате, удобном для обработки внешними модулями).

ПАКЕТНЫЙ РЕЖИМ (режим со списком файлов)

dir /s /b somedir|sort|avinfo -l- --list >result.txt (для Windows)

ls -1 -R somedir|sort|avinfo -l- --list >~/result.txt (для Linux)

ls -1R |grep -v "^$"|grep -v ":$"

сформирует файл result.txt c отчётом о файлах в каталоге somedir, добавит в конец файла статистику об отсканированных файлах.

ls -1 -R /data/video |sort|avinfo -e:mp3 -l- --html-list >/pub/www/list/files.html

Создаст в виде html-файла список файлов с описаниями. Будут обработаны все файлы, кроме mp3.

[TODO]........