diff options
author | Andrey Astafiev <andrei33@users.sourceforce.net> | 2002-09-11 12:31:51 +0000 |
---|---|---|
committer | Andrey Astafiev <andrei33@users.sourceforce.net> | 2002-09-11 12:31:51 +0000 |
commit | 3a3e09fa73a122ded504aa8ee8a231f18248180e (patch) | |
tree | ad2761e5f05b38a6c51724df4387201d7bd84154 /doc/html | |
parent | afb15d15e3f9fa80b958dd045aabcb628819fd9b (diff) | |
download | flac-3a3e09fa73a122ded504aa8ee8a231f18248180e.tar.gz |
1.0.4 beta
Diffstat (limited to 'doc/html')
-rw-r--r-- | doc/html/ru/documentation.html | 343 | ||||
-rw-r--r-- | doc/html/ru/format.html | 23 | ||||
-rw-r--r-- | doc/html/ru/index.html | 20 | ||||
-rw-r--r-- | doc/html/ru/links.html | 44 | ||||
-rw-r--r-- | doc/html/ru/news.html | 57 |
5 files changed, 191 insertions, 296 deletions
diff --git a/doc/html/ru/documentation.html b/doc/html/ru/documentation.html index 7913d10e..220b8db5 100644 --- a/doc/html/ru/documentation.html +++ b/doc/html/ru/documentation.html @@ -78,7 +78,7 @@ <LI><A HREF="#flac"><B><TT>flac</TT></B></A> - иcпользование кодека <B><TT>flac</TT></B>, работающего из командной строки.</LI> <LI><A HREF="#metaflac"><B><TT>metaflac</TT></B></A> - использование редактора метаданных <B><TT>metaflac</TT></B>, работающего из командной строки.</LI> <LI><A HREF="#plugins">плагины</A> - документация для различных плагинов.</LI> - <LI><A HREF="#libflac">API для <B><TT>libFLAC</TT></B></A> - для разработчиков, желающих использовать поддержку FLAC в своих продуктах.</LI> + <LI><A HREF="../api/index.html">API</A> для <B><TT>libFLAC</TT></B> и <B><TT>libFLAC++</TT></B> - для разработчиков, желающих использовать поддержку FLAC в своих продуктах.</LI> <LI><A HREF="#bugs">ошибки</A> - известные ошибки.</LI> <LI><A HREF="#monkey">как добавить поддержку FLAC в Monkey's Audio GUI</A></LI> </UL> @@ -160,9 +160,9 @@ <A NAME="flac"> <H3><B><TT>flac</TT></B></H3> -<P><B><TT>flac</TT></B> - это кодек, работающий из командной строки. Входом для кодера и выходом для декодера должен быть либо данные в формате RIFF WAVE, либо поток сэмплов без заголовка. <B><TT>flac</TT></B> использует только линейные PCM сэмплы (другими словами, A-LAW, uLAW, и т.п. не поддерживаются). Следующим ограничением является то, что во кодируемом файле сэмплы должны быть 8, 16 или 24-битными. Это не ограничение формата, просто так работают базовый кодер и декодер.</P> +<P><B><TT>flac</TT></B> - это кодек, работающий из командной строки. Входом для кодера и выходом для декодера должны быть данные в формате RIFF WAVE, AIFF или в виде потока сэмплов без заголовка. <B><TT>flac</TT></B> использует только линейные PCM сэмплы (другими словами, A-LAW, uLAW, и т.п. не поддерживаются). Следующим ограничением является то, что во кодируемом файле сэмплы должны быть 8, 16 или 24-битными. Это не ограничение формата, просто так работают базовый кодер и декодер.</P> -<P><B><TT>flac</TT></B> предполагает, что файлы RIFF WAVE имеют суффикс ".wav"; это умолчание может быть переопределено специальным ключом. Также предполагается, что файлы с суффиком ".ogg" имеют формат Ogg-FLAC. В остальных случаях <B><TT>flac</TT></B> не делает предположений о суффиксах, хотя по соглашению файлы FLAC имеют суффикс ".flac" (или ".fla" на старых файловых системах таких как FAT-16).</P> +<P><B><TT>flac</TT></B> предполагает, что файлы RIFF WAVE имеют суффикс ".wav", а файлы формата AIFF имеют суффиксы ".aif", ".aiff" или встречен заголовок AIFF; это умолчание может быть переопределено специальным ключом. Также предполагается, что файлы с суффиком ".ogg" имеют формат Ogg-FLAC. В остальных случаях <B><TT>flac</TT></B> не делает предположений о суффиксах, хотя по соглашению файлы FLAC имеют суффикс ".flac" (или ".fla" на старых файловых системах таких как FAT-16).</P> <P>Перед полным описанием ключей, используемых <B><TT>flac</TT></B>, обратим внимание на то что: 1) по умолчанию <B><TT>flac</TT></B> сжимает файлы (для декодирования используйте ключ <TT>-d</TT>); 2) ключи <TT>-0..-8</TT>, а также <TT>--fast</TT> и <TT>--best</TT>, управляющие уровнем сжатия, являются синонимами для различных групп настроек кодирования. Того же эффекта можно добиться, используя наборы соответствующих ключей; 3) модель обработки входных и выходных файлов у <B><TT>flac</TT></B> аналогична <B><TT>gzip</TT></B>.</P> @@ -202,73 +202,78 @@ <P>Данные в стандартный вывод можно перенаправить с помощью ключа <TT>-c</TT>.</P> -<P>Опции кодирования влияют на скорость работы и уровень сжатия. Настройки формата определяют расположение сэмплов, если на вход поступает файл без заголовка. Если у файла есть заголовок <TT>RIFF WAVE</TT>, то настойки формата не нужны, так как они берутся из файла.</P> +<P>Опции кодирования влияют на скорость работы и уровень сжатия. Настройки формата определяют расположение сэмплов, если на вход поступает файл без заголовка. Если у файла есть заголовок RIFF WAVE или AIFF, то настойки формата не нужны, так как они берутся из файла.</P> <P>В режиме тестирования <B><TT>flac</TT></B> работает как и при декодировании, только выходной файл не записывается. Режимы декодирования и тестирования проверяют поток на наличие ошибок, а также сравнивают подпись MD5 декодированного потока с сохраненной подписью, даже если формат потока правильный.</P> <H4><a name="general_options">Основные ключи</A></H4> <TABLE border=1> +<TR><TD WIDTH=25%><TT>-v</TT>, <TT>--version</TT></TD> +<TD WIDTH=75%>Номер версии <B><TT>flac</TT></B>.</TD></TR> + +<TR><TD><TT>-h</TT>, <TT>--help</TT></TD> +<TD>Вывести основные методы использования и список всех опций. При запуске <B><TT>flac</TT></B> без аргументов отображается краткая справка.</TD></TR> -<TR><TD width=25%><TT>-d</TT></TD> -<TD width=75%>Декодирование (по умолчанию <B><TT>flac</TT></B> кодирует). <B><TT>flac</TT></B> завершит работу с кодом выхода <TT>1</TT>, если будет встречена ошибка или контрольная сумма MD5 декодированного потока не совпадет с сохраненной. Если ошибок не будет, код возврата будет равен <TT>0</TT>.</TD></TR> -
-<TR><TD><TT>-H</TT></TD> +<TR><TD><TT>-H</TT>, <TT>--explain</TT></TD> <TD>Вывести справку полностью. При запуске <B><TT>flac</TT></B> без аргументов отображается краткая справка.</TD></TR> -<TR><TD><TT>-t</TT></TD> +<TR><TD><TT>-d</TT>, <TT>--decode</TT></TD> +<TD>Декодирование (по умолчанию <B><TT>flac</TT></B> кодирует). <B><TT>flac</TT></B> завершит работу с кодом выхода <TT>1</TT>, если будет встречена ошибка или контрольная сумма MD5 декодированного потока не совпадет с сохраненной. Если ошибок не будет, код возврата будет равен <TT>0</TT>.</TD></TR> + +<TR><TD><TT>-t</TT>, <TT>--test</TT></TD> <TD>Тестирование (то же самое, что и декодирование, только выход не записывается в файл). Коды возврата те же.</TD></TR> -<TR><TD><TT>-a</TT></TD> +<TR><TD><TT>-a</TT>, <TT>--analyze</TT></TD> <TD>Анализ (то же самое, что и декодирование, только выходом является файл статистики). Коды возврата те же. Режим предназначен в основном для разработчиков. В выходной текстовый файл записывается информация о каждом фрейме и подфрейме.</TD></TR> -<TR><TD><TT>-c</TT></TD> +<TR><TD><TT>-c</TT>, <TT>--stdout</TT></TD> <TD>Направить результат в стандартный вывод (stdout).</TD></TR> -<TR><TD><TT>-s</TT></TD> +<TR><TD><TT>-s</TT>, <TT>--silent</TT></TD> <TD>Не показывать статистику при кодировании/декодировании.</TD></TR> -<TR><TD><TT>-o файл</TT></TD> +<TR><TD><TT>-o файл</TT><BR><TT>--output-name=файл</TD> <TD>Явно указать имя выходного файла, по умолчанию <B><TT>flac</TT></B> просто заменяет суффикс.</TD></TR> -<TR><TD><TT>--output-prefix строка</TT></TD> +<TR><TD><TT>--output-prefix=строка</TT></TD> <TD>Добавляет префикс к каждому имени выходному файлу. Может имспользоваться для кодирования/декодирования файлов в другой каталог. Если указанная строка является частью пути, убедитесь, что она заканчивается слэшем '/'.</TD></TR> <TR><TD><TT>--delete-input-file</TT></TD> <TD>После успешного окончания кодирования/декодирования входной файл будет удален. Если произойдет ошибка, исходный файл останется.</TD></TR> -<TR><TD><TT>--skip #</TT></TD> +<TR><TD><TT>--skip=#</TT></TD> <TD>Пропустить первые <TT>#</TT> сэмплов входного файла. Работает для кодирования и декодирования, но не для тестирования.</TD></TR> </TABLE> <H4><a name="analysis_options">Опции анализа</H4> <TABLE border=1> -<TR><TD width=15%><TT>--a-rtext</TT></TD> -<TD width=85%>Добавляет в файл остаточный сигнал. Результирующий файл получается <B>очень большим</B>.</TD></TR> +<TR><TD width=25%><TT>--residual-text</TT></TD> +<TD width=75%>Добавляет в файл остаточный сигнал. Результирующий файл получается <B>очень большим</B>.</TD></TR> -<TR><TD width=10%><TT>--a-rgp</TT></TD> -<TD width=90%>Создает файлы-диаграммы для каждого подфрейма. В каждом файле будет остаточное распределение для подфрейма. Будет создано <B>очень много</B> файлов.</TD></TR> +<TR><TD><TT>--residual-gnuplot</TT></TD> +<TD>Создает файлы-диаграммы для каждого подфрейма. В каждом файле будет остаточное распределение для подфрейма. Будет создано <B>очень много</B> файлов.</TD></TR> </TABLE> + <H4><a name="decoding_options">Опции декодирования</H4> <TABLE border=1> -<TR><TD width=15%><TT>-F</TT></TD> -<TD width=85%>По умолчанию <B><TT>flac</TT></B> прекращает декодирование -в случае ошибки в потоке и удаляет частично декодированный файл. -Использование ключа <TT>-F</TT> ведет к тому, что сообщения об ошибках -выводятся, но <B><TT>flac</TT></B> продолжает работу до конца. -Обратите внимание, что в результате такого декодирования в выходном файле -могут быть пропущены сэмплы или появится блоки тишины.</TD></TR> +<TR><TD width=30%><TT>-F</TT>,<BR><TT>--decode-through-errors</TT></TD> +<TD width=70%>По умолчанию <B><TT>flac</TT></B> прекращает декодирование в случае ошибки в потоке и удаляет частично декодированный файл. Использование ключа <TT>-F</TT> ведет к тому, что сообщения об ошибках выводятся, но <B><TT>flac</TT></B> продолжает работу до конца. Обратите внимание, что в результате такого декодирования в выходном файле могут быть пропущены сэмплы или появится блоки тишины.</TD></TR> </TABLE> <H4><a name="encoding_options">Опции кодирования</A></H4> <TABLE border=1> -
-<TR><TD width=15%><TT>--ogg</TT></TD> -<TD width=85%>
-<P>При кодировании генерируется вывод в формате Ogg-FLAC вместо "родного"FLAC. Потоки Ogg-FLAC представляют собой потоки FLAC обернутые в транспортный уровень Ogg. Полученный файл будет иметь суффикс '.ogg' и будет декодироваться утилитой <TT><B>flac</B></TT>.</P>
+<TR><TD width=30%><TT>-V</TT></TD> +<TD width=70%>Проверять процесс сжатия. В данном случае <B><TT>flac</TT></B> создает параллельный декодер, раскодирующий выход кодера и сравнивает результат с оригиналом. Если будет найдено несоответствие, кодирование прекратится. Время работы с этой опцией увеличивается, однако, при этом гарантируется, что файл будет правильно декодирован.</TD></TR> + +<TR><TD><TT>--ogg</TT></TD> +<TD><P>При кодировании генерируется вывод в формате Ogg-FLAC вместо "родного" FLAC. Потоки Ogg-FLAC представляют собой потоки FLAC обернутые в транспортный уровень Ogg. Полученный файл будет иметь суффикс '.ogg' и будет декодироваться утилитой <TT><B>flac</B></TT>.</P> <P>При декодировании формат ввода однозначно определяется как Ogg-FLAC. Это полезно при получении данных со стандартного ввода или если у файла суффикс не '.ogg'.</P></TD></TR>
+<TR><TD><TT>--serial-number=#</TT></TD> +<TD>При использовании с ключом --ogg определяет серийный номер для потока FLAC. При кодировании без явно указанного серийного номера, <B><TT>flac</TT></B> использует '0'. При декодировании по умолчанию используется серийный номер определенный на первой странице.</TD></TR> + <TR><TD><TT>--lax</TT></TD> <TD>Позволяет кодеру создавать файлы, отвечающие подмножеству формата FLAC. В результате работы будет получаться непотоковый файл, поэтому этот ключ следует использовать только для архивирования. Декодер будет поддерживать воспроизведение и поиск в таких файлах.</TD></TR> @@ -281,8 +286,8 @@ <P><B>ВНИМАНИЕ</B>: Порядок файлов имеет значение! Если вы сделаете следующий вызов '<TT>flac --sector-align *.wav</TT>', командный процессор может обработать шаблон не в том порядке, в каком вы рассчитываете. Поэтому лучше всего вызывать программу, явно указав список файлов, например, '<TT>flac --sector-align 8.wav 9.wav 10.wav</TT>'. </TD></TR> -<TR><TD><TT>-S {#|X|#x}</TT></TD> -<TD width=90%>Добавляет точки для поиска в таблицу <TT>SEEKTABLE</TT>. +<TR><TD><TT>-S {#|X|#x}</TT>,<BR><TT>--seekpoint={#|X|#x}</TD> +<TD>Добавляет точки для поиска в таблицу <TT>SEEKTABLE</TT>. <UL> <LI><TT># </TT> : создается точка поиска для сэмпла с определенным номером.</LI> @@ -298,114 +303,125 @@ <B>ПРИМЕЧАНИЕ</B>: если <I>#</I> больше или равен количеству сэмплов во входном файле, то точки добавлены не будут, если размер можно определить до кодирования, в противном случае будут записаны резервируемые точки.</P> </TD></TR> -<TR><TD><TT>-P #</TT></TD> -<TD>Eнкодер запишет блок метаданных <TT>PADDING</TT>, указанного размера (в байтах), после блока <TT>STREAMINFO</TT>. Ключи <TT>-P 0</TT> или <TT>-P-</TT> указывают, что блок <TT>PADDING</TT> не нужен (значение по умолчанию). Этот блок полезен, если вы собираетесь добавить тэг в файл позже. Вместо того, чтобы переписывать файл полностью, можно будет записать информацию вместо блока <TT>PADDING</TT>. Обратите внимание на то, что общий размер блока <TT>PADDING</TT> будет на 4 байта больше, так как 4 байта занимает заголовок.</TD></TR> +<TR><TD><TT>-P #</TT>, <TT>--padding</TT></TD> +<TD>Кодер запишет блок метаданных <TT>PADDING</TT>, указанного размера (в байтах), после блока <TT>STREAMINFO</TT>. Ключи <TT>-P 0</TT> или <TT>-P-</TT> указывают, что блок <TT>PADDING</TT> не нужен (значение по умолчанию). Этот блок полезен, если вы собираетесь добавить тэг в файл позже. Вместо того, чтобы переписывать файл полностью, можно будет записать информацию вместо блока <TT>PADDING</TT>. Обратите внимание на то, что общий размер блока <TT>PADDING</TT> будет на 4 байта больше, так как 4 байта занимает заголовок.</TD></TR> -<TR><TD><TT>-b #</TT></TD> +<TR><TD><TT>-b #</TT>, <TT>--blocksize</TT></TD> <TD>Устанавливает размер блока в сэмплах. По умолчанию <TT>1152</TT> для <TT>-l 0</TT>, иначе <TT>4608</TT>. Стандартные потоки должны использовать одно из указаных значений: <TT>192/576/1152/2304/4608/256/512/1024/2048/4096/8192/16384/32768</TT>. Сейчас кодер использует постоянный размер блока для всего файла.</TD></TR> -<TR><TD><TT>-m</TT></TD> +<TR><TD><TT>-m</TT>, <TT>--mid-side</TT></TD> <TD>Включает разностное кодирование (только для стерео потоков). Обычно увеличивает уровень сжатия на несколько процентов. Для каждого блока создается усредненная и стерео версия блока, сохраняется блок меньшего размера. Сейчас разностное кодирование доступно для файлов, где сэмпл имеет размер не больше 16 бит.</TD></TR> -<TR><TD><TT>-M</TT></TD> -<TD>Включает свободное разностное кодирование (только для стерео потоков). Работает аналогично <TT>-m</TT>, однако кодер переключается между независимым и усредняющим кодированием адаптивно. Метод работает быстрее, но уровень сжатия меньше, так как <TT>-m</TT> производит полный перебор вариантов.</TD></TR> +<TR><TD><TT>-M</TT>, <TT>--adaptive-mid-side</TT></TD> +<TD>Включает адаптивное разностное кодирование (только для стерео потоков). Работает аналогично <TT>-m</TT>, однако кодер переключается между независимым и усредняющим кодированием адаптивно. Метод работает быстрее, но уровень сжатия меньше, так как <TT>-m</TT> производит полный перебор вариантов.</TD></TR> <TR><TD><TT>-0..-8</TT></TD> <TD>Быстрейшее сжатие ... максимальное сжатие. По умолчанию <TT>-5</TT>.</TD></TR> -<TR><TD><TT>-0</TT></TD> +<TR><TD><TT>-0</TT>, <TT>--compression-level-0</TT></TD> <TD>Аналогично <TT>-l 0 -b 1152 -r 2,2</TT>.</TD></TR> -<TR><TD><TT>-1</TT></TD> +<TR><TD><TT>-1</TT>, <TT>--compression-level-1</TT></TD> <TD>Аналогично <TT>-l 0 -b 1152 -r 2,2 -M</TT>.</TD></TR> -<TR><TD><TT>-2</TT></TD> +<TR><TD><TT>-2</TT>, <TT>--compression-level-2</TT></TD> <TD>Аналогично <TT>-l 0 -b 1152 -r 3 -m</TT>.</TD></TR> -<TR><TD><TT>-3</TT></TD> +<TR><TD><TT>-3</TT>, <TT>--compression-level-3</TT></TD> <TD>Аналогично <TT>-l 6 -b 4608 -r 3,3</TD></TR> -<TR><TD><TT>-4</TT></TD> +<TR><TD><TT>-4</TT>, <TT>--compression-level-4</TT></TD> <TD>Аналогично <TT>-l 8 -b 4608 -r 3,3 -M</TT>.</TD></TR> -<TR><TD><TT>-5</TT></TD> +<TR><TD><TT>-5</TT>, <TT>--compression-level-5</TT></TD> <TD>Аналогично <TT>-l 8 -b 4608 -r 3,3 -m</TT>.</TD></TR> -<TR><TD><TT>-6</TT></TD> +<TR><TD><TT>-6</TT>, <TT>--compression-level-6</TT></TD> <TD>Аналогично <TT>-l 8 -b 4608 -r 4 -m</TT>.</TD></TR> -<TR><TD><TT>-7</TT></TD> +<TR><TD><TT>-7</TT>, <TT>--compression-level-7</TT></TD> <TD>Аналогично <TT>-l 8 -b 4608 -r 6 -m -e</TT>.</TD></TR> -<TR><TD><TT>-8</TT></TD> +<TR><TD><TT>-8</TT>, <TT>--compression-level-8</TT></TD> <TD>Аналогично <TT>-l 12 -b 4608 -r 6 -m -e</TT>.</TD></TR> -
+ <TR><TD><TT>--fast</TT></TD> <TD>Быстрейшее сжатие. Аналогично <TT>-0</TT>.</TD></TR> <TR><TD><TT>--best</TT></TD> <TD>Максимальное сжатие. Аналогично <TT>-8</TT>.</TD></TR> -<TR><TD><TT>-e</TT></TD> +<TR><TD><TT>-e</TT>,<BR><TT>--exhaustive-model-search</TT></TD> <TD>Полный поиск модели (работает медленно!). Обычно кодер определяет лучшую модель и кодирует далее опираясь на нее. В данном режиме кодер будет создавать подфреймы всех порядков и использовать наименьший. Если максимальное значение порядка LPC велико, время кодирования существенно возрастет. Выигрыш обычно составляет около 0.5%.</TD></TR> -<TR><TD><TT>-E</TT></TD> +<TR><TD><TT>-E</TT>,<BR><TT>--escape-coding</TT></TD> <TD>Использовать управляющие коды в кодере энтропии. Эта опция позволяет записывать незакодированное представление остатка в разделе, если его размер меньше. При этом время работы увеличивается, а уровень сжатия обычно улучшается примерно на 1%.</TD></TR> -<TR><TD><TT>-l #</TT></TD> +<TR><TD><TT>-l #</TT>,<BR><TT>--max-lpc-order=#</TT></TD> <TD>Определяет максимальный порядок LPC (коэффициентов линейного прогнозирования). Число должно быть меньше или равно <TT>32</TT>. Если значение равно <TT>0</TT>, кодер будет использовать вместо общего линейного прогнозирования постоянные коэффициенты. Этот метод увеличивает скорость работы, но файлы получаются на 5-10% больше.</TD></TR> -<TR><TD><TT>-q #</TT></TD> +<TR><TD><TT>-q #</TT>,<BR><TT>--qlp-coeff-precision=#</TD> <TD>Определяет точность дискретных коэффициентов линейного прогнозирования в битах. По умолчанию <TT>-q 0</TT>, что позволяет кодеру принимать решение в зависимости от сигнала. Лучше оставлять значение по умолчанию.</TD></TR> -<TR><TD><TT>-p</TT></TD> +<TR><TD><TT>-p</TT>,<BR><TT>--qlp-coeff-precision-search</TT></TD> <TD>Производить оптимизацию LPC. Переопределяет любую опцию <TT>-q</TT>. Сильно замедляет работу, и уменьшает размер файла на долю процента. <TT>-q</TT> не работает, когда используется <TT>-l 0</TT>.</TD></TR> -<TR><TD><TT>-r [#,]#</TT></TD> +<TR><TD><TT>-r [#,]#</TT>,<BR><TT>--rice-partition-order=[#,]#</TT></TD> <TD>Установить <I>[min,]max</I> порядок раздела. Если минимальное значение не указано, то оно устанавливается равным 0. По умолчанию кодер один параметр Райса для всего остатка подфрейма. Если использовать эту опцию, остаток будет разделяться на <I>2^min#</I> ... <I>2^max</I> частей, для каждой из которых будет определен собственный параметр Райса. С увеличением параметра <I>max</I> выигрыш будет все меньше. Наиболее оптимальный вариант достигается при использовании <TT>-r 2,2</TT> (и больших значений для больших размеров блоков). При этом сжатие обычно увеличивается на 1.5%. Выбор оптимального значения можно произвести по формуле <TT>размер_блока/(2^n)=128</TT>. Максимальный уровень сжатия достигается при использовании <TT>-r 0,16</TT>.</TD></TR> - -<TR><TD><TT>-V</TT></TD> -<TD>Проверять процесс сжатия. В данном случае <B><TT>flac</TT></B> создает параллельный декодер, раскодирующий выход кодера и сравнивает результат с оригиналом. Если будет найдено несоответствие, кодирование прекратится. Время работы с этой опцией увеличивается, однако, при этом гарантируется, что файл будет правильно декодирован.</TD></TR> - -<TR><TD> </TD> -<TD><TT>-F-</TT>, <TT>-S-</TT>, <TT>-P-</TT>, <TT>-m-</TT>, <TT>-e-</TT>, <TT>-E-</TT>, <TT>-p-</TT>, <TT>-V-</TT>, <TT>--lax-</TT>, <TT>--delete-input-file-</TT>, <TT>--sector-align-</TT> используются для отключения соответствующих опций.</TD></TR> </TABLE> <H4>Настройки формата</H4> <TABLE border=1> +<TR><TD width=30%><TT>--endian={big|little}</TT></TD> +<TD width=70%>Определяет порядок байтов в файле без заголовка big-endian | little-endian.</TD></TR> -<TR><TD width=15%><TT>-fb | -fl</TT></TD> -<TD width=90%>Определяет порядок байтов в файле без заголовка big-endian | little-endian.</TD></TR> - -<TR><TD><TT>-fc n</TT></TD> +<TR><TD><TT>--channels=#</TT></TD> <TD>Определяет количество каналов в файле без заголовка.</TD></TR> -<TR><TD><TT>-fp n</TT></TD> +<TR><TD><TT>--bps=#</TT></TD> <TD>Определяет количество бит на сэмпл в файле без заголовка.</TD></TR> -<TR><TD><TT>-fs n</TT></TD> +<TR><TD><TT>--sample-rate=#</TT></TD> <TD>Определяет количество сэмплов в секунду в файле без заголовка.</TD></TR> -<TR><TD><TT>-fu</TT></TD> -<TD>Указывает, что сэмплы в файле без заголовка беззнаковые (по умолчанию знаковые).</TD></TR> +<TR><TD><TT>--sign={signed|unsigned}</TT></TD> +<TD>Определяет, должны ли быть сэмплы в файле без заголовка беззнаковые или знаковые (по умолчанию знаковые).</TD></TR> -<TR><TD><TT>-fr</TT></TD> -<TD>Воспринимать входной (или выходной при декодировании) файл как raw поток сэмплов вне зависимости от суффикса.</TD></TR> +<TR><TD><TT>--force-raw-format</TT></TD> +<TD>Воспринимать входной (или выходной при декодировании) файл как поток сэмплов без заголовка вне зависимости от суффикса.</TD></TR> </TABLE> -<A NAME="metaflac"> -<H3><B><TT>metaflac</TT></B></H3> - -<P><B><TT>metaflac</TT></B> - это редактор метаданных, работающий из командной строки. Сейчас он только выводит содержимое блоков метаданных во .flac файле, но скоро с его помощью можно будет вставлять, удалять и редактировать блоки.</P> +<H4><a name="format-options">Отмена действия опций</H4> +<TABLE border=1> +<TR><TD width=40%> +<TT>--no-adaptive-mid-side</TT><BR> +<TT>--no-decode-through-errors</TT><BR> +<TT>--no-delete-input-file</TT><BR> +<TT>--no-escape-coding</TT><BR> +<TT>--no-exhaustive-model-search</TT><BR> +<TT>--no-lax</TT><BR> +<TT>--no-mid-side</TT><BR> +<TT>--no-ogg</TT><BR> +<TT>--no-padding</TT><BR> +<TT>--no-qlp-coeff-precision-search</TT><BR> +<TT>--no-residual-gnuplot</TT><BR> +<TT>--no-residual-text</TT><BR> +<TT>--no-sector-align</TT><BR> +<TT>--no-seektable</TT><BR> +<TT>--no-silent</TT><BR> +<TT>--no-verify</TT></TD> +<TD width=60%>Можно использовать для отключения действия конкретной опции.</TD></TR> +</TABLE> -<P>Cейчас <B><TT>metaflac</TT></B> вызывается только одним способом:</P> -<P><TT>metaflac [-v] входной_файл</TT></P> +<A NAME="metaflac"> +<H3><B><TT>metaflac</TT></B></H3> -<P>Входным_файлом может быть "-" для стандартного ввода (stdin). если использовать <TT>-v</TT>, будет получен более подробный отчет.</P> +<P><B><TT>metaflac</TT></B> - это редактор метаданных, работающий из командной строки. Его можно использовать для удаления, вставки и вывода содержимого блоков во .flac файле, а также управления блоком<TT>PADDING</TT>, резервирующим место.</P> +<P>Документация для <B><TT>metaflac</TT></B> сейчас переписывается, поэтому сейчас о возможностях можно узнать, дав команду: <TT>metaflac --help</TT>. <A NAME="plugins"><A NAME="xmms_plugin"> <H3>Плагин для XMMS</H3> @@ -414,184 +430,19 @@ <A NAME="winamp_plugin2"> <H3>Плагин для Winamp</H3> -
+ <P>Есть два плагина для Winamp: один для версий 2.x, а второй для 3.x. Если вы используете Winamp 2.x, то для установки плагина необходимо скопировать <TT>in_flac.dll</TT> в каталог, где находятся плагины ввода Winamp (обычно <TT>/Plugins</TT>). Больше ничего настраивать не надо. Для воспроизведения .flac файлов перезапустите Winamp.</P> <A NAME="winamp_plugin3"> <H3>Плагин для Winamp</H3> -
-<P>Есть два плагина для Winamp: один для версий 2.x, а второй для 3.x. Если вы используете Winamp 3.x, то для установки плагина необходимо скопировать <TT>cnv_flacpcm.wac</TT> в каталог, где находятся плагины ввода Winamp (обычно <TT>/Wacs</TT>). Больше ничего настраивать не надо. Для воспроизведения .flac файлов перезапустите Winamp.</P> - -<A NAME="libflac"> -<H3><B><TT>libFLAC</TT></B></H3> - -<P>Библиотека <B><TT>libFLAC</TT></B> является реализацией на C базового кодера и декодера. Используя эту библиотеку и написав немного кода, можно добавить поддержку FLAC в свою программу. Условия ее распространения - <A HREF="http://www.gnu.org/copyleft/lesser.html">LGPL</A>. Исходные тексты библиотеки <B><TT>libFLAC</TT></B>, также как и консольного кодека и плагинов, доступны, и могут послужить хорошим примером для использования.</P> - -<P><B><TT>libFLAC</TT></B> требует стандартную и математическую библиотеки для языка C. Программные потоки не используются, однако, так как <B><TT>libFLAC</TT></B> не использует глобальные переменные, библиотека должна быть thread-safe.</P> - -<P>Интерфейс <B><TT>libFLAC</TT></B> описан в публичных заголовочных файлах в каталоге include/FLAC. Для использования скомпилированной библиотеки нужны только публичные заголовки. Обратите внимание на то, что код из src/libFLAC/, включая защищенные заголовочные файлы из src/libFLAC/include/ не нужен.</P> - -<P>В основном использование <B><TT>libFLAC</TT></B> состоит в следующем:</P> - -<OL> - <LI>Программа создает экземпляр кодера или декодера с помощью функций <TT>*_new()</TT>.</LI> - - <LI>Программа устанавливает параметры экземпляра и предоставляет ему обратные вызовы для чтения, записи, сообщения об ошибках и работы с метаданными с помощью функций <TT>*_set_*()</TT>.</LI> - - <LI>Программа инициализирует экземпляр, проверяет параметры и готовится к кодированию/декодированию, используя функции <TT>*_init()</TT>.</LI> - - <LI>Программа вызывает функции <TT>*_process_*()</TT> для кодирования или декодирования данных, которые в свою очередь делают обратные вызовы.</LI> - - <LI>Программа завершает работу экземпляра функцией <TT>*_finish()</TT>, которая сбрасывает буферы ввода и вывода.</LI> - - <LI>Экземпляр может быть использован снова либо удален функцией <TT>*_delete()</TT>.</LI> - -</OL> - -<P>Для декодирования <B><TT>libFLAC</TT></B> предоставляет три уровня доступа. На нижнем уровне находится декодер потоков, на следующем - декодер потоков с возможностью поиска, а на верхнем - декодер файлов. Интерфейсы описаны в файлах <TT>stream_decoder.h</TT>, <TT>seekable_stream_decoder.h</TT> и <TT>file_decoder.h</TT> соответственно. Использовать лучше всего декодер более верхнего уровня.</P>
-
-<P>Потоковый декодер рассчитывает на обратные вызовы для получения входных и выходных данных. Декодер с возможностью поиска является оберткой потокового декодера, предоставляющий возможность поиска, однако для его выполнения вам необходимо добавить обратные вызовы. Файловый декодер сам осуществляет обратные вызовы для чтения и предоставляет функции поиска.</P>
-
-<P>кодер пока что реализован только на потоковом уровне (<TT>stream_encoder.h</TT>).</P> - -<P>Структуры и константы, относящиеся к формату, определены в файле <TT>format.h</TT>.</P> -
- -<P><B>ДЕКОДЕР ПОТОКОВ</B></P> - -<P>Сначала обсудим декодер потоков. Тип его экземпляра <TT>FLAC__StreamDecoder</TT>. Обычно в программе экземпляр создается вызовом <TT>FLAC__stream_decoder_new()</TT>, затем вызывает функции <TT>FLAC__stream_decoder_set_*()</TT> для установки обратных вызовов и пользовательских данных и инициализируется функцией <TT>FLAC__stream_decoder_init()</TT>. Необходимые обратные вызовы:</P> - -<UL> - <LI>Обратный вызов для чтения. Эта функция вызывается, когда декодеру необходимы данные. В качестве параметров передается адрес буфера, который нужно заполнить, и его размер в байтах. Обратный вызов может вернуть меньше данных и изменить счетчик байтов, но не должен переполнять буфер. Код возврата при выходе выбирается из <TT>FLAC__StreamDecoderReadStatus</TT>.</LI> - - <LI>Обратный вызов для записи. Эта функция вызывается после декодирования одного фрейма данных. Декодер передаст метаданные фрейма, а также массив указателей (по одному на каждый канал) на декодированные данные.</LI> - - <LI>Обратный вызов для работы с метаданными. Функция вызывается после разбора блока метаданных. Для потока всегда должен существовать блок метаданных <TT>STREAMINFO</TT>, за которым может следовать произвольное количество других блоков. Они будут возвращены декодером в том же порядке, в каком они расположены в потоке и всегда перед первым аудио фреймом. Переданный блок метаданных не должен изменяться и не сохраняется после обратного вызова, поэтому, если он будет нужен в дальнейшем сделайте его копию с помощью функции <TT>FLAC__metadata_object_copy()</TT>.</LI>
-
- <LI>Обратный вызов для сообщения об ошибке. Эта функция вызывается, если при декодировании происходит ошибка.</LI> -</UL> - -<P>Когда декодер инициализирован, программа может вызвать одну из следующих функций для декодирования:</P> - -<UL> - <LI><B><TT>FLAC__stream_decoder_process_whole_stream()</TT></B> - Декодер начинает работу и продолжает обрабатывать поток пока функция обратного вызова чтения не передаст код <TT>FLAC__STREAM_DECODER_READ_END_OF_STREAM</TT> или <TT>FLAC__STREAM_DECODER_READ_ABORT</TT>.</LI> - - <LI><B><TT>FLAC__stream_decoder_process_metadata()</TT></B> - Декодер обрабатывает поток до первого аудио фрейма.</LI> - - <LI><B><TT>FLAC__stream_decoder_process_one_frame()</TT></B> - Декодеровать только один фрейм. Перед вызовом этой функции все метаданные должны быть обработаны.</LI> - - <LI><B><TT>FLAC__stream_decoder_process_remaining_frames()</TT></B> - Декодировать все оставшиеся фреймы. Перед вызовом этой функции все метаданные должны быть обработаны. Перед вызовом этой фунции также может вызываться <TT>FLAC__stream_decoder_process_one_frame()</TT>.</LI> -</UL> - -<P>Когда декодер заканчивает работу, экземпляр обрабатывается функцией <TT>FLAC__stream_decoder_finish()</TT>, которая проверяет состояние декодера и освобождает память. Затем экземпляр может быть удален функцией <TT>FLAC__stream_decoder_delete()</TT> или инициализирован заново для декодирования другого потока.</P> - -<P>Обратите внимание на то, что потоковый декодер не имеет представления о позиции в потоке, он только преобразовывает данные. Чтобы осуществлять поиск в потоке функции обратного вызова могут только сбрасывать данные декодера функцией <TT>FLAC__stream_decoder_flush()</TT> и начинать подавать данные с новой позиции с помощью обратного вызова для чтения. Декодер файлов поступает именно так.</P> -
-<P><B>ДЕКОДЕР ПОТОКОВ С ВОЗМОЖНОСТЬЮ ПОИСКА</B></P>
- -<P>Декодер потоков с возможностью поиска является оберткой для стандартного декодера потоков. Тип его экземпляра - <TT>FLAC__SeekableStreamDecoder</TT>. К обраным вызовам декодера потоков для чтения, записи, работы с метаданными и обработки ошибок необходимо добавить еще следующие:</P>
-
-<UL>
- <LI>Обратный вызов для поиска. Эта функция вызывается, когда декодеру нужно найти абсолютную позицию в потоке.</LI>
- <LI>Обратный вызов для определения текущей позиции. Эта функция вызывается, когда декодеру нужно узнать текущую позицию в потоке.</LI>
- <LI>Обратный вызов для определения размера потока. Функция вызывается, когда декодеру нужно узнать размер потока. Используемому алгоритму поиска требуется знать общий размер потока.</LI>
- <LI>Обратный вызов для определения конца потока. Функция вызывается, когда декодеру нужно знать, достиг ли он конца потока. Этого результата можно добиться, используя обратные вызовы для определения текущей позиции и общего размера, но такой способ может потребовать гораздо больше ресурсов.</LI>
-
-<P>Поиск осущесвляется через метод <TT>FLAC__seekable_stream_decoder_seek_absolute()</TT>. В любой момент после инициализации пользовател может вызвать эту функцию для перехода к опрделенному сэмплу в потоке. Первый обратный вызов записи будет содержать (возможно, неполный) блок, начинающийся с заданного сэмпла.</P>
-
-<P>Декодер потоков с возможностью поиска предоставляет проверку подписей MD5. Если ее включить перед инициализацией, функция <TT>FLAC__seekable_stream_decoder_finish()</TT> сообщит совпадает ли подпись MD5 декодированного потока с сохраненной блоке <TT>STREAMINFO</TT>. Проверка подписи MD5 автоматически отключается при попытке посика или если в блоке <TT>STREAMINFO</TT> не найдена подпись.</TT>
- -<P><B>ДЕКОДЕР ФАЙЛОВ</B></P> - -<P>Декодер файлов - это оболочка декодера потоков с возможностью поиска, призванная упростить процесс декодирования файлов. Тип его экземпляра - <TT>FLAC__FileDecoder</TT>. Отличие от потокового декодера состоит в том, что вместо обратного вызова для чтения (который обрабатывает сам декодер) при инициализации указывается путь к файлу. Выполнение остальных функций декодер берет на себя.</P> - -<P>Аналогично декодеру потоков с возможностью поиска он предоставляет поиск через метод <TT>FLAC__file_decoder_seek_absolute()</TT>. В любой момент после инициализации декодера файлов программа может вызвать эту функцию для поиска сэмпла в файле. Впоследствии, при первом обратном вызове для записи он будет содержать (возжожно неполный) блок, начинающийся с этого сэмпла.</P> - -<P>От декодера потоков с возможностью поиска также наследуется проверка подписи MD5. Если эта возможность будет включена перед инициализацией, <TT>FLAC__file_decoder_finish()</TT> сообщит, если подпись MD5 распакованных данных не совпадет с сохраненной в блоке STREAMINFO. Проверка MD5 автоматически выключается, если в блоке STREAMINFO нет подписи или при попытке осуществления поиска. - - -<P><B>кодер ПОТОКОВ</B></P> - -<P>кодер потоков работает аналогично декодеру, однако имеет меньше обратных вызовов и больше опций. Тип экземпляра - <TT>FLAC__StreamEncoder</TT>. Для создания нового экземпляра в программе нужно вызвать функцию <TT>FLAC__stream_encoder_new()</TT>, а чтобы проинициализировать его - <TT>FLAC__stream_encoder_init()</TT>.</P> - -<P>В отличие от процесса декодирования кодирование в формат FLAC имеет множество опций, влияющих на скорость и уровень сжатия. Когда программа вызывает <TT>FLAC__stream_encoder_init()</TT>, кодер проверяет значения, поэтому необходимо убедиться, что возвращемое этой функцией значение - <TT>FLAC__STREAM_ENCODER_OK</TT>. Для установки параметров нужно иметь некоторое представление о формате (см. <A HREF="#format">описание формата для пользователя</A> или его <A HREF="format.html">формальное описание</A>). Список необходимых параметров приведен здесь:</P> - -<UL> - <LI><B><TT>streamable_subset</TT></B> - <TT>истина</TT>, если необходимо, чтобы выход соответствовал потоковому <A HREF="format.html#subset">подмножеству формата</A>, иначе <TT>ложь</TT>.</LI> - - <LI><B><TT>do_mid_side_stereo</TT></B> - <TT>истина</TT>, если нужно использовать усредненное кодирование для стерео потоков. Значение <TT>channels</TT> должно быть <TT>2</TT>.</LI> - - <LI><B><TT>loose_mid_side_stereo</TT></B> - <TT>истина</TT>, чтобы применить адаптивное переключение режима усредненного кодирования, иначе ложь. <TT>do_mid_side_stereo</TT> должно быть истина.</LI> - - <LI><B><TT>channels</TT></B> (количество каналов) - должно быть <= <TT>FLAC__MAX_CHANNELS</TT>.</LI> - - <LI><B><TT>bits_per_sample</TT></B> - количество битов на сэмпл.</LI> - - <LI><B><TT>sample_rate</TT></B> (частота дискретизации) - должно быть <= <TT>FLAC__MAX_SAMPLE_RATE</TT>.</LI> - - <LI><B><TT>blocksize</TT></B> (размер блока) - должен быть между <TT>FLAC__MIN_BLOCKSIZE</TT> и <TT>FLAC__MAX_BLOCKSIZE</TT>.</LI> - - <LI><B><TT>max_lpc_order</TT></B> (максимальный порядок коэффициентов линейного прогнозирования) - <TT>0</TT> указывает, что кодер не должен использовать LPC, а только постоянные предикторы. Должно быть <= <TT>FLAC__MAX_LPC_ORDER</TT>.</LI> - - <LI><B><TT>qlp_coeff_precision</TT></B> - должно быть >= <TT>FLAC__MIN_QLP_COEFF_PRECISION</TT>, или <TT>0</TT>, чтобы кодер мог выбирать коэффициенты в зависимости от размера блока. В текущей реализации сумма <TT>qlp_coeff_precision</TT>+<TT>bits_per_sample</TT> должна быть < <TT>32</TT>.</LI> - - <LI><B><TT>do_qlp_coeff_prec_search</TT></B> - <TT>ложь</TT>, чтобы использовать заданное значение <TT>qlp_coeff_precision</TT>; <TT>истина</TT> для поиска и выбора лучшего значения <TT>qlp_coeff_precision</TT>.</LI> - - <LI><B><TT>do_escape_coding</TT></B> - истина, если нужно искать управляющий код на стадии кодирования энтропии для небольшого увеличения уровня сжатия.</LI> - - <LI><B><TT>do_exhaustive_model_search</TT></B> (производить полный поиск наилучшей модели) - <TT>ложь</TT>, to use estimated bits per residual for scoring; <TT>истина</TT> для перебора всех возможных вариантов и выбора наилучшего.</LI> - - <LI><B><TT>min_residual_partition_order</TT></B> (минимальный порядок раздела остатков), <B><TT>max_residual_partition_order</TT></B> (максимальный порядок раздела остатков)= <TT>0</TT>, чтобы оценивать параметр Райса основываясь на дисперсии остатков; > <TT>0</TT> для разделения остатков и определения параметра для каждого раздела, основываясь на среднем. <TT>min_residual_partition_order</TT> и <TT>max_residual_partition_order</TT> определяют минимальный и максимальный порядок раздела Райса.</LI> - - <LI><B><TT>rice_parameter_search_dist</TT></B> (интервал для поиска параметра Райса) - <TT>0</TT>, чтобы использовать только вычисленный параметр <TT>k</TT>; иначе пытаться кодировать со всеми параметрами из интервала [<TT>k</TT>-<TT>rice_parameter_search_dist</TT>..<TT>k</TT>+<TT>rice_parameter_search_dist</TT>] и выбирать лучший вариант.</LI> - - <LI><B><TT>total_samples_estimate</TT></B> (количество сэмплов) - Может равняться <TT>0</TT>, если неизвестно. Иначе указывается количество сэмплов, которое нужно закодировать. Это позволяет создавать более точный блок <TT>STREAMINFO</TT> при первом же проходе в случае, когда кодер не может вернуться к началу вывода, чтобы обновить блок <TT>STREAMINFO</TT>.</LI> - - <LI><B><TT>seek_table</TT></B> (таблица для поиска) - создать необязательную таблицу для поиска в файле. <TT>NULL</TT> указывает, что таблица не нужна.</LI> - - <LI><B><TT>padding</TT></B> (резервирование места) - размер блока <TT>PADDING</TT> (следует за таблицей для поиска); <TT>-1</TT> означает, что блок <TT>PADDING</TT> добавлять не нужно. Помните, что указывается размер для данных; общий размер блока PADDING будет на 4 байта больше из-за заголовка.</LI> -</UL> - -<P>Программа должна предоставить <TT>FLAC__stream_encoder_init()</TT> адреса для следующих обратных вызовов:</TT> - -<UL> - <LI>Обратный вызов для записи. Вызывается, когда появляются закодированные данные для записи. Это могут быть метаданные смешанные с аудио фреймами, причем не гарантируется, что данные будут выровнены на границу блока метаданных или фрейма.</LI> - - <LI>Обратный вызов для работы с метаданными. Вызывается однажды по завершении кодирования с populated структурой <TT>STREAMINFO</TT>. Это нужно для того, чтобы кодеры файлов могли вернуться к началу файла и записать в блок <TT>STREAMINFO</TT> корректные данные о кодировании, например минимальный и максимальный размер фрейма.</LI> -</UL> - -<P>Вызов <TT>FLAC__stream_encoder_init()</TT> непосредственно производит обратный вызов для записи сигнатуры "fLaC" и всех определенных на данный момент метаданных.</P> - -<P>После инициализации экземпляра программа может передавать данные кодеру двумя способами:</P> - -<UL> - <LI>Разделенными по каналам через <B><TT>FLAC__stream_encoder_process()</TT></B>. В этом случае нужно определить массив указателей на буфферы одинакового размера, по одному на каждый канал. Выравнивать сэмплы на границу блока не нужно.</LI> - - <LI>В чередующихся каналах через <B><TT>FLAC__stream_encoder_process_interleaved()</TT></B>. Программа должна передать один указатель на аудио данные с чередующимися каналами (например, <TT>канал0_сэмпл0, канал1_сэмпл0, ... , каналN_сэмпл0, канал0_сэмпл1, ...</TT>). Данные могут быть не выровнены на границу блока, но должны быть выровнены на границу сэмпла, т.е. первым значением должно быть <TT>канал0_сэмплX</TT>, а последним - <TT>каналN_сэмплY</TT>.</LI> -</UL> - -<P>Для завершения кодирования данных программа вызывает функцию <TT>FLAC__stream_encoder_finish()</TT>, которая кодирует оставшиеся данные из входного потока и делает обратный вызов для работы с метаданными с корректной статистикой о процессе кодирования. Экземпляр может быть удален функцией <TT>FLAC__stream_encoder_delete()</TT> или инициализирован снова для кодирования нового потока.</P> - - -<P><B>РАЗНОЕ</B></P> - -<P>Необходимо отметить, что когда передаются указатели на аудио данные, их порядок имеет значение только для стерео потоков. Канал <TT>0</TT> соответствует левому каналу, а <TT>1</TT> - правому.</P> - - -<P><B>МЕТАДАННЫЕ</B></P> - -<P>Программы, записывающие свои блоки метаданных <TT>APPLICATION</TT>, могут указать кодеру, чтобы он записал блок метаданных <TT>PADDING</TT> нужного размера. В этом случае вместо перезаписи всего потока после кодирования программа сможет просто заменить блок <TT>PADDING</TT> на свой. Если известен только максимальный размер блока <TT>APPLICATION</TT>, программа может создать резервный блок чуть большего размера, а после кодирования разделить его на блоки <TT>APPLICATION</TT> и <TT>PADDING</TT>.</P> - -<P>Если размер блока метаданных <TT>APPLICATION</TT> известен заранее, размер резервируемой области может быть легко вычеслен. Если размер блока <TT>APPLICATION</TT> (не включая заголовок блока) равен <TT>N</TT> байтам, то экземпляру FLAC__StreamEncoder перед инициализацией нужно передать значение <TT>N+4</TT>. Это нужно, чтобы учесть дополнительное место необходимое для хранения идентификатора приложения.</P> - -<P>Когда известен только максимальный размер, скажем, <TT>N</TT> байт, нужно зарезервировать <TT>N+8</TT> байт. Четыре для ID приложения и четыре для дополнительного блока <TT>PADDING</TT>, который заполнит оставшееся пространство. По окончании кодирования, когда размер блока данных <TT>APPLICATION</TT> становится известной и равной, допустим, <TT>M</TT> байтам, на место первоначального блока <TT>PADDING</TT> будет записан блок <TT>APPLICATION</TT> и блок <TT>PADDING</TT> длиной <TT>N-M</TT> байтов.</P> +<P>Есть два плагина для Winamp: один для версий 2.x, а второй для 3.x. Если вы используете Winamp 3.x, то для установки плагина необходимо скопировать <TT>cnv_flacpcm.wac</TT> в каталог, где находятся плагины ввода Winamp (обычно <TT>/Wacs</TT>). Больше ничего настраивать не надо. Для воспроизведения .flac файлов перезапустите Winamp.</P> <A NAME="bugs"> <H3>Известные ошибки</H3> <P>Отслеживание ошибок ведется на <A HREF="http://sourceforge.net/bugs/?group_id=13478">этой</A> странице проекта, находящейся на SourceForge. Если Вы будете сообщать об ошибке, пожалуйста, оставьте e-mail для контакта.</P> -
+ <A NAME="monkey"> <H3>monkey</H3> @@ -611,7 +462,7 @@ </UL> </P> -<P>Если вам нравится использовать оболочку Monkey's Audio GUI для получения файлов FLAC, попросите <A HREF="mailto:email@monkeysaudio.com">Мэта</A> (автора) добавить официальную поддержку FLAC! Другие оболочки можно использовать аналогичным образом. Если вы заитересованы в использовании какой-либо, пишите в список рассылки flac-dev.</P> +<P>Другие оболочки можно использовать примерно таким же способом.</P> <P> Copyright (c) 2000,2001,2002 Josh Coalson</P> diff --git a/doc/html/ru/format.html b/doc/html/ru/format.html index e5f6f0b4..b95d40a7 100644 --- a/doc/html/ru/format.html +++ b/doc/html/ru/format.html @@ -80,7 +80,7 @@ <P>Во-первых, как основной разработчик, я должен отметить, что не являюсь экспертом в области сжатия, поэтому чувствую себя обязанным поблагодарить многих людей, работавших над улучшением алгоритмов компрессии аудиоданных. Отдельную благодарность я выражаю:</P> <P><BLOCKQUOTE> -<LI><A HREF="http://svr-www.eng.cam.ac.uk/~ajr/">Э. Робинсону</A> за работу над Shorten. Его код и статья послужили отправной точкой для нескольких основных методов, заложенных во FLAC. FLAC развил идею постоянных предикторов, используемую в Shorten.</LI> +<LI><A HREF="http://www-svr.eng.cam.ac.uk/reports/abstracts/robinson_tr156.html">Э. Робинсону</A> за работу над Shorten. Его статья послужила отправной точкой для нескольких основных методов, заложенных во FLAC. FLAC развил идею постоянных предикторов, используемую в Shorten.</LI> <LI><A HREF="http://commsci.usc.edu/faculty/golomb.html">С. Голомбу</A> и Роберту Райсу. Их универсальные коды используются кодером энтропии.</LI> @@ -237,11 +237,9 @@ <LI>Во FLAC определено специальное подмножество формата (Subset format). Все потоки сжатые этим методом на самом деле являются потоковыми, то есть декодер, который не может искать в потоке, имеет возможность перейти к любой его точке и начать воспроизведение. Для файлов, отвечающих этому подмножеству формата, значительно проще сделать аппаратный декодер. <B><TT>flac</TT></B> по умолчанию создает потоки, отвечающие этому подмножеству формата. Ключ <TT>--lax</TT> запрещает создание таких потоков. Чтобы файл отвечал данному подмножеству, для него должны выполняться следующие ограничения:</LI> <UL> - <LI>Значение битов, отвечающих за размер блока, должно быть в пределах 0001-0101 или 1000-1111. Поток должен состоять из блоков одинакового размера (за исключением последнего), а в блоке метаданных <TT>STREAMINFO</TT> должны быть указаны равные значения для минимального и максимального размера блока.</LI> - - <LI>Количество бит на сэмпл в заголовке фрейма должно описываться следующим диапазоном битов 001-110.</LI> - + <LI>Значение битов, отвечающих за размер блока, должно быть в пределах 0001-0101 или 1000-1110. Поток должен состоять из блоков одинакового небольшого размера (за исключением последнего), а в блоке метаданных <TT>STREAMINFO</TT> должны быть указаны равные значения для минимального и максимального размера блока.</LI> <LI>Частота дискретизации в заголовке фрейма должна описываться следующим диапазоном битов 0001-1011.</LI> + <LI>Количество бит на сэмпл в заголовке фрейма должно описываться следующим диапазоном битов 001-111.</LI> </UL> </BLOCKQUOTE></P> @@ -492,11 +490,9 @@ </UL> </TD> </TR> -
- </TABLE></P> -
-
+ + <P><TABLE WIDTH="100%" BORDER="1"> <TR> @@ -505,13 +501,9 @@ <TR> <TD VALIGN="TOP"><n></TD> - <TD>Содержимое комметария в формате Vorbis, как оно описано <A HREF="http://www.xiph.org/ogg/vorbis/doc/v-comment.html">здесь</A>. Обратите внимание на то, что спецификация Vorbis ограничивает размер этого блока 2 ^ 64 байтами, в то время как блок метаданных FLAC может иметь размер не больше 2 ^ 24 байтов. В соответствии со спецификацией Vorbis 32-битные данные little-endian coded, в отличие от big-endian coding целых, используемых в остальных местах FLAC.</TD> + <TD>Содержимое комметария в формате Vorbis, как оно описано <A HREF="http://www.xiph.org/ogg/vorbis/doc/v-comment.html">здесь</A>. Обратите внимание на то, что спецификация Vorbis ограничивает размер этого блока 2 ^ 64 байтами, в то время как блок метаданных FLAC может иметь размер не больше 2 ^ 24 байтов. В соответствии со спецификацией Vorbis 32-битные данные little-endian coded, в отличие от big-endian coding целых, используемых в остальных частях FLAC.</TD> </TR> -
- </TABLE></P> -
- <P><TABLE WIDTH="100%" BORDER="1"> @@ -536,8 +528,7 @@ <TR> <TD VALIGN="TOP"><A HREF="format.html#frame_footer"><TT>ЗАВЕРШЕНИЕ_ФРЕЙМА</TT></A></TD> - <TD> </TD> -</TR> + <TD> </TD>1</TR> </TABLE></P> diff --git a/doc/html/ru/index.html b/doc/html/ru/index.html index 4504a69a..58954953 100644 --- a/doc/html/ru/index.html +++ b/doc/html/ru/index.html @@ -71,9 +71,11 @@ <H3>Статус</H3> -<P>13 февраля 2002: аппаратная реализация FLAC</P> +<P>11 сентября 2002: FLAC 1.0.4 бета</P> -<P><A HREF="http://www.phatnoise.com/">Phatnoise</A> стала первой коммерческой аппаратной платформой, поддерживающей FLAC. Для воспроизведения FLAC файлов плейером Phatbox выпущена прошивка. Подробнее об этом на странице <A HREF="http://phatbox.sixpak.org/">Phatbox</A>.</P> +<P>Поддержка FLAC была добавлена в Rio Receiver и Dell Digital Audio Receiver; <A HREF="http://rioreceiver.comms.net/php/showflat.php?Cat=&Board=Technical&Number=2262&page=0&view=collapsed&sb=5&o=0&fpart=">здесь</A> все описано подробнее.</P> + +<P>Осталось совсем немного до выхода FLAC 1.0.4.</P> <P>Если вы используете FLAC и у вас есть предоложения или патчи, пожалуйста, присодиняйтесь к <A HREF="http://sourceforge.net/mail/?group_id=13478">списку рассылки</A> или <A HREF="http://sourceforge.net/project/memberlist.php?group_id=13478">группе разработчиков</A>. Сообщить об ошибке можно <A HREF="http://sourceforge.net/bugs/?func=addbug&group_id=13478">здесь</A>.</P> @@ -83,16 +85,16 @@ <P>FLAC - это аббревиатура от free lossless audio codec (свободный кодек, обеспечивающий сжатие без потерь). Проект FLAC включает:</P> <P><BLOCKQUOTE><UL> - <LI>потоковый формат,</LI> - - <LI>библиотеку <B><TT>libFLAC</TT></B>, реализующую базовые енкодеры и декодеры,</LI> - - <LI><B><TT>flac</TT></B>, утилиту командной строки, выполняющую сжатие и распаковку .flac файлов,</LI> - + <LI>потоковый формат;</LI> + <LI><B><TT>libFLAC</TT></B>, библиотеку для базовых кодеров и декодеров и интерфейса метаданных;</LI> + <LI><B><TT>libFLAC++</TT></B>, объектную оболочку для <TT>libFLAC</TT>;</LI> + <LI><B><TT>libOggFLAC</TT></B> и <B><TT>libOggFLAC++</TT></B>, обертки кодеров и декодеров <TT>libFLAC</TT> и <TT>libFLAC++</TT>, соответственно, для доступа к потокам FLAC в контейнере Ogg;</LI> + <LI><B><TT>flac</TT></B>, утилиту командной строки, выполняющую сжатие и распаковку файлов .flac;</LI> + <LI><B><TT>metaflac</TT></B>, утилиту командной строки для редактирования метаданных в файлах .flac;</LI> <LI>плагины для разных плейеров (Winamp, XMMS, ведется работа над другими).</LI> </UL></BLOCKQUOTE></P> -<P>"Свобода" означает, что спецификация потокового формата относится к категории public domain (проект FLAC оставляет за собой право устанавливать спецификации и сертифицировать относящиеся к нему продукты на совместимость), а также то, что ни формат, ни один из реализованных методов кодирования/декодирования не запатентованы. Это также значит, что исходные тексты <B><TT>libFLAC</TT></B> доступны по лицензии LGPL, а утилиты <B><TT>flac</TT></B> и плагинов - по GPL.</P> +<P>"Свобода" означает, что спецификация потокового формата относится к категории public domain (проект FLAC оставляет за собой право устанавливать спецификации и сертифицировать относящиеся к нему продукты на совместимость), а также то, что ни формат, ни один из реализованных методов кодирования/декодирования не запатентованы. Это также значит, что исходные тексты для библиотек доступны по лицензии <A HREF="http://www.opensource.org/licenses/lgpl-license.html">LGPL</A>, а утилит <B><TT>flac</TT></B>, <B><TT>metaflac</TT></B> и плагинов - по <A HREF="http://www.opensource.org/licenses/gpl-license.html">GPL</A>.</P> <P>FLAC компилируется на множестве платформ: Unixes (Linux, *BSD, Solaris, OS X), Windows, BeOS и OS/2. Имеются системы сборки для autoconf/automake, MSVC, Watcom C и Project Builder.</P> diff --git a/doc/html/ru/links.html b/doc/html/ru/links.html index dff2b545..4a6bf4bb 100644 --- a/doc/html/ru/links.html +++ b/doc/html/ru/links.html @@ -71,51 +71,47 @@ <P><BLOCKQUOTE><UL> <LI><A HREF="http://flac.sourceforge.net/">Документация FLAC на английском языке</A></LI> - <LI><A HREF="http://www.sourceforge.net/projects/flac/">Страница проекта FLAC на SourceForge</A></LI> - <LI><A HREF="http://freshmeat.net/projects/flac">Страница на Freshmeat</A></LI> - <LI><A HREF="http://www.firstpr.com.au/audiocomp/lossless/">Основные принципы сжатия без потерь</A></LI> - <LI><A HREF="http://dkutsanov.chat.ru/">Утилиты для сжатия аудио</A></LI> </UL></BLOCKQUOTE></P> -<P>Аппаратура, поддерживающая FLAC:</P> +<P>Аппаратура, поддерживающая FLAC:</P> <P><BLOCKQUOTE><UL> <LI><A HREF="http://www.phatnoise.com/">Phatnoise</A> car audio system: <A HREF="http://phatbox.sixpak.org/">Phatbox + FLAC</A></LI> +<LI><A HREF="http://www.sonicblue.com/audio/rio/rio_receiver.asp">Rio Reciever</A> и Dell Digital Audio Receiver с помощью клиента <A HREF="http://sourceforge.net/projects/rioplay/">RioPlay</A></LI> </UL></BLOCKQUOTE></P> -<P>Программы, использующие FLAC:</P> -<LI><A HREF="http://www.bagu.dhs.org/flac.html">Патч</A> для <A
-HREF="http://lly.org/~rcw/abcde/page/">abcde</A> (A Better CD Encoder)</LI> -
-<LI>Редактор тегов <A HREF="http://easytag.sourceforge.net/">EasyTAG</A></LI>
+<P>Программы, использующие FLAC:</P> +<P><BLOCKQUOTE><UL> +<LI><A HREF="http://www.bagu.dhs.org/flac.html">Патч</A> для <A HREF="http://lly.org/~rcw/abcde/page/">abcde</A> (A Better CD Encoder)</LI> +<LI>Редактор тегов <A HREF="http://easytag.sourceforge.net/">EasyTAG</A></LI> <LI><A HREF="http://home.wanadoo.nl/~w.speek/flac.htm">FLAC frontend</A> (Windows GUI)</LI> - -<LI><A HREF="http://www.lameb.fsnet.co.uk/">Split_wav</A> WAV+CUE splitter</A></LI> - <LI><A HREF="http://flac-tools.sourceforge.net/">flac-tools</A></LI> - -<LI><A HREF="http://www.gstreamer.net/">GStreamer</A> система для потовой передачи медиа-файлов<BR></FONT></SMALL></TD></TR> - +<LI><A HREF="http://www.gstreamer.net/">GStreamer</A> система для потоковой передачи медиа-файлов</LI> +<LI><A HREF="http://jreceiver.sourceforge.net/">JReceiver</A> аудио-сервер, использующий технологию сервлетов</LI> +<LI><A HREF="http://www.danrules.com/macflac/">MacFLAC</A> дистрибутив для Mac OS X</LI> <LI><A HREF="http://mediaxw.sourceforge.net/">MediaXW</A> включает фильтр FLAC DirectShow</LI> - +<LI><A HREF="http://ptarmigan.sourceforge.net/">Ptarmigan</A> анализатор медиафайлов для XML</LI> <LI><A HREF="http://rawrec.sourceforge.net/">rawrec/rawplay</A> утилиты для записи и воспроизведения</LI> -
-<LI><A HREF="http://rip.sourceforge.net/">rip</A> консольная утилита для копирования CD Audio и сжатия файлов</LI>
- +<LI><A HREF="http://rip.sourceforge.net/">rip</A> консольная утилита для копирования CD Audio и сжатия файлов</LI> <LI><A HREF="http://www.icculus.org/SDL_sound/">SDL_sound</A> аудио модуль для SDL</LI> - -<LI><A HREF="http://shnutils.etree.org/shntool/">shntool</A><BR></FONT></SMALL></TD></TR> - +<LI><A HREF="http://shnutils.etree.org/shntool/">shntool</A></LI> <LI><A HREF="http://www.lammerts.org/software/soepkiptng/">Soepkip TNG</A> плейер, управляемый через web-интерфейс</LI> - <LI><A HREF="http://www.cyclooctane.com/sonice/">sonice</A>: преобразование FLAC в Vorbis</LI> +<LI><A HREF="http://www.lameb.fsnet.co.uk/">Split_wav</A> WAV+CUE splitter</A></LI> +<LI><A HREF="http://www.saunalahti.fi/~cse/html/tag.html">Tag</A> редактор тегов (доступна <A HREF="http://home.wanadoo.nl/~w.speek/tag.htm">графическая оболочка</A>)</LI> </UL></BLOCKQUOTE></P> +<P>Сообщества, использующие FLAC:</P> +<P><BLOCKQUOTE></UL> +<LI><A HREF="http://wiki.etree.org/">etree.org</A></LI> +</UL></BLOCKQUOTE></P> + + <P> Copyright (c) 2001,2002 Josh Coalson</P> </BODY> diff --git a/doc/html/ru/news.html b/doc/html/ru/news.html index b8d0bdd4..694ba7b4 100644 --- a/doc/html/ru/news.html +++ b/doc/html/ru/news.html @@ -68,6 +68,61 @@ <CENTER><H2>FLAC: новости</H2></CENTER> +<P><LI><B>10.09.2002</B><BR> +Вышла версия <B>FLAC 1.0.4</B>, в которой сделано большое количество улучшений:</P> + +<P><BLOCKQUOTE><UL> +<LI>Плагины:</LI> + +<UL> + + <LI>Поддержка комментариев Vorbis, ID3 v1 и v2.</LI> + <LI>Конфигуруемое форматирование заголовка и преобразование кодировок в плагине для XMMS.</LI> + <LI>Поддержка 8- и 24-битных файлов. На стадии компиляции можно выбрать либо 24-битный вывод, либо линейное преобразование к 16-битному выводу (по умолчанию).</LI> +</UL> + +<LI><B><TT>flac</TT></B></LI> + +<UL> + <LI>Улучшен анализ опций командной строки (с помощью getopt).</LI> + <LI>Поддержка формата AIFF (спасибо Брэди Паттерсону).</LI> + <LI>Небольшое увеличение скорости работы декодера.</LI> + <LI><TT>--sector-align</TT> теперь поддерживает в качестве ввода файлы без заголовка.</LI> + <LI>Новая опция <TT>--serial-number</LI>, которая может использоваться вместе с ключом <TT>--ogg</TT>.</LI> + <LI>Автоматически записывается информация о кодере в комментарии Vorbis.</LI> + <LI>Значительно уменьшены требования к памяти.</LI> + <LI>Исправлена ошибка, из-за которой неподдерживаемые дополнительные теги формата RIFF WAVE не пропускались.</LI> + <LI>Исправлена ошибка с определением значения granulepos в потоках Ogg FLAC.</LI> + <LI>Исправлена утечка памяти при кодировании нескольких файлов с опцией <TT>-V</TT>.</LI> +</UL> + +<LI><B><TT>metaflac</TT></B></LI> +<UL> + <LI>Поддержка UTF-8 в комментариях Vorbis.</LI> + <LI>Новые команды <TT>--import-vc-from</TT> и <TT>--export-vc-to commands</TT> для импорта/экспорта комментариев Vorbis. Например, так можно скопировать тег из файла и записать в него:<BR> + <TT>metaflac --export-vc-to=- --no-utf8-convert file.flac | vorbiscomment --raw -w -c file.ogg<BR>vorbiscomment -l --raw file.ogg | metaflac --import-vc-from=- --no-utf8-convert file.flac</TT></LI> + <LI>Исправлена ошибка, возникавшая при обработке файлов, доступных только для чтения</LI> +</UL> + +<LI>Библиотеки:</LI> + +<UL> + <LI>Все API теперь докуметируются с помощью cbcntvs Doxygen. См. <A HREF="../api/index.html">здесь</A>.</LI> + <LI>Новые библиотеки libOggFLAC и libOggFLAC++, которые являются оболочками для libFLAC и libFLAC++, для кодирования и декодирования потоков Ogg FLAC.</LI> + <LI>Новые <TT>FLAC__SeekableStreamEncoder</TT> и <TT>FLAC__FileEncoder</TT> из библиотеки libFLAC упрощают основные задачи, возникающие при кодировании.</LI> + <LI>Новый режим проверки во всех кодерах.</LI> + <LI>Значительно уменьшено количество памяти, требуемой для кодеров и декодеров.</LI> + <LI>Кодер автоматически записывает информацию в блок <TT>VORBIS_COMMENT</TT>.</LI> + <LI>Увеличена скорость вычисления MD5 для 16-битных моно- и стереосигналов на архитектуре x86 (спасибо Мирославу Личвару).</LI> + <LI>Исправлена ошибка в интерфейсе метаданных, из-за которой информация о количестве битов на сэмпл в блоке STREAMINFO считывалась неверно.</LI> + <LI>Исправлена ошибка, из-за которой декодер мог войти в бесконечный цикл при обрыве потока.</LI> +</UL> + +</UL></BLOCKQUOTE></P> + +<P><LI><B>22.08.2002</B><BR> +Поддержка FLAC была добавлена в Rio Receiver и Dell Digital Audio Receiver с помощью клиента <A HREF="http://sourceforge.net/projects/rioplay/">RioPlay</A> Дэвида Флауердэя. См. <A HREF="http://rioreceiver.comms.net/php/showflat.php?Cat=&Board=Technical&Number=2262&page=0&view=collapsed&sb=5&o=0&fpart=">анонс полностью</A>.</P> + <P><LI><B>13.02.2002</B><BR> Первая аппаратная реализация FLAC. <A HREF="http://www.phatnoise.com/">Phatnoise</A> стала первой коммерческой аппаратной платформой, поддерживающей FLAC. Для воспроизведения FLAC файлов плейером Phatbox выпущена прошивка. Подробнее об этом на странице <A HREF="http://phatbox.sixpak.org/">Phatbox</A>.</P> @@ -99,7 +154,7 @@ <UL> <LI> -Добавлен уровень SeekableStreamDecoder между StreamDecoder и FileDecoder. С его помощью удобнее использовать библиотеку <TT>libFLAC</TT> в ситуациях, когда неодостачно информации о декодируемом файле. Болле подробно все описано в разделе <A HREF="documentation.html#libflac">документация</A>. Интерфейс для StreamDecoder и FileDecoder остался прежним и, соответственно, сохранилась бинарная совместимость с libFLAC 1.0.</LI> +Добавлен уровень SeekableStreamDecoder между StreamDecoder и FileDecoder. С его помощью удобнее использовать библиотеку <TT>libFLAC</TT> в ситуациях, когда неодостачно информации о декодируемом файле. Болле подробно все описано в разделе <A HREF="../api/index.html">документация</A>. Интерфейс для StreamDecoder и FileDecoder остался прежним и, соответственно, сохранилась бинарная совместимость с libFLAC 1.0.</LI> <LI>Уменьшен размер стека необходимый кодеру.</LI> </UL> |