
                              * AVInfo v 0.5 *

Программа  предназначена  для  вывода  информации  об  avi  файлах. Из
особенностей  -  полная  независимость  от  OS (лишь бы 32 бита были),
наличия/отсутствия системных библиотек и заголовков.

Среди того, что смотрит и выводит на экран (точнее, на stdout) программа:

*разрешение
*длительность
*fps
*число потоков, их тип (аудио/видео)
*тип используемого видео и аудио кодеков
*параметры звука и видео

Есть возможность "программерского" вывода - структуры с заполненными
значениями (параметр --struct-report), генерации строк для descript.ion
(параметр --description), возможность задавать свои шаблоны вывода.

Использование

avinfo file.avi [ [params]| [[template1]|-] [template2|-] ] ]

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

Ключи просто подставляют готовые шаблоны.

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

Ключи:

--description  строка для descript.ion
--short  кратая строка для descript.ion
--fun  try it!
--far  вывод для фара (использовать по edit:< avinfo "!.!" --far)
--struct-report  "программистский вывод" - полная (и ненужная) информация
--struct-report-7 то же, но без псевдографики

Темплейты:

Темплейт немного напоминает синтаксис printf. Большая часть темплейта
просто копируется в output, кроме символов после служебных значков (#$@^).
Если подстановка распознанна - одна заменяется на соотв. значение.
Если нет - просто исчезает. Если в подстановке есть пробелы - ее следует 
помещать в кавычки (для windows)

Существует два темплейта. Первый - для заголовка ави. Второй - для 
потоковых данных (для заголовка потока). Второй (потоковый) темплейт 
повторяется для каждого потока.

Для темплейта потоков есть одна особенность: он повторяется столько раз,
сколько потоков в ави.

Полный список подстановок указан в файле meta.

Вот наиболее значимые из них:

(Заголовок AVI)

FileName                ^n (имя файла - в том виде, как передали программе, argv[1])
FileSize (exactly)      ^S (размер файла в байтах. Точно.)
FileSize (human view)   ^s (Размер файла приближённо)
dwMicroSecPerFrame      ^F (время между кадрами)
dwStreams               ^t (число потоков)
dwWidth                 ^x (горизонтальное разрешение)
dwHeight                ^y (вертикальное разрешение)
video codec             ^v (e.g. div3, xvid, dv50, mjpg, etc)
bits per pixel          ^B (e.g. 4, 8, 16, 24)
format tag              ^w (number) (todo - convert to text view)
Samples per second      ^D (e.g. 44100, 48000, 22050, 11025)
Chanels                 ^C (e.g. 1, 2, 6)
Mono/Stereo/Number      ^c (generating from ^C e.g. Stereo, Mono, 3)

(Заголовок потоков)

fccType    $f - тип (vids/auds) - определяет - видео или аудио поток
fccHandler $h - сигнатура кодека (для видео-потока)

(Данные потока - для видео):

biBitCount              #c (число битов 4/8/16/24)
biWidth                 #w (размер картинки)
biHeight                #h

(Данные потока - для звука)

wFormatTag              #f (аудио кодек, точнее его номер)
nChannels               #H (число аудио каналов 1/2/6)
nSamplesPerSec          #p (частота - 44100/48000/11500/etc)

Теперь немного лирики. Зачем это нужно? Для обработки большого количества
файлов в (полу-) автоматическом режиме.

попробуйте так:
        for %a in (*.avi) do avinfo %a "%a" --description>>descript.ion

Для win2k (NT/XP) можно даже так:

        for /R c:\ %a in (*.avi) do avinfo "%a" --short >>myavilist.txt

Замечание. Если при работе из bat-файла вы вдруг получаете сообщения
об ошибках - проверьте, передаётся ли имя файла программе в кавычках, если
содержит пробелы.  Cmd очень любит их по делу и без дела обрезать.

Или (это собственно, ради чего писалась программа):

В ассоциациях фара пропишите для avi.* 

edit: < avinfo "!.!" --far 

Вам понравится.

Права, копирайты, условия распространения:

Licensing:

    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation; any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License (copying) for more details.

    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.

(c) George Shunklin 2003,  gs@anime.org.ru

home page: http://anime.org.ru/soft/avinfo/
